Топ питань
Часова шкала
Чат
Перспективи

Нищівне скасування

явище в чисельних методах З Вікіпедії, вільної енциклопедії

Remove ads

У чисельних методах, нищівне скасування[1][2] — це явище коли віднімання двох хороших наближень двох близьких чисел може породити дуже погане наближення різниці двох початкових чисел.

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

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

Нищівне скасування може статись навіть якщо різниця обчислена точно, як у прикладі вище — це не властивість якогось певного різновиду арифметики як-от з рухомою комою; радше це притаманне відніманню, коли входи це наближення. Насправді, в арифметиці з рухомою комою, коли входи достатньо близькі, вислід обчислення різниці точний, згідно з лемою Стербенца[en] немає похибки заокруглення через дію віднімання з рухомою точкою.

Remove ads

Формальний розгляд

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

Отже, відносна похибка точної різниці наближень щодо різниці справжніх чисел це

І вона може бути наскільки завгодно великою якщо справжні числа і близькі.

Remove ads

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

Приклад: Різниця квадратів

Маючи числа і , наївна спроба обчислити математичну функцію з використанням арифметики з рухомою точкою призведе до нищівного скасування, якщо і близькі величини, бо віднімання може виявити похибки заокруглення під час піднесення до квадрату. Альтернативне представлення , обчислене в арифметиці з рухомою точкою таким чином , уникає нищівного скасування, бо уникає похибки заокруглення.[2]

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

Remove ads

Примітки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads