Точність обчислень на комп'ютері

Точність обчислень на комп'ютері визначається наступними параметрами.

машинна епсилон

Машинним Епсілон εm називається найменше з чисел, що задовольняють умові 1 + ε> 1, тобто εm = min1>.







Величина εm при округленні методом відсікання визначається за формулою εm = 2 -m + 1. а при округленні методом доповнення - εm = 2 -m. де m - кількість розрядів, відведений для зберігання мантиси числа в поданні з плаваючою точкою.

машинний нуль

Машинним нулем X0 називається найменше представимое на комп'ютері позитивне число, тобто для будь-якого іншого уявного на комп'ютері числа χ буде виконуватися нерівність: 0 -2 k. де k - кількість розрядів, відведений для зберігання порядку числа в поданні з плаваючою точкою.

Ситуації, при якій результат якої-небудь дії, що виконується на комп'ютері, виявляється менше X0. називається зникненням порядку.

машинна нескінченність

Машинної нескінченністю X∞ називається найменше з чисел задовольняють нерівності | χ | 2 k - 1. де k - кількість розрядів, відведений для зберігання порядку числа в поданні з плаваючою точкою.

Ситуації, при якій результат якої-небудь дії, що виконується на комп'ютері, виявляється більше або дорівнює X∞. називається переповненням.







Крок, з яким можливе подання чисел в комп'ютері

Крок h, з яким можливе подання чисел в комп'ютері визначається за формулою h = 2 K-m. де K - порядок числа, m - кількість розрядів, відведений для зберігання мантиси числа в поданні з плаваючою точкою.

Якщо зобразити числа представимо на комп'ютері на числової осі, то вийде наступна картина:

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

При виконанні обчислень на комп'ютері необхідно дотримуватися наступних правил:

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

Приклад 1. Нехай X0 = 10 -2. тоді 0.01-0.011 + 1 = 1, але в той же час 1-0.011 + 0.01 = 0.999. У першому випадку неправильний результат був отриманий внаслідок втрати порядку, яке відбулося після виконання операції віднімання.

Приклад 2. Нехай εm = 10 -2 і потрібно обчислити суму

Якщо вести підсумовування зліва направо, то отримаємо S = 100, оскільки з урахуванням округлення до двох значущих цифр 100 + 0.1 = 100. Якщо обчислювати справа наліво, то після складання тисячі доданків отримаємо 100, подальше поповнення по 0.1 нічого не змінить і результат виявиться: S = 200. Але правильний результат S = 300 можна отримати, тільки якщо скласти тисячу чисел по 0.1, потім ще 1000 чисел за 0.1, а після цього скласти проміжні суми.







Схожі статті