Metody numeryczne cz. 10 - Instytut Metod Komputerowych w ...
Metody numeryczne cz. 10 - Instytut Metod Komputerowych w ...
Metody numeryczne cz. 10 - Instytut Metod Komputerowych w ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Michał Pazdanowski<br />
<strong>Instytut</strong> Technologii Informacyjnych w Inżynierii Lądowej<br />
Wydział Inżynierii Lądowej<br />
Politechnika Krakowska<br />
Równania różni<strong>cz</strong>kowe zwy<strong>cz</strong>ajne<br />
W najprostszym przypadku poszukujemy funkcji jednej zmiennej rze<strong>cz</strong>ywistej x w postaci:<br />
y( x)<br />
której pochodna y' ( x)<br />
ma spełniać równanie dane jako:<br />
y ( x) f ( x,<br />
y( x)<br />
)<br />
lub w skrócie:<br />
y = , (1)<br />
' = , (2)<br />
( x y)<br />
y '= f , . (3)<br />
W ogólności tak postawiony problem ma nieskoń<strong>cz</strong>enie wiele rozwiązań, spomiędzy których wybieramy<br />
rozwiązanie sz<strong>cz</strong>ególne, spełniające dodatkowy warunek, zwany warunkiem po<strong>cz</strong>ątkowym<br />
– poszukujemy takiej funkcji (1), która dla danego x<br />
0<br />
spełnia:<br />
Zadanie (2), (4) można uogólnić na przypadki:<br />
• układu n równań różni<strong>cz</strong>kowych zwy<strong>cz</strong>ajnych:<br />
'<br />
⎧ y1<br />
⎪ '<br />
y2<br />
⎨<br />
⎪<br />
⎪ '<br />
⎩yn<br />
y ( x 0<br />
) = y0<br />
; (4)<br />
( x) = f1( x,<br />
y1( x) , y2( x) ,..., yi<br />
( x) ,..., yn( x)<br />
)<br />
( x) = f ( x,<br />
y ( x) , y ( x) ,..., y ( x) ,..., y ( x)<br />
)<br />
2<br />
( x) = f ( x,<br />
y ( x) , y ( x) ,..., y ( x) ,..., y ( x)<br />
)<br />
n<br />
1<br />
1<br />
2<br />
M<br />
2<br />
i<br />
i<br />
n<br />
n<br />
, (5)<br />
n nieznanych funkcji rze<strong>cz</strong>ywistych y i<br />
( x),<br />
i = 1,2,..., i,...,<br />
n zmiennej rze<strong>cz</strong>ywistej x z warunkiem<br />
po<strong>cz</strong>ątkowym:<br />
y<br />
y<br />
y<br />
1<br />
2<br />
( x0<br />
)<br />
( x )<br />
0<br />
M<br />
= y<br />
= y<br />
<strong>10</strong><br />
20<br />
( x0<br />
) =<br />
0<br />
n<br />
y n<br />
• równania różni<strong>cz</strong>kowego rzędu wyższego niż pierwszy:<br />
y<br />
( )<br />
( m ) ' ''<br />
( m−1<br />
( x) f x,<br />
y( x) , y ( x) , y ( x) ,..., y )<br />
( x)<br />
; (6)<br />
= , (7)<br />
jednej funkcji rze<strong>cz</strong>ywistej (1) z warunkiem po<strong>cz</strong>ątkowym:<br />
'<br />
' ''<br />
'' ( m−1<br />
( ) ( ) ( ) ) ( m−1)<br />
x = y , y x = y , y x = y ,..., y ( x ) = y<br />
y . (8)<br />
0<br />
0<br />
0<br />
0<br />
0<br />
Przypadek drugi z rozważanych powyżej zawsze można sprowadzić do przypadku pierwszego poprzez<br />
ciąg podstawień:<br />
z<br />
m<br />
z<br />
z<br />
( x) = y( x)<br />
'<br />
( x) = y ( x)<br />
1<br />
2<br />
M<br />
( m−1<br />
( x) = y )<br />
( x)<br />
⇒<br />
'<br />
z<br />
m<br />
'<br />
z<br />
1<br />
'<br />
z<br />
0<br />
( x) = z2( x)<br />
( x) = z ( x)<br />
2<br />
M<br />
'<br />
zm−<br />
1( x) = zm( x)<br />
( x) = f ( x z ( x) , z ( x) ,..., z ( x)<br />
)<br />
3<br />
,<br />
1 2<br />
0<br />
m<br />
0<br />
. (9)<br />
1
Michał Pazdanowski<br />
<strong>Instytut</strong> Technologii Informacyjnych w Inżynierii Lądowej<br />
Wydział Inżynierii Lądowej<br />
Politechnika Krakowska<br />
Ze względu na sposób postępowania <strong>numery<strong>cz</strong>ne</strong>go, metody rozwiązania problemu (2) z warunkiem<br />
(4) można podzielić na dwie kategorie:<br />
• metody jednokrokowe (znane również pod nazwą samostartujących), należą tu na przykład<br />
metoda Eulera, bądź metody typu Rungego – Kutty,<br />
• metody wielokrokowe (znane także jako metody typu predyktor – korektor), do których należą<br />
np. metody Adamsa – Bashforda (predyktor) i Adamsa – Moultona (korektor).<br />
<strong><strong>Metod</strong>y</strong> jednokrokowe można zapisać przy pomocy następujących wzorów:<br />
⎛<br />
s<br />
⎞<br />
ki<br />
= f<br />
⎜ xn<br />
+ h ⋅αi, yn<br />
+ h ⋅∑βij<br />
⋅ k<br />
j<br />
⎟ , (<strong>10</strong>)<br />
⎝<br />
j=<br />
1 ⎠<br />
s<br />
y<br />
n+ 1<br />
= yn<br />
+ h ⋅∑<br />
wi<br />
⋅ ki<br />
, wi<br />
≥ 0 , (11)<br />
i=<br />
1<br />
wynikających z rozwinięcia poszukiwanej funkcji (1) w oto<strong>cz</strong>eniu punktu y n<br />
w szereg Taylora.<br />
Konkretne wartości współ<strong>cz</strong>ynników w<br />
i<br />
, α<br />
i<br />
i β<br />
ij<br />
w przypadku metod jawnych, dla których musi<br />
być spełniony warunek s ≤ i we wzorze (<strong>10</strong>), przedstawiają się następująco:<br />
• dla metody Eulera w = 1<br />
1 , α = 0 , β = 0<br />
1 11<br />
y<br />
k<br />
n+<br />
1<br />
=<br />
, <strong>cz</strong>yli:<br />
( x y )<br />
1<br />
f<br />
n,<br />
= y<br />
n<br />
n<br />
+ h⋅k<br />
1<br />
; (12)<br />
• dla metody Rungego – Kutty II rzędu w = 1<br />
0 , w = 1,<br />
α = 0 , 1<br />
2 1<br />
α<br />
2<br />
=<br />
2<br />
, β = 11<br />
0 i 1<br />
β<br />
22<br />
=<br />
2<br />
, <strong>cz</strong>yli:<br />
k<br />
2<br />
y<br />
=<br />
n+<br />
1<br />
f<br />
k1<br />
= f ( xn,<br />
yn<br />
)<br />
1<br />
1<br />
( xn<br />
+<br />
2<br />
⋅h,<br />
yn<br />
+<br />
2<br />
⋅h<br />
⋅k1<br />
)<br />
y + h⋅( 0⋅k<br />
+ 1⋅k<br />
)<br />
=<br />
n<br />
1<br />
2<br />
; (13)<br />
1<br />
1<br />
1<br />
1<br />
• dla metody Rungego – Kutty IV rzędu w<br />
1<br />
=<br />
6<br />
, w<br />
2<br />
=<br />
3<br />
, w<br />
3<br />
=<br />
3<br />
, w<br />
4<br />
=<br />
6<br />
, α = 1<br />
0 , 1<br />
α<br />
2<br />
=<br />
2<br />
,<br />
1<br />
α<br />
3<br />
=<br />
2<br />
, α = 4<br />
1 , β = 0 , 1<br />
1<br />
11<br />
β<br />
22<br />
=<br />
2<br />
, β<br />
33<br />
=<br />
2<br />
i β = 44<br />
1 <strong>cz</strong>yli:<br />
y<br />
n+<br />
1<br />
k<br />
k<br />
2<br />
3<br />
= y<br />
=<br />
k<br />
n<br />
=<br />
4<br />
f<br />
f<br />
=<br />
+ h<br />
k1<br />
= f ( xn,<br />
yn<br />
)<br />
1<br />
1<br />
( xn<br />
+<br />
2<br />
⋅ h,<br />
yn<br />
+<br />
2<br />
⋅ h⋅<br />
k1)<br />
1<br />
1<br />
( xn<br />
+<br />
2<br />
⋅h,<br />
yn<br />
+<br />
2<br />
⋅h⋅k2<br />
)<br />
f ( xn<br />
+ h,<br />
yn<br />
+ h⋅k3)<br />
1 1 1 1<br />
⋅( ⋅k<br />
+ ⋅k<br />
+ ⋅k<br />
+ ⋅k<br />
)<br />
We wzorach (13) i (14) wszystkie współ<strong>cz</strong>ynniki β<br />
ij<br />
, dla których<br />
6<br />
1<br />
3<br />
2<br />
3<br />
3<br />
6<br />
4<br />
. (14)<br />
i ≠ j , są równe zeru.<br />
ść<br />
<strong>Metod</strong>a Eulera jest metodą rzędu pierwszego, <strong>cz</strong>yli różnica pomiędzy ścisłą yn<br />
+ 1<br />
a przybliżoną y<br />
n+ 1<br />
wartością rozwiązania w kolejnym punkcie x<br />
n+ 1<br />
zmienia się z pierwszą potęgą h . W metodzie<br />
Rungego – Kutty II rzędu różnica ta zmienia się z drugą, w metodzie IV rzędu z <strong>cz</strong>wartą potęgą h .<br />
Dla ilustracji toku postępowania przy rozwiązywaniu problemu po<strong>cz</strong>ątkowego każdą z wymienionych<br />
powyżej metod, zastosujmy je do wykonania trzech kolejnych kroków w poszukiwaniu <strong>numery<strong>cz</strong>ne</strong>go<br />
rozwiązania zadania:<br />
2
Michał Pazdanowski<br />
<strong>Instytut</strong> Technologii Informacyjnych w Inżynierii Lądowej<br />
Wydział Inżynierii Lądowej<br />
Politechnika Krakowska<br />
dz 3⋅<br />
z − 5<br />
= , (15)<br />
dt t + 1<br />
przy warunku po<strong>cz</strong>ątkowym:<br />
t<br />
0<br />
= 2,0<br />
, z0<br />
= z( t0<br />
) = 2, 0 , (16)<br />
1<br />
z krokiem ∆t = h =<br />
2<br />
. Problem ten ma rozwiązanie ścisłe w postaci funkcji z () t danej wzorem:<br />
k<br />
k<br />
( )<br />
+1 5<br />
()<br />
3 z = t<br />
ść t + . (17)<br />
81 3<br />
<strong>Metod</strong>a Eulera<br />
Iteracja pierwsza:<br />
3⋅<br />
z0<br />
+ 5 3⋅<br />
2,000000 − 5<br />
f<br />
0<br />
= f ( t0,<br />
z0<br />
) = =<br />
= 0, 333333 , (18)<br />
t + 1 2,000 + 1<br />
0<br />
z = z + h⋅<br />
f = 2,000000 + 0,500⋅0,333333<br />
2,166667 . (19)<br />
1 0 0<br />
=<br />
Iteracja druga:<br />
3⋅<br />
z1<br />
+ 5 3⋅2,166667<br />
− 5<br />
f<br />
1<br />
= f ( t1,<br />
z1<br />
) = =<br />
= 0, 428571 , (20)<br />
t + 1 2,500 + 1<br />
1<br />
z = z + h ⋅ f = 2,166667 + 0,500⋅0,428571<br />
2,380952 . (21)<br />
2 1 1<br />
=<br />
Iteracja trzecia:<br />
3⋅<br />
z2<br />
+ 5 3⋅2,380952<br />
− 5<br />
f<br />
2<br />
= f ( t2,<br />
z2<br />
) = =<br />
= 0, 535714 , (22)<br />
t + 1 3,000 + 1<br />
2<br />
z = z + h⋅<br />
f = 2,380952 + 0,500⋅0,535714<br />
2,6488<strong>10</strong> . (23)<br />
3 2 2<br />
=<br />
{} 1<br />
= f ( t , z )<br />
1<br />
1<br />
( t + ⋅h,<br />
z + ⋅h⋅k<br />
)<br />
{} 1<br />
{} 1<br />
2<br />
=<br />
f<br />
0<br />
2<br />
0<br />
k<br />
2<br />
1<br />
1<br />
<strong>Metod</strong>a Rungego – Kutty II rzędu<br />
0<br />
0<br />
3⋅<br />
=<br />
{} 1<br />
Iteracja pierwsza:<br />
3⋅<br />
z0<br />
− 5<br />
= =<br />
t + 1<br />
0<br />
1 {} 1<br />
( z + ⋅h⋅k<br />
) − 5 3⋅( 2,000000+<br />
0,5⋅0,500⋅0,333333)<br />
0<br />
t<br />
0<br />
+<br />
2<br />
1<br />
2<br />
1<br />
⋅h<br />
+ 1<br />
3⋅2,000000−5<br />
2,000+<br />
1<br />
=<br />
= 0,333333<br />
2,000+<br />
0,5⋅0,500+<br />
1<br />
−5<br />
= 0,384615<br />
, (24)<br />
z = z + h⋅k<br />
= 2,000000 + 0,500⋅384615<br />
2,192308 . (25)<br />
1 0 2<br />
=<br />
{} 2<br />
= f ( t , z )<br />
1<br />
1<br />
( t + ⋅ h,<br />
z + ⋅h⋅k<br />
)<br />
{} 2<br />
{} 2<br />
2<br />
=<br />
f<br />
1<br />
2<br />
1<br />
2<br />
k<br />
1<br />
1<br />
1<br />
1<br />
3⋅<br />
=<br />
{} 2<br />
Iteracja druga:<br />
3⋅<br />
z1<br />
− 5<br />
= =<br />
t + 1<br />
1<br />
{} 2<br />
( z1<br />
+ ) 1<br />
2<br />
⋅h⋅k1<br />
− 5 3⋅( 2,192308+<br />
0,5⋅0,500⋅0,450549) −5<br />
=<br />
= 0, 5<strong>10</strong>623<br />
t<br />
1<br />
+<br />
1<br />
2<br />
⋅h<br />
+ 1<br />
3⋅2,192308−5<br />
2,500+<br />
1<br />
= 0,450549<br />
2,500+<br />
0,5⋅0,500+<br />
1<br />
, (26)<br />
z = z + h⋅k<br />
= 2,192308 + 0,500⋅0,5<strong>10</strong>623<br />
2,447619 . (27)<br />
2 1 2<br />
=<br />
3
k<br />
Michał Pazdanowski<br />
<strong>Instytut</strong> Technologii Informacyjnych w Inżynierii Lądowej<br />
Wydział Inżynierii Lądowej<br />
Politechnika Krakowska<br />
{} 3<br />
= f ( t , z )<br />
1<br />
1<br />
( t + ⋅h,<br />
z + ⋅h⋅k<br />
)<br />
{} 3<br />
{} 3<br />
2<br />
k<br />
k<br />
k<br />
k<br />
k<br />
k<br />
=<br />
f<br />
2<br />
2<br />
2<br />
k<br />
2<br />
1<br />
1<br />
2<br />
2<br />
3⋅<br />
=<br />
{} 3<br />
Iteracja trzecia:<br />
3⋅<br />
z2<br />
− 5<br />
= =<br />
t + 1<br />
2<br />
1 {} 3<br />
( z + ⋅h⋅k<br />
) − 5 3⋅( 2,447619+<br />
0,5⋅0,500⋅0,585714)<br />
2<br />
t<br />
2<br />
+<br />
2<br />
1<br />
2<br />
1<br />
⋅h<br />
+ 1<br />
3⋅2,447619−5<br />
3,000+<br />
1<br />
4 <br />
=<br />
= 0,585714<br />
3,000+<br />
0,5⋅0,500+<br />
1<br />
−5<br />
= 0,654622<br />
, (28)<br />
z = z + h⋅k<br />
= 2,447619 + 0,500⋅0,654622<br />
2,774930 . (29)<br />
3 2 2<br />
=<br />
{} 1<br />
= f ( t , z )<br />
1<br />
1<br />
( t + ⋅h,<br />
z + ⋅h⋅k<br />
)<br />
{} 1<br />
{} 1<br />
2<br />
1<br />
1<br />
( t + ⋅h,<br />
z + ⋅h⋅k<br />
)<br />
{} 1<br />
{} 1<br />
3<br />
=<br />
=<br />
k<br />
f<br />
f<br />
( t + h,<br />
z + h⋅k<br />
)<br />
{} 1<br />
{} 1<br />
4<br />
0<br />
0<br />
=<br />
f<br />
2<br />
2<br />
0<br />
0<br />
0<br />
1<br />
0<br />
=<br />
k<br />
2<br />
2<br />
1<br />
z = z<br />
0<br />
1<br />
2<br />
3<br />
+ h⋅<br />
<strong>Metod</strong>a Rungego – Kutty IV rzędu<br />
0<br />
0<br />
3⋅<br />
=<br />
3⋅<br />
=<br />
3⋅<br />
=<br />
2,000000 + 0,500 ⋅<br />
Iteracja pierwsza:<br />
3⋅<br />
z0<br />
− 5<br />
= =<br />
t + 1<br />
0<br />
1 {} 1<br />
( z + ⋅h⋅k<br />
) − 5 3⋅( 2,000000+<br />
0,5⋅0,500⋅0,333333)<br />
0<br />
t<br />
⋅h<br />
+ 1<br />
0<br />
1 {} 1<br />
( z + ⋅h⋅k<br />
) − 5 3⋅( 2,000000+<br />
0,5⋅0,500⋅0,384615)<br />
0<br />
t<br />
⋅h<br />
+ 1<br />
0<br />
{} 1<br />
( z + h⋅k<br />
) − 5 3⋅( 2,000000+<br />
0,500⋅0,396450)<br />
0<br />
t<br />
0<br />
+<br />
+<br />
2<br />
2<br />
1<br />
2<br />
1<br />
2<br />
3<br />
+ h + 1<br />
1<br />
2<br />
3⋅2,000000−5<br />
2,000+<br />
1<br />
1 {} 1 1 { 1} 1 { 1} 1 { 1}<br />
( ⋅k<br />
+ ⋅k<br />
+ ⋅k<br />
+ ⋅k<br />
)<br />
6<br />
1<br />
=<br />
=<br />
=<br />
= 0,333333<br />
2,000+<br />
0,5⋅0,500+<br />
1<br />
2,000+<br />
0,5⋅0,500+<br />
1<br />
2,000+<br />
0,500+<br />
1<br />
−5<br />
1<br />
( ⋅0,333333+<br />
1⋅0,384615+<br />
1⋅0,396450+<br />
1⋅0,455621) = 2, 195924<br />
6<br />
{} 2<br />
= f ( t , z )<br />
1<br />
1<br />
( t + ⋅ h,<br />
z + ⋅ h⋅<br />
k )<br />
{} 2<br />
{} 2<br />
2<br />
1<br />
1<br />
( t + ⋅ h,<br />
z + ⋅ h⋅<br />
k )<br />
{} 2<br />
{} 2<br />
3<br />
=<br />
=<br />
k<br />
( t + h,<br />
z + h⋅<br />
k )<br />
{} 2<br />
{} 2<br />
4<br />
f<br />
f<br />
1<br />
1<br />
=<br />
f<br />
2<br />
2<br />
1<br />
1<br />
1<br />
1<br />
1<br />
=<br />
2<br />
2<br />
k<br />
0<br />
1<br />
z = z<br />
1<br />
2<br />
3<br />
+ h⋅<br />
1<br />
1<br />
3⋅<br />
=<br />
3⋅<br />
=<br />
3⋅<br />
=<br />
2,195924 + 0,500 ⋅<br />
3<br />
2<br />
3<br />
3<br />
Iteracja druga:<br />
3⋅<br />
z1<br />
− 5<br />
= =<br />
t + 1<br />
3<br />
3<br />
6<br />
1<br />
1 {} 2<br />
( z + ⋅ h⋅<br />
k ) − 5 3⋅( 2,195924+<br />
0,5⋅0,500⋅0,453649)<br />
1<br />
⋅ h + 1<br />
1<br />
1 {} 2<br />
( z + ⋅ h⋅<br />
k ) − 5 3⋅( 2,195924+<br />
0,5⋅0,500⋅0,514135)<br />
1<br />
⋅ h + 1<br />
1<br />
{} 2<br />
( z + h⋅k<br />
) − 5 3⋅( 2,195924+<br />
0,500⋅0,526233)<br />
1<br />
t<br />
t<br />
1<br />
2<br />
+<br />
2<br />
+<br />
1<br />
2<br />
1<br />
2<br />
3<br />
t + h + 1<br />
1<br />
2<br />
4<br />
3⋅2,195924−5<br />
2,500+<br />
1<br />
1 {} 1 1 { 1} 1 { 1} 1 { 1}<br />
( ⋅k<br />
+ ⋅k<br />
+ ⋅k<br />
+ ⋅k<br />
)<br />
6<br />
1<br />
=<br />
=<br />
=<br />
6<br />
=<br />
= 0,453649<br />
2,500+<br />
0,5⋅0,500+<br />
1<br />
2,500+<br />
0,5⋅0,500+<br />
1<br />
2,500+<br />
0,500+<br />
1<br />
−5<br />
1<br />
( ⋅0,453649+<br />
1⋅0,514135+<br />
1⋅0,526233+<br />
1⋅0,594280) = 2, 456646<br />
6<br />
{} 3<br />
= f ( t , z )<br />
1<br />
1<br />
( t + ⋅h,<br />
z + ⋅h⋅k<br />
)<br />
{} 3<br />
{} 3<br />
2<br />
1<br />
1<br />
( t + ⋅h,<br />
z + ⋅h⋅k<br />
)<br />
{} 3<br />
{} 3<br />
3<br />
=<br />
=<br />
k<br />
( t + h,<br />
z + h⋅k<br />
)<br />
{} 3<br />
{} 3<br />
4<br />
f<br />
f<br />
2<br />
2<br />
=<br />
f<br />
2<br />
2<br />
2<br />
2<br />
2<br />
2<br />
k<br />
2<br />
2<br />
1<br />
1<br />
2<br />
3<br />
2<br />
2<br />
3⋅<br />
=<br />
3⋅<br />
=<br />
3⋅<br />
=<br />
3<br />
2<br />
3<br />
3<br />
3<br />
Iteracja trzecia:<br />
3⋅<br />
z2<br />
− 5<br />
= =<br />
t + 1<br />
3<br />
6<br />
4<br />
2<br />
1 {} 3<br />
( z + ⋅h⋅k<br />
) − 5 3⋅( 2,456646+<br />
0,5⋅0,500⋅0,592484)<br />
2<br />
⋅h<br />
+ 1<br />
2<br />
1 {} 3<br />
( z + ⋅h⋅k<br />
) − 5 3⋅( 2,456646+<br />
0,5⋅0,500⋅0,662188)<br />
2<br />
⋅h<br />
+ 1<br />
2<br />
{} 3<br />
( z + h⋅k<br />
) − 5 3⋅( 2,456646+<br />
0,500⋅0,674489)<br />
2<br />
t<br />
t<br />
t<br />
2<br />
+<br />
+<br />
2<br />
2<br />
1<br />
2<br />
1<br />
2<br />
3<br />
+ h + 1<br />
1<br />
2<br />
3⋅2,456646−5<br />
3,000+<br />
1<br />
=<br />
=<br />
=<br />
6<br />
=<br />
= 0,592484<br />
3,000+<br />
0,5⋅0,500+<br />
1<br />
3,000+<br />
0,5⋅0,500+<br />
1<br />
3,000+<br />
0,500+<br />
1<br />
−5<br />
−5<br />
−5<br />
= 0,384615<br />
= 0,396450<br />
= 0,455621<br />
−5<br />
−5<br />
, (30)<br />
. (31)<br />
= 0,514135<br />
= 0,526233<br />
= 0,594280<br />
−5<br />
−5<br />
, (32)<br />
. (33)<br />
= 0,662188<br />
= 0,674489<br />
= 0,751483<br />
, (34)
z = z<br />
1<br />
=<br />
0<br />
+ h⋅<br />
2,456646 + 0,500 ⋅<br />
Michał Pazdanowski<br />
<strong>Instytut</strong> Technologii Informacyjnych w Inżynierii Lądowej<br />
Wydział Inżynierii Lądowej<br />
Politechnika Krakowska<br />
1 {} 1 1 { 1} 1 { 1} 1 { 1}<br />
( ⋅k<br />
+ ⋅k<br />
+ ⋅k<br />
+ ⋅k<br />
) =<br />
6<br />
1<br />
1<br />
( ⋅0,592484+<br />
1⋅0,662188+<br />
1⋅0,674489+<br />
1⋅0,751483) = 2, 791423<br />
6<br />
3<br />
2<br />
3<br />
3<br />
3<br />
3<br />
6<br />
4<br />
6<br />
. (35)<br />
W tablicach 1 i 2 zestawiono błąd bezwzględny i błąd względny procentowy popełnione przy obli<strong>cz</strong>aniu<br />
wartości funkcji z () t w punkcie t = 3, 500 przedstawionymi powyżej metodami przy różnych<br />
długościach kroku ∆ t . Wartość rozwiązania anality<strong>cz</strong>nego w tym punkcie, użyta do wyzna<strong>cz</strong>enia<br />
błędów bezwzględnego (błąd 1) i względnego procentowego (błąd 2) przedstawionych w kolumnach<br />
4 i 5 tablicy, jest równa z ( 3 ,500) = 2, 791667<br />
ść<br />
.<br />
Tablica 1. Błąd rozwiązania przybliżonego w zależności od długości kroku obli<strong>cz</strong>eń.<br />
Krok <strong>Metod</strong>a Wartość Błąd 1 Błąd 2 [%] Lof<br />
Euler 2,6488<strong>10</strong> 0,142857 5,117265 3<br />
0,5000 Runge-Kutta II 2,774930 0,016737 0,599534 6<br />
Runge-Kutta IV 2,791423 0,000244 0,008740 12<br />
0,0500<br />
0,0050<br />
0,0005<br />
Euler 2,773488 0,018178 0,651160 30<br />
Runge-Kutta II 2,791455 0,000212 0,007594 60<br />
Runge-Kutta IV 2,791667 0,000000 0,000001 120<br />
Euler 2,789798 0,001869 0,066953 300<br />
Runge-Kutta II 2,791665 0,000002 0,000078 600<br />
Runge-Kutta IV 2,791667 0,000000 0,000000 1200<br />
Euler 2,791479 0,000187 0,006714 3000<br />
Runge-Kutta II 2,791667 0,000000 0,000000 6000<br />
Runge-Kutta IV 2,791667 0,000000 0,000000 12000<br />
W ostatniej kolumnie tablicy 1 (Lof) przedstawiono li<strong>cz</strong>bę obli<strong>cz</strong>eń wartości funkcji stojącej po<br />
prawej stronie równania (15) konie<strong>cz</strong>nych do wyzna<strong>cz</strong>enia rozwiązania zapisanego w kolumnie<br />
trzeciej.<br />
Jak wynika z powyższej tablicy dziesięciokrotne zmniejszenie długości kroku całkowania powoduje<br />
zmniejszenie błędu względnego rozwiązania w metodzie Eulera około dziesięć razy, w metodzie<br />
Rungego – Kutty II rzędu około sto razy i w metodzie Rungego – Kutty IV rzędu około dziesięć tysięcy<br />
razy. Jest to zgodne z stwierdzeniem doty<strong>cz</strong>ącym rzędu każdej z rozważanych metod, zawartym<br />
na stronie drugiej.<br />
Wyzna<strong>cz</strong>enie wartości rozwiązania przybliżonego w kolejnym punkcie wymaga jednokrotnego obli<strong>cz</strong>enia<br />
prawej strony równania (2) w wypadku stosowania metody Eulera, dwukrotnego dla metody<br />
Rungego – Kutty II rzędu i <strong>cz</strong>terokrotnego dla metody Rungego – Kutty IV rzędu. W realnych<br />
zadaniach obli<strong>cz</strong>anie prawej strony równania (2) jest najbardziej <strong>cz</strong>asochłonną <strong>cz</strong>ynnością w każdej<br />
iteracji. Wobec tego, aby metoda Rungego – Kutty II rzędu była konkurencyjna w stosunku do metody<br />
Eulera, musi dawać wyniki takiej samej dokładności przy dwukrotnie dłuższym kroku obli<strong>cz</strong>eń,<br />
a metoda Rungego – Kutty IV rzędu przy <strong>cz</strong>terokrotnie dłuższym. Jak widać z tablicy 1 (wiersze<br />
11, 6 i 4) warunki te są spełnione z naddatkiem, gdyż uzyskanie wyniku porównywalnego z<br />
wynikiem uzyskanym w trzech krokach metodą Rungego – Kutty IV rzędu (wiersz <strong>cz</strong>warty tablicy)<br />
kosztem dwunastokrotnego obli<strong>cz</strong>enia prawej strony (15) wymaga wykonania około 30 kroków metodą<br />
Rungego – Kutty II rzędu (wiersz szósty tablicy) <strong>cz</strong>yli sześćdziesięciokrotnego obli<strong>cz</strong>enia<br />
prawej strony (15) i 3000 kroków metodą Eulera (wiersz jedenasty tablicy) <strong>cz</strong>yli obli<strong>cz</strong>enia prawej<br />
strony (15) trzy tysiące razy. Tak więc, spośród trzech prezentowanych metod metoda Rungego –<br />
Kutty IV rzędu jest najbardziej efektywna w zastosowaniach prakty<strong>cz</strong>nych.<br />
5
Michał Pazdanowski<br />
<strong>Instytut</strong> Technologii Informacyjnych w Inżynierii Lądowej<br />
Wydział Inżynierii Lądowej<br />
Politechnika Krakowska<br />
8<br />
7<br />
6<br />
e<br />
rk2<br />
rk4<br />
5<br />
an<br />
4<br />
3<br />
2<br />
2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7<br />
Rys. 1 Rozwiązanie problemu po<strong>cz</strong>ątkowego (15), (16) w przedziale metodami Eulera (e), Rungego<br />
– Kutty II rzędu (rk2) i Rungego – Kutty IV rzędu (rk4) z krokiem . Dla porównania na<br />
wykresie naniesiono również wartości anality<strong>cz</strong>ne rozwiązania (an).<br />
W metodach wielokrokowych typu Adamsa – Bashforda i Adamsa – Moultona<br />
t<br />
6