Научная литература
booksshare.net -> Добавить материал -> Математика -> Боглаев Ю.П. -> "Вычислительная математика и программирование " -> 123

Вычислительная математика и программирование - Боглаев Ю.П.

Боглаев Ю.П. Вычислительная математика и программирование — Высшая школа, 1990. — 546 c.
ISBN 5-06-00623-9
Скачать (прямая ссылка): vychmatiprog1990.djvu
Предыдущая << 1 .. 117 118 119 120 121 122 < 123 > 124 125 126 127 128 129 .. 168 >> Следующая

2(х) = ф,)еХрП/;(х, у(х))<&).
Из последнего равенства при х = х1 + 1 имеем (10.2.14), что и требовалось доказать.
Обозначим решение дифференциального уравнения с условием Г(х0)=.у(0) через 70(х); с условием 7(х1)=у1 — через У, (х) и т. д., с условием У{хт-1)=ут-1 — через Ут_г (х). Тогда погрешность в любом узле хк можно представить в виде
Кк=Ук-у(Хк)= I (i'ifo)- Yi-1 (*?)exp y{x))dxj. (10.2.15)
Теорема 10.4. Пусть погрешность на шаге h метода Рунге— Кутта имеет оценку
\yi+x-y(xi+l)\^ch^1
с условием (10.2.13); пусть также
f'y{x,y)^L{x), L(x)>0, (10.2.16)
в некоторой окрестности решения у(х). Тогда для достаточно малых h глобальная оценка погрешности следующая:
max \yt— у(х*)|^[(6 — а)с/гр]ехрм L(x)dx\ (10.2.17)
1 ^ < m \а )
Доказательство. Заметим, что
max \yt-y(^-)|= max [Rk\, где Rk определяется (10.2.15). Но в силу (10.2.16)
k xk
\Ru\^l\Yi(xi)-Yi_l (xt)| exp J fy(x, у(*))dx
i - 1 Xt
k xk m /Ъ \
< Y (с/гр+1)ехр | L(x)dx< Yj (сЛр+1)ехр1 j?(x)</xl =
1=1 xt i = 1 \a )
fb
= cmhp+1 exp L (x) dx Учитывая, что m = (b — a)/h, получаем
max | Rk К с (b — a) hp exp I j L (x) dx ), что и требовалось доказать.
393
Неравенство (10.2.17) дает оценку погрешности методов Рунге — Кутта порядка р и указывает, что при 0 решения разностных схем методов сходятся к точному решению.
Однако если L(x)>0 и интервал интегрирования [а, 6] велик, то коэффициент при hp в (10.2.17) может быть столь большой, что для достижения заданной точности придется брать очень малый шаг Л. При этом вычислительная погрешность (например, округления) может превосходить погрешность метода Рунге — Кутта.
Заметим, что если в (10.2.16) L(x;)^>,<0, т. е.
fy(x> у)<А,с0, а^х^Ь, то оценка | Rk\l в доказательстве теоремы примет вид | Rk | ^ с (b — a) h р ехр (А, (Ь — а)), а так как функция хеХх на всей полуоси О^дг^оо ограничена
1 V 1 — 1
*е < —е , то оценка погрешности
I А|
CQ ~ ^
max — Ар
l^k^m |А|
оказывается не зависящей от длины интервала интегрирования.
10.2.4. Оценка погрешности по правилу Рунге. Правило Рунге уже использовалось при оценке погрешности численного интегрирования (см. п. 7.4.2). Обобщим это правило на интегрирование дифференциальных уравнений. Заметим, что численное интегрирование можно рассматривать как интегрирование дифференциального уравнения в том частном случае, когда
f(x,y)=f(x), Jx=f{x), у{а)=о ь
для определения значения у (Ь) = {/(*) dx.
а
Если не удается получить для функции f(x, у) значения с, L(x), необходимые, чтобы применить оценку погрешности (10.2.17), то применяют правило Рунге.
Для оценки погрешности сравнивают приближенные решения, полученные при различных шагах сетки. При этом используется следующее предположение: глобальная погрешность метода порядка р в точке х{ представляется в виде
yi-y(x^ = w{x^hp + 0{hp+1Y (10.2.18)
здесь Xi = a+ih. Если провести вычисления тем же методом порядка /?, но с шагом, вдвое меньшим, то, согласно (10.2.18), получим
394
hP
Уп-У (х2 i) = w (x2i)^+0 (Лр+'); (10.2.19)
\
ношения позволяют найти, вычитая
(10 9 10'І гг* П П 9 1 Я'І *няиршїр ш (V- Л
здесь х21=а+И-=х(. Эти два соот-
У**
У*
И
о-
Подставляя последнее выражение в (10.2.19), получаем
Рис. 10.6
Таким образом, с точностью до 0(ЛР+1) при Л->0 погрешность метода имеет вид
где у1 — приближенное значение, полученное в точке хТг с шагом Л; У21 —с шагом Л/2; р—порядок метода. Например, для метода Рунге—Кутта второго порядка
Правило Рунге лежит в основе алгоритмов интегрирования дифференциальных уравнений с автоматическим выбором шага по заданной локальной точности. На каждом шаге при переходе от ^ к ^+1 вычисления производятся дважды: с шагом Л и шагом Л/2 (рис. 10.6). Полученные значения у* и у„ служат для сравнения достигнутой точности на этом шаге
с заданной в; в случае систем уравнений модуль заменяется нормой ||у*—ут\\. Если величина 5 больше в, то шаг Л уменьшается вдвое и процедура повторяется; если 5 значительно меньше в (указывается предел), то шаг Л увеличивается вдвое, если 5 меньше в, но незначительно, то переходим в точку х1+2 с тем же шагом Л.
Автоматический выбор шага для специальных систем дифференциальных уравнений сопровождают более совершенной стратегией контроля точности (не на каждом шаге), чем описанная выше [20].
\У2і-у(х2і)\-^\Уі~У2і\і
для четвертого порядка
\У2і-у(х2і)\^\Уі-У2і\-
395
10.2.5. Применение программы В6А0. Пусть необходимо проинтегрировать систему уравнений
^=&т(х+у1У2),
^=cos (х2-у1+уг)
на интервале 0<л:<1 с заданной абсолютной точностью е= 10"4 и начальными условиями }>1(0) = 2, У2(0) = (1)> Вывод на терминал значений у2(х) необходимо производить с шагом #=0,1.
Программа может иметь следующий вид:
REAL 1k,B,Y(2),E, W(2,7),R(2)
INTEGER N,J,I EXTERNAL F,0 DATX X,B/0., 1 •/,Y/2., 1 ./,E/l.E-4/
DATA NJ,1/2,1,0/
С ОБРАЩЕНИЕ К ПРОГРАММЕ В6А0
CALL B6A0(X,B,N,Y,E,J,F,O,W,I)
END
С ВНЕШНЯЯ ПОДПРОГРАММА, ВЫЧИСЛЯЮЩАЯ ПРА-
С ВЫЕ ЧАСТИ УРАВНЕНИЙ
SUBROUTINE F(X,Y,R)
REAL X,Y(2),R(2)
R(l) = SIN(X+Y(l *Y(2))
R(2)=COS(X*X - Y( 1)+Y(2))
RETURN*
Предыдущая << 1 .. 117 118 119 120 121 122 < 123 > 124 125 126 127 128 129 .. 168 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed