Введение в численные методы. Дулов Е.Н. - 30 стр.

UptoLike

Составители: 

30
Задание 5.1
Вычислить значение интеграла (5.5) для
n
в диапазоне от 0 до 30 с помощью рекуррентной
формулы и с помощью адаптивной 3-узловой составной квадратуры Гаусса с абсолютной
точностью 10
-8
(предыдущее задание). Найти
n
, начиная с которого ошибка вычислений с
помощью рекуррентной формулы сравнима с самим значением интеграла.
Разберем подробно причины неустойчивости метода с рекуррентной формулой.
Уже на этапе введения
0
I
в компьютер вносится погрешность порядка
вычислительной
ε
. Обозначим
*
0
I
значение, записанное в компьютер и будем
отличать его от
0
I
.
ε
+=
0
*
0
II
(5.9)
Посмотрим, что происходит с начальной погрешностью при работе
рекуррентной формулы (5.7), допустив для простоты, что все арифметические
операции выполняются с бесконечной точностью:
( )
εε
=+= 111
10
*
1
III
( )
εε
+== 21121
21
*
2
III
( )
εε
=+= 3212131
32
*
3
III
.
.
.
( )
ε
+= !1
*
nII
n
nn
(5.10)
Таким образом, погрешность нарастает как
!n
, что гарантированно «испортит»
решение для любого стандартного типа данных с плавающей точкой при
. В
решении Задания 13 можно видеть смену знака ошибки при увеличении
n
, как и
прогнозируется формулой (5.10).
Устойчивость может играть важную роль в численных методах, которые
содержат большое число однотипных вычислений.
     Задание 5.1
     Вычислить значение интеграла (5.5) для n в диапазоне от 0 до 30 с помощью рекуррентной
формулы и с помощью адаптивной 3-узловой составной квадратуры Гаусса с абсолютной
точностью 10-8 (предыдущее задание). Найти n , начиная с которого ошибка вычислений с
помощью рекуррентной формулы сравнима с самим значением интеграла.


     Разберем подробно причины неустойчивости метода с рекуррентной формулой.
Уже на этапе введения                                 I0       в компьютер вносится погрешность порядка
вычислительной ε . Обозначим I 0* значение, записанное в компьютер и будем
отличать его от I 0 .
     I 0* = I 0 + ε                                                                                (5.9)
     Посмотрим,                что        происходит              с   начальной   погрешностью   при   работе
рекуррентной формулы (5.7), допустив для простоты, что все арифметические
операции выполняются с бесконечной точностью:
     I1* = 1 − 1 ⋅ (I 0 + ε ) = I1 − 1 ⋅ ε

     I 2* = 1 − 2 ⋅ (I1 − 1 ⋅ ε ) = I 2 + 1 ⋅ 2 ⋅ ε

     I 3* = 1 − 3 ⋅ (I 2 + 1 ⋅ 2 ⋅ ε ) = I 3 − 1 ⋅ 2 ⋅ 3 ⋅ ε

     .
     .
     .
     I n* = I n + (− 1) n!⋅ε
                         n
                                                                                                   (5.10)
     Таким образом, погрешность нарастает как n! , что гарантированно «испортит»
решение для любого стандартного типа данных с плавающей точкой при n = 30 . В
решении Задания 13 можно видеть смену знака ошибки при увеличении n , как и
прогнозируется формулой (5.10).
     Устойчивость может играть важную роль в численных методах, которые
содержат большое число однотипных вычислений.




                                                                       30