Тези Джерела похибок у комп’ютерних розрахунках
Код роботи: 1907
Вид роботи: Тези
Предмет: Сучасні інформаційні технології (СІТ)
Тема: Джерела похибок у комп’ютерних розрахунках
Кількість сторінок: 4
Дата виконання: 2017
Мова написання: українська
Ціна: безкоштовно
1. Some disasters attributable to bad numerical computing. — www.ima.umn.edu/~arnold/ disasters/
2. masters.donntu.org/2014/fknt/rusinka/diss/indexu.htm
При виконанні числових розрахунків з використанням комп’ютерів актуальною проблемою є достовірність і точність результатів, оскільки поява і накопичення похибок, наприклад, при обслуговуванні банківських систем, керуванні авіапольотами і траєкторіями ракет, керуванні роботою атомних станцій і автоматизації технологічних процесів може призвести до негативних наслідків, стати причиною аварій і навіть катастроф [1]. Неточність розрахунків зумовлюється такими основними факторами, як наближеність вхідних даних, похибка математичної моделі і її дискретизації, похибка комп’ютерних обчислень.
Неточність даних, одержаних експериментальним шляхом, насамперед залежить від умов, у яких проводять вимірювання. Навіть при добре спланованому експерименті вплив різноманітних випадкових факторів (зовнішнього середовища, неточності зняття показників з приладів тощо), які зумовлюють випадкові похибки, можна тільки зменшити, але повністю усунути не можливо. За рахунок неправильно відкаліброваних приладів або систематичних перешкод при проведенні експерименту і знятті показників виникають систематичні похибки, які призводять до систематичних неправильних результатів, а отже, неправильних висновків і в подальшому до розробки неправильної моделі.
Математична модель реального процесу, наскільки б складною вона не була, враховує не всі фактори, а тільки найголовніші. Тому модель ніколи не може бути точною. Крім того, якщо розроблена модель не дискретна, то для розв’язання задачі на комп’ютері її треба дискретизувати, що теж вносить певні похибки. Отже, чисельний експеримент на основі математичної моделі дає неточні результати.
Похибка комп’ютерних обчислень зумовлена поданням дробових чисел у форматі з плаваючою комою і особливостями переведення десяткових дробів у двійкові. Залежно від того, скільки байтів виділяється для зберігання дробового числа (4, 8 чи 10), для показника і мантиси відводиться певна кількість бітів — 8 і 23, 11 і 52, 15 і 64; відповідно мантиса містить 7-8, 15-16 і 19-20 значущих десяткових цифр. При виконанні арифметичних операцій над дробовими числами результати не завжди будуть повністю поміщатися у виділені розряди.
Наприклад, при додаванні великого і малого чисел внесок малого числа може втратитись у розрядній сітці і не відобразитися на результаті (108+10-1 дає 108). Крім того, майже всі двійкові дроби, за винятком кратних степеневі двійки, є наближеними значеннями десяткових дробів (так, запрограмоване мовою Турбо Паскаль порівняння 0.1+0.5=0.6 дає результат true, а порівняння 0.1+0.6=0.7 — false). Для зменшення похибок обчислень стандартні бібліотеки мов C# і JavaScript, а також зовнішня бібліотека GMP (GNU Multi–Precision Library) для мов C# і PHP реалізують “довгу арифметику” [2]. При роботі з цілими числами похибки не накопичуються, але тут швидше, ніж при роботі з дробовими числами може виникнути переповнення, за чим треба уважно стежити, розробляючи алгоритми.
Розрахунки за допомогою комп’ютера виконують над наближеними числами, заокругленими до порядку, який визначається точністю вибраного типу даних. Чим більшу кількість операцій над числами виконувати, тим більшою може стати накопичена похибка. Тому при обчисленнях доцільно математичні вирази заміняти еквівалентними, які містять меншу кількість операцій.