Метод Рунге-Кутта

advertisement
8.3. Методы Рунге-Кутты
Метод Эйлера и метод Эйлера-Коши относятся к семейству методов
Рунге-Кутты.
Рассмотрим схемы Рунге-Кутты.
q
y( x  h)  y ( x)   pi ki (h)  z (h)
Положим
(1)
i 1
Где коэффициенты k вычисляются последовательно по схеме:
k1 (h)  h  f ( x, y ),
k2 (h)  h  f ( x   2  h, y   21k1 (h)),

kq (h)  h  f ( x   q h, y   q1k1 (h)  ...   qq1kq1 (h))
Рассмотрим вопрос о выборе параметров
i , pi , ij :
 2 ,..., q ; p1 ,..., pq ; ij ,0  j  i  q
Обозначим
 (h)  y( x  h)  z(h).
Предположим, что
 (0)   (0)  ...   ( s ) (0)  0 при любых функциях f ( x, y) ,
а
 ( s1) (0)  0 для некоторой функции f ( x, y) .
По формуле Тэйлора справедливо равенство (где 0    1 )
s
 ( h)  
i 0
Величина
 (i ) (0)
i!
 (h)
h 
i
 ( s1) ( h)
( s  1)!
называется
h s 1 ,
погрешностью
(2)
метода
на
шаге,
а s –порядком погрешности метода.
----------------------------------------------------------------------------------------------------При q  1 будем иметь:
 (h)  y ( x  h)  y ( x)  p1  h  f ( x, y ),
 (0)  0,
 (0)  ( y( x  h)  p1 f ( x, y )) |h0  f ( x, y )(1  p1 ),
 (h)  y( x  h).
Равенство
 (0)  0 выполняется для любых функций f ( x, y) лишь
при условии, что p1  1. При этом p1 из (1) получается
yk  hf ( xk , yk ),
yk 1  yk  yk , k  0,1, 2,... .
т.е. . метод Эйлера
Для погрешности этого метода на шаге согласно (2) будем иметь:
 ( h) 
 ( x   h)  h2
2
.
---------------------------------------------------------------------------------------------------Рассмотрим случай q  2 , тогда
 (h)  y ( x  h)  y (h)  p1hf ( x, y )  p2 hf ( x , y ) ,
где x  x   2 h, y  y   21hf ( x, y ) .
Согласно исходному дифференциальному уравнению
y  f , y  f x  f y f , y  f xx  2 f xy f  f yy f 2  f y y .
Здесь для краткости через
y
и
f
обозначены
Вычисляя производные функции
y( x) и f ( x, y)
(3)
соответственно.
 (h) и подставляя в выражения для
 (h),  (h) и  (h) значение h  0 , получим (с учетом соотношений (3) ):
 (0)  0,
 (0)  (1  p1  p2 ) f ,
.
 (0)  (1  2 p2 2 ) f x  (1  2 p2  21 ) f y f
Требование
 (0)   (0)   (0)  0
будет выполняться для всех
f ( x, y) лишь в том случае, если одновременно будут справедливы
следующие три равенства относительно четырех параметров:
1  p1  p2  0,
1  2 p2 2  0,
(4)
1  2 p2  21  0.
Задавая значение одного из параметров и определяя значения
остальных из системы (4) , мы будем получать различные методы
Рунге-Кутты с порядком погрешности s  2 .
Например при p1 
1
1
из (4) получаем: p  ,  2  1,  21  1.
2
2
f ( xi , yi )  f ( xi1 , y i1 )
.
yi1  yi  h 
2
Формула (4) примет вид:
Здесь
yi 1
выражение
записано вместо
y ( x  h), yi -
вместо
y( x) , а через y i 1
обозначено
yi  h  f ( xi , yi ).
Таким образом, в рассматриваемом случае мы приходим к формулам,
соответствующим методу Эйлера-Коши.
y i 1  yi  h  f ( xi , yi ),
f ( xi , yi )  f ( xi 1 , y i 1 ) ,
yi 1  yi  h 
2
Из (2) следует, что главная часть погрешности на шаге равна
 (0)
6
h3 ,
т.е. пропорциональна третьей степени шага h .
-------------------------------------------------------------------------------------------------------------------
В вычислительной практике наиболее часто используется метод
Рунге-Кутты четвертого порядка с q  4 и s  4 .
Один из вариантов соответствующих расчетных формул (без вывода):
k1  h  f ( x, y ),
k
h
k2  h  f ( x  , y  1 ),
2
2
k
h
k3  h  f ( x  , y  2 ),
2
2
k4  h  f ( x  h, y  k3 ),
(5)
1
y  z (h)  y ( x)  (k1  2k2  2k3  k4 ).
6
Отметим, что в этом случае погрешность на шаге пропорциональна
5
пятой степени шага (h ) .
Отсюда, в частности, следует, что при достаточно малом h и малых
погрешностях вычислений решение уравнения y  f ( x, y) , полученное
методом Рунге-Куттыпо формулам (5) , будет близким к точному.
Геометрический смысл использования метода Рунге-Кутты 4-го
порядка с расчетными формулами
Из точки
которого
натами
(5)
состоит в следующем.
( xi , yi ) сдвигаются в направлении, определяемом углом 1 , для
tg 1  f ( xi , yi ) . На этом направлении выбирается точка с коорди-
k
h
( xi  , yi  1 ) .
2
2
Затем из точки
( xi , yi ) сдвигаются в направлении, определяемом углом
k
h
tg  2  f ( xi  , y1  1 ) , и на этом направлении
2
2
k
h
выбирается точка с координатами ( xi  , yi  2 ) .
2
2
2 ,
для
которого
Наконец, из точки
( xi , yi ) сдвигаются в направлении, определяемом
k
h
tg  3  f ( xi  , yi  2 ) и на этом направлении
2
2
выбирается точка с координатами ( xi  h, yi  k3 ) . Этим задается еще одно
углом
 3 ,для
которого
направление,
определяемое
углом
4 ,
для
которого
tg  4  f ( xi  h, yi  k3 ) .
Четыре
полученные
последней из формул
очередная точка
направления
усредняются
в
соответствии
с
(5) . На этом окончательном направлении и выбирается
( xi 1 , yi 1 )  ( xi  h, yi  y ) .
Download