Похибка округлення

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Помилка округлення або похибка округлення це різниця між результатом, отриманим за допомогою абсолютно точної арифметики в рамках заданого алгоритму, і результатом, отриманим тим же алгоритмом, але з використанням округленої арифметики з обмеженою точністю.

Помилки округлення пов’язані з тим що представлення дійсних чисел і в двійковій або десятковій системі є неточним виконанням арифметичних дій над ними. Це один із варіантів помилок квантування.

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

Деякі числові операції дуже чутливі до помилок округлення. Це може бути наслідком як математичних міркувань, так і способу виконання арифметичних операцій комп’ютерами.

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

Загалом два основних аспекти помилок округлення, які беруть участь у числових обчисленнях[1] це обмежена здатність комп'ютера зберігати дійсну величину в тій системі числення, яка використовується, та накопичення похибок під час послідовних операцій.

Похибка представлення

[ред. | ред. код]

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

точна

математична нотація

Представлення апроксимація Похибка
1/7 0. 142 857 0,142 857 0,000 000 142 857
ln 2 0,693 147 180 559 945 309 41... 0,693 147 0,000 000 180 559 945 309 41...
log10 2 0,301 029 995 663 981 195 21... 0,3010 0,000 029 995 663 981 195 21...
32 1,259 921 049 894 873 164 76... 1,25992 0,000 001 049 894 873 164 76...
2 1,414 213 562 373 095 048 80... 1,41421 0,000 003 562 373 095 048 80...
e 2,718 281 828 459 045 235 36... 2,718 281 828 459 045 0,000 000 000 000 000 235 36...
π 3,141 592 653 589 793 238 46... 3,141 592 653 589 793 0,000 000 000 000 000 238 46...

Збільшення точності зображення дійсного числа зменшує похибку округлення. Проте будь-яке представлення, обмежене скінченною кількістю цифр, все одно призведе до певної похибки для незліченної кількості дійсних чисел. Методика використання додаткових знаків, які використовуються на проміжних етапах розрахунку, називається англійською guard digit[3].

Багаторазове округлення може призвести до накопичення помилок. [4] Наприклад, якщо 9,945309 округлити до двох знаків після коми (9,95), а потім знову округлити до одного знака після коми (10,0), загальна похибка становитиме 0,054691. Округлення 9,945309 до одного знака після коми (9,9) за один крок вносить меншу похибку (0,045309). Це може статися, наприклад, коли програмне забезпечення виконує арифметику у 80-розрядному значенні з рухомою комою x86, а потім округлює результат до IEEE 754 binary64 floating-com .

Системи числення

[ред. | ред. код]

Система числення з рухомою комою є більш ефективною для представлення дійсних чисел, порівняно з системою числення з нерухомою комою, для широкого діапазону застосувань, де використовуються алгоритми чисельних методів, (фізика, САПР), тому вона широко використовується в сучасних комп’ютерах.

Найпопулярніший стандарт для чисел з рухомою комою це IEEE 754, там використовується двійкова система, нормалізація. В окремих бітах зберігає знак експоненти та значущої частини, мантиси. Стандарт має фіксовану кількість бітів для мантиси та експоненти. Задля ефективності використання комп'ютерами, сумарна кількість бітів кратна розрядності процесорів, саме тому найпоширенішими рівнями точності є одинарна точність - 32 біта, подвійна точність - 64 бітів.

Машинний епсилон

[ред. | ред. код]
Докладніше: Машинний епсилон

Машинний епсилон можна використовувати для вимірювання рівня помилки округлення в системі числення з рухомою комою. Ось два різних визначення. [5]

Похибка округлення за різними правилами округлення

[ред. | ред. код]

Накопичення похибки округлення

[ред. | ред. код]

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

Нестабільний алгоритм та погано обумовлена задача

[ред. | ред. код]

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

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

Число обумовленості задачі — це відношення відносної зміни розв’язку до відносної зміни входу.[5] Задача є добре обумовленою, якщо невеликі відносні зміни вхідних даних призводять до невеликих відносних змін у розв’язанні. В протилежному випадку задача є необумовленою . [5] Іншими словами, проблема є погано обумовленою, якщо її число обумовленості «набагато більше» за 1.

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

Дивись також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. а б Chapra, Steven (2012). Applied Numerical Methods with MATLAB for Engineers and Scientists (вид. 3rd). McGraw-Hill. ISBN 9780073401102.
  2. Laplante, Philip A. (2000). Dictionary of Computer Science, Engineering and Technology. CRC Press. с. 420. ISBN 978-0-84932691-2.
  3. Higham, Nicholas John (2002). Accuracy and Stability of Numerical Algorithms (вид. 2). Society for Industrial and Applied Mathematics (SIAM). с. 43—44. ISBN 978-0-89871521-7.
  4. Volkov, E. A. (1990). Numerical Methods. Taylor & Francis. с. 24. ISBN 978-1-56032011-1.
  5. а б в Forrester, Dick (2018). Math/Comp241 Numerical Methods (lecture notes). Dickinson College.
  6. Collins, Charles (2005). Condition and Stability (PDF). Department of Mathematics in University of Tennessee. Процитовано 28 жовтня 2018.{{cite web}}: Обслуговування CS1: Сторінки з параметром url-status, але без параметра archive-url (посилання)