Підвищення точності результатів обчислень (рекомендації) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Підвищення точності результатів обчислень (рекомендації)



 

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

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

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

Якщо задано  додатних чисел приблизно однакової величини, то загальна помилка округлення зменшиться, якщо числа додати спочатку групами по n- чисел, а потім додати n – часткових сум. При великих n верхня межа округлення при такому способі становить всього 1/n від відповідної межі при довільному додаванні чисел одне до одного.

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

ІІ Варто уникати віднімання двох майже однакових чисел. Обчислюючи різницю двох чисел, доцільно винести за дужки їхній спільний множник. Для прикладу обчислимо величину

Винесемо число “4” за дужки, одержимо точний результат:

Зменшити похибку різниці дозволяють перетворення:

Тут  - мале в порівнянні з a число.

 

Машинна арифметика

ВЕОМ для кодування дійсних чисел використовується двійкова система зчислення й прийнята форма подання чисел із плаваючою точкою ,, . Тут - мантиса; - двійкові цифри, причому завжди =1, p -ціле число, що називається двійковим порядком. Кількість t цифр, що приділяється для запису мантиси, називається розрядністю мантиси. Діапазон подання чисел в ЕОМ обмежений кінцевою розрядністю мантиси й значенням числа p. Усі числа, що подані в ЕОМ, задовольняють нерівності: , де , . Усі числа, за модулем більші , не подані в ЕОМ і розглядаються як машинна нескінченність. Усі числа, за модулем менші , для ЕОМ не відрізняються від нуля й розглядаються як машинний нуль. Машинним іпсилоном  називається відносна точність ЕОМ, тобто границя відносної похибки подання чисел в ЕОМ. Покажемо, що . Нехай , тоді границя абсолютної похибки подання цього числа дорівнює . Оскільки , то величина відносної похибки подання оцінюється так:

.

Машинний іпсилон визначається розрядністю мантиси та способом округлення чисел, реалізованим на ЕОМ.

 Візьмемо такі способи визначення наближених значень параметрів, необхідних у задачі:

1 Покладемо , де n - перше натуральне число, при якому відбувається переповнення.

2 Покладемо , де m – перше натуральне число, при якому  збігається з нулем.

3 Покладемо , де k – найбільше натуральне число, при якому сума обчисленого значення 1+  ще більша за 1. Фактично  є границя відносної похибки подання числа .

Приклад. Для пакета MATHCAD знайти значення машинного нуля, машинної нескінченності, машинного іпсилон.

Машинна нескінченність .

Машинний нуль           .

Машинний іпсилон         .

; ;

; .

Результати обчислювального експерименту:

Машинна нескінченність . Машинний нуль . Машинний іпсилон .

1.7 Обумовленість обчислювальної задачі

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

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

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

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

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

Нестійкість також може мати різну природу. Іноді нестійкість обумовлена сутністю розв’язуваної задачі. У цьому випадку говорять, що задача погано обумовлена або некоректна. Більшість так званих обернених задач є прикладом поганої обумовленості. У той же час навіть у випадку коректної (добре обумовленої) задачі невдалий вибір обчислювальної схеми може призвести до нестійкості. Отже,

· нестійкість може бути властива завданню (слабка обумовленість);

· навіть добре обумовлену задачу можна зіпсувати невдало підібраним чисельним методом.

 

Приклад втрати точності

Іноді втрата точності під час розв’язання задачі виявляється неминучою. Класичний приклад – пошук екстремуму функції.

Розглянемо задачу мінімізації функції  і припустимо, що мінімум досягається в точці t0. В околі такої точки збільшення df функції  при збільшенні аргумента t на мале dt виражається так:

,

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

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

Погана обумовленість задачі

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

Відмінна риса погано обумовлених задач така: мале відхилення у вхідних даних призводить до суттєвих змін відповіді. Якщо розглядати результат обчислень як функцію y (x) від вхідних даних, то мале відхилення dx аргумента приведе до зміни обчисленого значення на dy, причому | dy | можна оцінити як добуток модуля похідної та абсолютної величини відхилення: . У випадку поганої обумовленості малі зміни аргументу (вхідних даних) приводять до суттєвих змін у відповіді, тобто похідна  набуває більших за модулем значень. Як правило, працюють із відносними приростами

Dx = dx / x, Dy = dy / y.

У цьому випадку . Число  називається числом обумовленості задачі. Отже,

 або .

Якщо помилки у вихідних даних обумовлені винятково використанням машинної арифметики, то , де  – точність машинної арифметики. Машинним іпсилоном  називається мінімальне додатне число, що при додаванні до числа 1.0 дає результат, більший ніж 1.0. Величина машинного іпсилона визначає відносну похибку введених чисел і, таким чином, є найважливішою характеристикою машинної арифметики. У цьому випадку  і . Таким чином, чим більше число обумовленості, тим сильніший вплив похибки вхідних даних і похибки, внесеної округленнями.

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

Приклад. Розглянемо задачу знаходження кореня многочлена

f (t)=(t -2)9= t 9–18 t 8+144 t 7–672 t 6+2016 t 5–4032 t 4+5376 t 3–4608 t 2+2304 t –512.

Якщо многочлен заданий за допомогою першої з наведених формул, то задача знаходження кореня не становить проблеми. Нехай многочлен заданий за допомогою іншої формули, тобто задані його коефіцієнти й відомо, що один із коренів локалізований на відрізку [1,3]. Тоді значення многочлена можна обчислювати за схемою Горнера

f (t) = ((((((((t – 18) t + 144) t – 672) t + 2016) t –4032) t + +5376) t – 4608) t + 2304) t – 512,

а корінь можна знайти за методом дихотомії. Розглянемо поведінку функції на відрізку [1.97,2.03]. Обчислення виконувалися з подвійною точністю (double). Значення функції обчислювалися із кроком 0.0001. На першому малюнку показані результати при обчисленні за першою з наведених формул, а на другому – при обчисленні за схемою Горнера.

                            Рис. -1.1

                              Рис. -1.2

Бачимо, що в околі точки t =2 функція, обчислена за схемою Горнера, поводиться непередбачувано. Якщо ми спробуємо знайти чисельно корінь рівняння f (t) = 0 для функції f (t), що обчислюється за схемою Горнера, то одержимо випадкову точку з відрізка [1.98, 2.02]. На цьому відрізку зміна функції становить менш ніж 4e-14, але відрізок невизначеності для кореня виходить великий – довжиною 0.04.

Обмежимося простим і нестрогим зауваженням, що з’ясовує природу поганої обумовленості цієї задачі. Якщо точка t пробігає діапазон [2- e,2+ e ] при деякому досить малому значенні e (наприклад, при e <0.01), то значення функції f (t) змінюється дуже мало. Відповідно, мала зміна функції f (t) (або коефіцієнтів многочлена) приведе до великої зміни значення кореня.

 



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 49; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.204.201 (0.022 с.)