Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

§ 2. ЕДНОСТЪПКОВИ МЕТОДИ.

ЯВНИ МЕТОДИ НА РУНГЕ-КУТА

Явните методи на Рунге-Кута са едностъпкови мрежови методи за решаване на


задачата

(1) u′( x ) = f ( x, u( x )), x0 < x ≤ X ,


(2) u( x0 ) = u 0 ,
(3)
при които стойността y i +1 на приближеното решение в точката xi +1 = xi + h по известна
стойност yi в точката xi се намира по формулите

yi +1 − yi 1 s s
(3) = ∑ p j k j , h = xi +1 − xi , yi +1 = yi + ∑ p j k j ,
h h j =1 j =1

където
k1 = h f ( xi , yi ),
(4) k2 = h f ( xi + α 2 h, yi + β 21k1 ),
k j = h f ( xi + α j h, yi + β j1k1 + β j 2 k2 + + β j , j −1k j −1 ), j = 3, … , s.

Формулите (3), (4) дефинират s -етапен явен метод на Рунге-Кута. Неизвестните


коефициенти p j , j = 1, 2,… , s ; α j , j = 2,… , s ; β j1 , β j 2 ,… , β j , j −1 , j = 2,… , s се
определят така, че локалната грешка на апроксимация на уравнението (1) с
диференчното уравнение (3), (4) за решението на задачата (1), (2),

u i +1 − u i 1 s
ψi = − ∑ pjk j ,
h h j =1

да е от възможно най-висок ред.

1. Нека s = 1 . Тогава
y i +1 − yi 1
= p1 k1 , y i +1 = y i + p1k1 ,
h h
u − ui 1 u − ui
ψ i = i +1 − p1 k1 = i +1 − p1 f ( xi , u i ) =
h h h
1 h2 h
= (ui + hui′ + u ′′( xi + θ h ) − ui ) − p1ui′ = (1 − p1 ) ui′ + u ′′( xi + θ h ).
h 2 2

Следователно локалната грешка на апроксимация на едноетапния метод на Рунге-Кута


ще бъде O (h) , ако p1 = 1 и u ∈ C 2 [ x 0 , X ] . Тогава

y i +1 − y i
= f ( xi , y i ) ,
h

което отново е (явният) метод на Ойлер.

12
y i +1 − y i 1
2. Нека s = 2 . Тогава = ( p1 k1 + p 2 k 2 ) , y i +1 = y i + p1k1 + p 2 k 2 ,
h h
u −u 1 u −u
ψ i = i +1 i − ( p1k1 + p 2 k 2 ) = i +1 i − p1 f ( xi , ui ) − p 2 f ( xi + α 2 h, ui + β 21k1 ) =
h h h
1⎛ h 2
h 3

= ⎜⎜ u i + h u i′ + u i′′ + u i′′′ + O(h 4 ) − u i ⎟⎟ − p1u i′ −
h⎝ 2 6 ⎠
⎡ ∂f ∂f ⎤
− p 2 ⎢ f ( xi , u i ) + α 2 h ( x i , u i ) + β 21 h f ( xi , u i ) ( x i , u i ) + O (h 2 )⎥ =
⎣ ∂x ∂u ⎦
⎛ 1 ⎞ ∂ f ⎛ 1 ⎞ ∂ f
= (1 − p1 − p 2 ) u i′ + ⎜ − α 2 p 2 ⎟ h ( xi , u i ) + ⎜ − β 21 p 2 ⎟ h ( xi , u i ) u i′ + O(h 2 ) .
⎝2 ⎠ ∂x ⎝2 ⎠ ∂u
∂f ∂f
При извода сме използвали, че от уравнение (1) имаме u′′ = + u′ . Следователно, за
∂x ∂u
1
да имаме ψ i = O (h 2 ) за произволна функция f , трябва 1 − p1 − p2 = 0 , − α 2 p2 = 0 ,
2
1
− β 21 p2 = 0 ,или още
2

⎪ p1 + p2 = 1

⎪ 1
(5) ⎨ α 2 p2 = .
⎪ 2
⎪ 1
⎪⎩ β 21 p2 = 2
За четирите неизвестни параметъра се получава неопределена система
нелинейни алгебрични уравнения, която има безбройно много решения, зависещи от
един параметър. Да разгледаме някои възможни решения. Общите съображения за
избора им са:
• коефициентите p j да са неотрицателни (при изваждане на близки числа
става голяма загуба на точност);
• по възможност всички коефициенти да се представят точно в двоична
система заради компютърната реализация.

а) p1 = p 2 = 1 / 2 , α 2 = 1 , β 21 = 1 :
y i +1 − y i k1 + k 2
(6) = , k1 = h f ( x i , y i )
h 2h
k 2 = h f ( x i + h , y i + k1 ) .

б) p1 = 0 , p 2 = 1 , α 2 = β 21 = 1 / 2 :
y i +1 − y i k 2
(7) = k1 = h f ( xi , yi )
h h
k 2 = h f ( xi + h / 2, y i + k1 / 2) .

в) p1 = 1 / 4 , p 2 = 3 / 4 , α 2 = β 21 = 2 / 3 :

13
y i +1 − y i k1 + 3k 2
(8) = k1 = h f ( x i , y i )
h 4h
k 2 = h f ( xi + 2h / 3, y i + 2k1 / 3) .

3. При s = 3 се получават формули с локална грешка на апроксимацията O ( h 3 ) .


Такива са например формулите
yi +1 − yi 1
= ( k1 + 4k2 + k3 ) , k1 = h f ( xi , yi ) ,
h 6h
k 2 = h f ( xi + h / 2, y i + k1 / 2) ,
k3 = h f ( xi + h, yi − k1 + 2k2 ) ,
или формулите
yi +1 − yi 1
= ( k1 + 3k3 ) , k1 = h f ( xi , yi ) ,
h 4h
k2 = h f ( xi + h / 3, yi + k1 / 3) ,
k3 = h f ( xi + 2h / 3, yi + 2k2 / 3) .

4. Най-използваните на практика формули на Рунге-Кута са тези при s = 4 с


локална грешка на апроксимацията O(h 4 ) .
y i +1 − y i 1
= ( k1 + 2 k 2 + 2 k 3 + k 4 ) , k1 = h f ( xi , yi ) ,
h 6h
k 2 = h f ( xi + h / 2, y i + k1 / 2) ,
k 3 = h f ( xi + h / 2, y i + k 2 / 2) ,
k 4 = h f ( x i + h, y i + k 3 ) .

Да отбележим, че няма двуетапен метод на Рунге-Кута с локална грешка O(h 3 ) .


(За да се убедим в това, достатъчно е да разгледаме уравнението u ′ = u ). Същото се
отнася и за s = 3, 4 − няма методи на Рунге-Кута с локална грешка на апроксимация
O(h s +1 ) . Нещо повече, оказва се, че няма пететапен метод на Рунге-Кута с локална
грешка на апроксимация O(h 5 ) .

4. Методите на Рунге-Кута имат тривиално обобщение за случая на задача на


Коши за система ОДУ от I-ви ред. Например за системата

u ′ = f ( x, u , v )
v ′ = g ( x, u , v )
u( x0 ) = u 0
v( x 0 ) = v 0
четириетапният метод на Рунге-Кута се записва така:

y i +1 − y i 1 z i +1 − z i 1
= ( k1 + 2 k 2 + 2 k 3 + k 4 ) , = (l1 + 2l 2 + 2l 3 + l 4 ) ,
h 6h h 6h
14
k1 = h f ( x i , y i , z i ) , l1 = h g ( xi , y i , z i ) ,
k 2 = h f ( xi + h / 2, yi + k1 / 2, zi + l1 / 2) , l 2 = h g ( xi + h / 2, yi + k1 / 2, zi + l1 / 2) ,
k 3 = h f ( xi + h / 2, y i + k 2 / 2, zi + l 2 / 2) , l3 = h g ( xi + h / 2, y i + k 2 / 2, zi + l 2 / 2) ,
k 4 = h f ( x i + h, y i + k 3 , z i + l 3 ) , l 4 = h g ( x i + h, y i + k 3 , z i + l 3 ) .

Задачи

1 зад. Да се покаже, че едностъпковите методи


h h
а) yi +1 = yi + h f ( xi + , yi + f ( xi , yi )),
2 2
h
б) yi +1 = yi + [ f ( xi , yi ) + f ( xi +1 , yi + h f ( xi , yi ))] ,
2
h⎡ 2 2 ⎤
в) yi +1 = yi + ⎢ f ( xi , yi ) + 3 f ( xi + h, yi + h f ( xi , yi )) ⎥
4⎣ 3 3 ⎦
са явни методи на Рунге-Кута за решаване на задачата (1), (2) с локална грешка на
апроксимацията ψ i = O ( h 2 ) .
Решение: Всички тези методи могат да се запишат във вида
(9) yi +1 = yi + p1k1 + p2k2 , k1 = h f ( xi , yi ) , k2 = h f ( xi + α 2 h, yi + β 21k1 ) , където
коефициентите p1 , p2 , α 2 и β 21 за всеки един от методите имат съответно следните
стойности:
1 1
• за метода а): p1 = 0, p2 = 1, α 2 = , β 21 = ;
2 2
1 1
• за метода б): p1 = , p2 = , α 2 = 1, β 21 = 1 ;
2 2

1 3 2 2
• за метода в): p1 = , p2 = , α 2 = , β 21 = .
4 4 3 3

Тъй като тези коефициенти във всеки един от случаите удовлетворяват системата
(5), то ψ i = O ( h 2 ) .

2 зад. Да се покаже, че едностъпковите методи а) - в) от зад. 1, приложени към


задачата на Коши
u′( x ) = x − u + 1,
(10)
u(0) = 1,
дават едно и също приближение.
Решение: Ще покажем това за методите а) и б). За метода в) разсъжденията са
аналогични.
Да приложим метода а) към задача (10) във вида, в който е записан. Получаваме
⎡ h h ⎤
yi +1 = yi + h ⎢ xi + + 1 − yi − ( xi − yi + 1) ⎥ ,
⎣ 2 2 ⎦
или още

15
h2
(11) yi +1 = yi + h( xi − yi + 1) + ( yi − xi ) .
2
1
Да разгледаме сега метода б), но представен във вида (9), където p1 = ,
2
1
p2 = , α 2 = 1, β 21 = 1 . Като го приложим към задача (10), получаваме
2
последователно
k1 = h( xi − yi + 1) ,
k2 = h( xi + h − yi − k1 + 1) = h( xi + h − yi − h( xi − yi + 1) + 1) =
= h( xi − yi + 1) + h 2 ( yi − xi ),
h h h2
yi +1 = yi + ( xi − yi + 1) + ( xi − yi + 1) + ( yi − xi ) ,
2 2 2
или окончателно
h2
(12) yi +1 = yi + h( xi − yi + 1) + ( yi − xi ) .
2
Очевидно (11) и (12) съвпадат.

3 зад. Да се докаже, че методът на Рунге-Кута

y i +1 − y i k1 + 3k 2
= , k1 = h f ( x i , y i ) , k 2 = h f ( xi + 2h / 3, y i + 2k1 / 3) ,
h 4h

приложен към задачата


(13) u′( x ) = f ( x ), x0 < x ≤ X ,
(14) u ( x 0 ) = u 0
има локална грешка на апроксимацията ψ i = O ( h 3 ) .
Забележка. От изследванията при s = 2 следва, че приложен към задача (1), (2),
формулираният метод има локална грешка на апроксимацията ψ i = O ( h 2 ) . Дясната
страна на уравнение (13) обаче, не зависи от търсеното решение u , откъдето и идва по-
високият ред на локалната грешка на апроксимация на разглеждания метод за тази
конкретна задача.
Решение: Последователно получаваме

ui +1 − ui 1 3 ⎛ 2 ⎞
ψi = − f ( xi ) − f ⎜ xi + h ⎟ =
h 4 4 ⎝ 3 ⎠
1⎛ h2 h3 h 4 IV ⎞ 1
= u
⎜ i + hui
′ + ui
′′ + ui
′′′+ ui + O ( h 5 ) − ui ⎟ − f ( xi ) −
h⎝ 2 3! 4! ⎠ 4
3⎛ ⎞
2 3
2 ⎛ 2 ⎞ 1 ⎛ 2 ⎞ 1
− ⎜ f ( xi ) + hf ′( xi ) + ⎜ h ⎟ f ′′( xi ) + ⎜ h ⎟ f ′′′( xi ) + O (h 4 ) ⎟ =
4 ⎜⎝ 3 ⎝3 ⎠ 2 ⎝ 3 ⎠ 3! ⎟

⎛ 1 3 ⎛ 2 ⎞3 1 ⎞ ⎛ 1 1 ⎞
= h ui
3 IV
− + O (h 4 ) = h 3ui IV ⎜ − ⎟ + O (h 4 ) = O ( h 3 ).
⎜⎜ 4! 4 ⎜⎝ 3 ⎟⎠ 3! ⎟⎟ ⎝ 24 27 ⎠
⎝ ⎠

16
4 зад. За задачата

u′′( x ) = f ( x, u ( x )), x ∈ ( x0 , X ],
(15) u ( x0 ) = u0,
u′( x0 ) = u0′

да се построи едностъпков мрежов метод, базиращ се на метод на Рунге-Кута с локална


грешка на апроксимацията ψ i = O ( h 2 ) .
Решение: Най-напред ще сведем задачата (15) към система ОДУ от I ред и след
това към тази система ще приложим формули на Рунге-Кута с локална грешка на
апроксимацията ψ i = O ( h 2 ) . Ако положим u′( x ) = v ( x ) , задача (15) приема вида

u′( x ) = v ( x ), x ∈ ( x0 , X ],
v′( x ) = f ( x, u( x )),
(16)
u( x0 ) = u0,
v ( x0 ) = u0′ .

Нека с yh = { yi }i =0 означим мрежовата функция, която е приближение на u , а със


n

zh = {zi }i =0 - мрежовата функция, която е приближение на v . Към задача (16) прилагаме


n

аналога на метода на Рунге-Кута (6) и получаваме

1 1
yi +1 = yi + ( k1 + k2 ), zi +1 = zi + (l1 + l2 ),
2 2
k1 = h zi , l1 = h f ( xi , yi ),
k2 = h( zi + l1 ), l2 = h f ( xi + h, yi + k1 ),

или още

h
yi +1 = yi + (2 zi + h f ( xi , yi )),
2
h
zi +1 = zi + ( f ( xi , yi ) + f ( xi + h, yi + hzi )
2
y0 = u0,
z0 = u0′ .

17
§ 3. ОЦЕНКА НА ГРЕШКАТА НА ЕДНОСТЪПКОВИТЕ МЕТОДИ

Нека
yi +1 − yi X − x0
(1) = θ i ( xi , yi ), i = 0, 1,… , n − 1, xi = x0 + ih, h =
h n
е едностъпков метод за решаване на задачата на Коши

(2) u′( x ) = f ( x, u( x )), x0 < x ≤ X ,


(3) u ( x0 ) = u 0 .

Ще искаме да оценим разликата zn = un − yn .


Записваме (1) във вида
(4) y i +1 = y i + h θ i ( xi , y i ) .
Разглеждаме следните спомагателни задачи, i = 0, 1, … , n :
(5) Yi′ = f ( xi , Yi )
(6) Yi ( xi ) = y i , Y0 = u 0 ,
т.е. това са задачи на Коши, чиито решения удовлетворяват едно и също уравнение (2),
но различни начални условия.
Точните решения на тези задачи ще удовлетворяват следните равенства в
точките от мрежата ω h :
Yi ( xi +1 ) − Yi ( xi )
(7) = θi ( xi , Yi ( xi )) + ψ i + δ i , i = 0, 1,… , n − 1,
h
където ψ i и δ i са съответно локалната грешка на апроксимация и грешката от
закръгляването. Като използваме (7), (6) и (4), последователно получаваме:

Yi ( xi +1 ) = y i + h θ i ( xi , y i ) + hψ i + hδ i = yi +1 + hψ i + hδ i ,
Yi ( xi +1 ) − yi +1 = hψ i + hδ i , Yi ( xi +1 ) − Yi +1 ( xi +1 ) = hψ i + hδ i .

Записваме последното равенство за x = xi :


(8) Yi −1 ( xi ) − Yi ( xi ) = hψ i −1 + hδ i −1 .
Тогава
n
(9) z n = u n − y n = Y0 ( x n ) − Yn ( x n ) = ∑ (Yi −1 ( x n ) − Yi ( x n ) ) .
i =1

За да оценим разликата Yi −1 ( x n ) − Yi ( x n ) ще използваме следната


Лема. Нека Y1 ( x) и Y2 ( x ) са две различни решения на уравнението (2) в
интервала [a, b] . Тогава
b
∂f
∫ ∂u ( x ,u ( x )) dx
Y1 (b) − Y2 (b) = (Y1 (a ) − Y2 ( a ) ) e a
, Y1 ( x ) ≤ u ( x ) ≤ Y2 ( x ) .

Доказателство. Имаме
Y1′ = f ( x, Y1 ) ,
Y2′ = f ( x, Y2 ) .
18
Изваждаме второто равенство от първото, прилагаме теоремата за крайните нараствания
и интегрираме по x в интервала [a, b]
∂f
Y1′ − Y2′ = f ( x, Y1 ) − f ( x, Y2 ) = ( x, u ( x)) (Y1 − Y2 ) ,
∂u
b
∂f ∂f
(ln(Y1 − Y2 ))′ = ( x, u ( x )) , ln(Y1 − Y2 ) ba = ∫ ( x, u ( x)) dx .
∂u a
∂u
Твърдението на лемата следва от последното равенство.
Да приложим лемата към разликите в сумата в (9)
xn
∂f
n ∫ ∂ u ( x ,ui ( x ))dx
(10) z n = u n − y n = ∑ (Yi −1 ( xi ) − Yi ( xi )) e xi
, Yi −1 ( x) ≤ u i ( x) ≤ Yi ( x) .
i =1

Ако предположим, че
∂f
( x, u ) ≤ K ,
∂u
и използваме (8), от (10) получаваме
n
(11) z n = u n − y n ≤ e K( xn − xi ) ∑ h ( ψ i −1 + δ i −1 ) .
i =1
Да предположим, че за локалната грешка на апроксимация имаме
ψ i ≤ ch s , s ≥ 1 ,
както е например за s -етапния метод на Рунге-Кута при s ≤ 4 , ако u ( x ) ∈ C s+1 [ x 0 , X ] .
Нека още max δ i = δ . Тогава oт (11) получаваме:
0≤ i ≤ n

⎡n ⎤
z n = u n − y n ≤ e K ( xn − x0 ) h ⎢∑ ψ i −1 + nδ ⎥ ≤ e K ( xn − x0 ) n h (C h s + δ ) ≤
⎣ i =1 ⎦
K ( x n − x0 )
≤e ( x n − x0 )(C h + δ ) .
s

Ако δ = 0 , то за фиксирано x ∈ ω h имаме


z( x ) = u( x ) − y ( x ) = O ( h s ) → 0 при h → 0 ,
при това скоростта на сходимост е от ред s , равен на реда на апроксимация.
Коментарът, който направихме при метода на Ойлер, е в сила и тук - грешката от
закръгляване расте експоненциално с x .

19
§ 4. МЕТОД НА РУНГЕ ЗА ПРАКТИЧЕСКА ОЦЕНКА НА ГРЕШКАТА

Нека y h (x) и y h / 2 ( x) са приближените стойности на решението u (x) в точката


x , пресметнати съответно със стъпки h и h / 2 по някакъв метод, чиято скорост на
сходимост е от ред s :
(1) u ( x ) = y h ( x ) + ch s .
Ако предположим, че c се мени слабо при промяна на стъпката h , то можем да
напишем
s
⎛h⎞
(2) u ( x) = y h / 2 + c ⎜ ⎟ .
⎝ 2⎠
От (2) изваждаме (1) и последователно получаваме:
⎛ 1⎞ ( y − y )2 s
y h / 2 − y h = c h s ⎜1 − s ⎟ , ch s = h / 2 s h .
⎝ 2 ⎠ 2 −1
Тогава от (1) получаваме
2 s ( yh / 2 − yh )
u ( x) = y h + = y h + r ( h) .
2s −1
Следователно, числото
2 s ( yh / 2 − yh )
r ( h) =
2s −1
ни дава приблизително грешката в точката x . Тази идея може да се използва за
пресмятане (приближено) на реда на сходимост α на кой да е метод за приближено
решаване на дадена задача върху мрежа ω h .
Да разгледаме първо случая, когато знаем точното решение u (x) (на някаква
моделна задача) и да пресметнем приближеното решение в точките на две вложени
мрежи със стъпки h и h / 2 . Нека y h (x) и y h / 2 ( x) са стойности на u (x) в точката x ∈ ω h
и x ∈ ω h / 2 . Тогава от (1) и (2) получаваме

u ( x) − y h ( x) u ( x) − y h ( x)
= 2α , α = ln / ln 2 .
u ( x) − y h / 2 ( x) u ( x) − y h / 2 ( x)
Ако точното решение на задачата не е известно, пресмятаме приближеното
решение върху още една мрежа със стъпка h / 4 :
α
⎛h⎞
(3) u ( x) = y h / 4 + c ⎜ ⎟ .
⎝4⎠
Чрез изваждане на (2) от (1) и (3) от (2) получаваме

α⎛ 1 ⎞ hα ⎛ 1 ⎞
yh − yh / 2 = c h ⎜ α − 1⎟ , yh / 2 − yh / 4 = c α ⎜ α − 1⎟ ,
⎝2 ⎠ 2 ⎝2 ⎠
следователно

yh − yh / 2 yh − yh / 2
= 2α , α = ln / ln 2 .
yh / 2 − yh / 4 yh / 2 − yh / 4

20
Ако за пресметнатите α = α (x ) във всички (или в достатъчно много) общи точки на
мрежите ω h , ω h / 2 и ω h / 4 имаме
α (x ) ≈ α ,
то можем да считаме, че α е реалният ред на сходимост на числения метод.

21

You might also like