Jump to content

Катастрофическая отмена

(Перенаправлено с «Катастрофической отмены »)

В численном анализе катастрофическая отмена [1] [2] Это явление, при котором вычитание хороших приближений к двум соседним числам может дать очень плохое приближение к разнице исходных чисел.

Например, если имеется две шпильки, одна длинный и другой длинные и измеряются линейкой, допускающей точность только до сантиметра, то приближения могут оказаться неправильными. и . Это могут быть хорошие аппроксимации с относительной ошибкой истинных длин: аппроксимации погрешны менее чем на 2% от истинных длин, .

Однако если вычесть примерные длины, разница составит , хотя истинная разница между длинами равна . Разница приближений, , погрешность составляет почти 100% от величины разницы истинные ценности, .

На катастрофическое аннулирование не влияет размер входных данных — оно одинаково применимо как к большим, так и к малым входным данным. Это зависит только от того, насколько велика разница и от погрешности входных данных. Точно такая же ошибка возникнет при вычитании от как приближения к и , или вычитая от как приближения к и .

Катастрофическое аннулирование может произойти, даже если разница вычислена точно, как в примере выше — это не свойство какого-либо конкретного вида арифметики, например арифметики с плавающей запятой ; скорее, оно присуще вычитанию, когда входные данные сами являются приближениями. Действительно, в арифметике с плавающей запятой, когда входные данные достаточно близки, разность с плавающей запятой вычисляется точно по лемме Штербенца - ошибка округления, вносимая операцией вычитания с плавающей запятой, не возникает.

Формальный анализ

[ редактировать ]

Формально катастрофическое сокращение происходит потому, что вычитание плохо обусловлено на соседних входах: даже если аппроксимации и имеют небольшие относительные ошибки и от истинных ценностей и , соответственно, относительная ошибка разности приближений по разности истинных значений обратно пропорциональна разнице истинных значений:

Таким образом, относительная погрешность точной разности приближений по разности из истинных ценностей является

которое может быть сколь угодно большим, если истинные значения и близки.

В числовых алгоритмах

[ редактировать ]

Вычитание соседних чисел в арифметике с плавающей запятой не всегда приводит к катастрофической отмене или даже какой-либо ошибке — согласно лемме Штербенца , если числа достаточно близки, разница с плавающей запятой точна. Но отмена может усилить ошибки во входных данных, возникшие из-за округления в других арифметических операциях с плавающей запятой.

Пример: Разность квадратов

[ редактировать ]

Данные числа и , наивная попытка вычислить математическую функцию с помощью арифметики с плавающей запятой подлежит катастрофической отмене, когда и близки по величине, поскольку вычитание может выявить ошибки округления при возведении в квадрат. Альтернативный факторинг , оценивается с помощью арифметики с плавающей запятой , позволяет избежать катастрофической отмены, поскольку позволяет избежать ошибки округления, приводящей к вычитанию. [2]

Например, если и , тогда истинное значение разницы является . В двоичной арифметике IEEE 754 двоичная64 оценка альтернативного факторинга дает точный результат (без округления), но оценивает наивное выражение дает число с плавающей запятой , из которых менее половины цифр являются правильными, а остальные (подчеркнутые) цифры отражают недостающие термины , теряется из-за округления при вычислении промежуточных квадратов значений.

Пример: комплексный арксинус.

[ редактировать ]

При вычислении комплексной функции арксинуса может возникнуть соблазн напрямую использовать логарифмическую формулу:

Однако предположим для . Затем и ; назови разницу между ними — очень небольшая разница, почти нулевая. Если оценивается в арифметике с плавающей запятой, давая

с любой ошибкой , где обозначает округление с плавающей запятой, а затем вычисление разницы

из двух соседних номеров, оба очень близко , может усилить ошибку за один вход с коэффициентом — очень важный фактор, потому что был почти нулевым. Например, если , истинная стоимость примерно , но использование простой логарифмической формулы в двоичной64-арифметике IEEE 754 может дать , где только пять из шестнадцати цифр верны, а остальные (подчеркнуты) неверны.

В случае для , используя тождество избегает отмены, потому что но , поэтому вычитание фактически является сложением с тем же знаком, которое не отменяет.

Пример: преобразование системы счисления

[ редактировать ]

Числовые константы в программах часто записываются в десятичном формате, например, во фрагменте C. double x = 1.000000000000001; для объявления и инициализации переменной IEEE 754binary64 с именем x. Однако, не является числом с плавающей запятой в двоичном формате 64; ближайший, который x будет инициализирован в этом фрагменте, . Хотя преобразование системы счисления из десятичного числа с плавающей запятой в двоичное число с плавающей запятой приводит лишь к небольшой относительной ошибке, катастрофическая отмена может привести к гораздо большей ошибке:

double x = 1.000000000000001;  // rounded to 1 + 5*2^{-52}
double y = 1.000000000000002;  // rounded to 1 + 9*2^{-52}
double z = y - x;              // difference is exactly 4*2^{-52}

Разница является . Относительные ошибки x от и из y от оба ниже и вычитание чисел с плавающей запятой y - x вычисляется точно по лемме Штербенца.

Но даже несмотря на то, что входные данные являются хорошими приближениями и даже если вычитание вычисляется точно, разница приближений имеет относительную ошибку более от разницы исходных значений, записанных в десятичном виде: катастрофическая отмена превратила крошечную ошибку при преобразовании системы счисления в большую ошибку в выводе.

Доброкачественная отмена

[ редактировать ]

Отмена иногда полезна и желательна в числовых алгоритмах. Например, алгоритмы 2Sum и Fast2Sum полагаются на такую ​​отмену после ошибки округления, чтобы точно вычислить ошибку в операции сложения с плавающей запятой как само число с плавающей запятой.

Функция , если оценивать наивно в баллах , потеряет большую часть цифр в округлении . Однако функция сам хорошо кондиционирован на входах вблизи . Переписав это как отмена эксплойтов в чтобы избежать ошибки из оценивается напрямую. [2] Это работает, потому что сокращение в числителе и сокращение в знаменателе противодействовать друг другу; функция достаточно хорошо обусловлено вблизи нуля, что дает хорошее приближение к , и таким образом дает хорошее приближение к .

  1. ^ Мюллер, Жан-Мишель; Бруни, Николас; из Динешена, Флоран; Жаннерод, Клод-Пьер; Джолдес, Миоара; Лефевр, Винсент; Мелькионд, Гийом; Револь, Натали ; Торрес, Серж (2018). Справочник по арифметике с плавающей запятой (2-е изд.). Gewerbestrasse 11, 6330 Шам, Швейцария: Биркхойзер. п. 102. дои : 10.1007/978-3-319-76526-6 . ISBN  978-3-319-76525-9 . {{cite book}}: CS1 maint: местоположение ( ссылка )
  2. ^ Jump up to: а б с Гольдберг, Дэвид (март 1991 г.). «Что должен знать каждый ученый-компьютерщик об арифметике с плавающей запятой» . Обзоры вычислительной техники ACM . 23 (1). Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники: 5–48. дои : 10.1145/103162.103163 . ISSN   0360-0300 . S2CID   222008826 . Проверено 17 сентября 2020 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7da6c28d86312caa5960d254361fa541__1716043320
URL1:https://arc.ask3.ru/arc/aa/7d/41/7da6c28d86312caa5960d254361fa541.html
Заголовок, (Title) документа по адресу, URL1:
Catastrophic cancellation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)