i = 1, 2, ..., n

Transkrypt

i = 1, 2, ..., n
Metody Numeryczne i Programowanie
Wykład 6.
Strona 1 z 21
Numeryczne metody rozwiązywania zagadnień
początkowych dla równań różniczkowych
zwyczajnych (1)
Zakładamy, że dane jest równanie różniczkowe zwyczajne (ODE) w postaci:
y ′( x ) =
d
y ( x ) = f ( x, y ),
dx
x ∈ [a, b] ,
(7.1)
oraz, że dana jest wartość funkcji y(x) w punkcie x0, to znaczy:
y(x 0 ) = y 0 .
(7.2)
Naszym zadaniem jest znalezienie rozwiązania równania różniczkowego zwyczajnego z
zadanym warunkiem początkowym, czyli funkcji, która w zadanym przedziale [a, b] spełnia
równanie różniczkowe (7.1) wraz z warunkiem początkowym (7.2).
Przedziału [a, b] dzielimy na n równych podprzedziałów:
a = x 0 < x1 < x 2 < K < x n − 2 < x n −1 < x n = b ,
(7.3)
gdzie:
x i +1 − x i = h =
b−a
,
n
i = 0,1, K n − 1
(7.4)
jest krokiem, z jakim aproksymujemy poszukiwane rozwiązanie. Podział (7.3) przedziału [a,
b] nazywamy siatką punktów.
Naszym zadaniem jest znalezienie wartości funkcji y(x) w zadanych punktach xi, i = 1,
2, ..., n, czyli znalezieniu wartości yi = y(xi), i =1, 2, ..., n.
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 1
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 2 z 21
Numeryczne metody rozwiązywania zagadnień
początkowych dla równań różniczkowych
zwyczajnych (2)
Metody jednokrokowe:
Do obliczenia wartości funkcji w punkcie xi – y(xi) wykorzystują wartość tej funkcji w
punkcie xi-1.
-
metody Taylora,
-
metody Rungego – Kutty.
Metody wielokrokowe
Do wyznaczenia kolejnego punktu stanowiącego rozwiązanie wykorzystuje się kilka
wcześniej wyliczonych punktów.
-
metody jawne,
-
metody niejawne.
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 2
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 3 z 21
Metody Taylora (1)
Dane jest zadanie ODE w postaci:
d
y (t ) = f (t , y ),
dt
a ≤ t ≤ b,
y (a ) = y 0 .
(7.5)
Przyjmujemy, że w przedziale [a, b] wyznaczona jest siatka równoodległych punktów t0, t1,
t2, ..., tn, takich, że
t i = a + ih,
h=
b−a
,
n
i = 0,1,2, K , n .
(7.6)
Zakładamy, że funkcja y(t) będąca rozwiązaniem zadania jest różniczkowalna i ma w
przedziale [a, b] ciągłą pierwszą i drugą pochodną.
Dla każdego i = 0, 1 ,2, ..., n-1, y(ti+1) znajdujemy wielomian Taylora:
y (t i +1 ) = y (t i ) + y ′(t i )(t i +1 − t i ) +
(t i +1 − t i )2
2
y ′′(ξ i )
(7.7)
gdzie ξi jest pewną liczbą z przedziału [ti, ti+1].
Wynika stąd tzw. Metoda Eulera:
w0 = y (a ),
(7.8)
wi +1 = wi + hf (t i , wi ),
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 3
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 4 z 21
Metody Taylora (2)
Metoda Eulera
Przykład 7.1.
Dane jest równanie różniczkowe:
y ′ = − y + t + 1,
t ∈ [0,1],
y (0 ) = 1 .
Przyjąć, że przedział [0, 1] podzielony jest na n = 10 podprzedziałów.
Rozwiązanie dokładne: y = t + e − t .
Rozwiązanie
Ponieważ n = 10, to h = 0.1 oraz ti = 0.1 × i, i = 0, 1, ..., 10.
Korzystamy z równania rekurencyjnego
w0 = y (a ),
wi +1 = wi + hf (t i , wi ),
.
gdzie f(t,y) = -y + t +1
y 0 = 1,
y i +1 = y i + h ⋅ f (t i , y i ) = y i + h ⋅ (− y i + t i + 1) =
= y i + 0.1 ⋅ (− y i + 0.1 ⋅ i + 1) =
= 0.9 ⋅ y i + 0.01 ⋅ i + 0.1
dla i = 0, 1, 2, ..., 9.
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 4
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 5 z 21
Metody Taylora (3)
Metoda Eulera
Przykład 7.1.cd.
Tabela 7.1. Porównanie wartości aproksymowanych z dokładnym rozwiązaniem równania
y′ = − y + 7 + 1 . Przyjęto krok całkowania h = 0.1. ε = yi − y (ti ) .
ti
yi
y(ti)
ε
Oszacowanie
błędu
0.0
1.000000
1.000000
0.000
0.000
0.1
1.000000
1.004837
4.837e-3
5.259e-3
0.2
1.010000
1.018731
8.731e-3
1.107e-2
0.3
1.029000
1.040818
1.182e-2
1.749e-2
0.4
1.056100
1.07032
1.422e-2
2.459e-2
0.5
1.090490
1.106531
1.604e-2
3.244e-2
0.6
1.131441
1.148812
1.737e-2
4.111e-2
0.7
1.178297
1.196585
1.829e-2
5.069e-2
0.8
1.230467
1.249329
1.886e-2
6.128e-2
0.9
1.287420
1.30657
1.915e-2
7.298e-2
1.0
1.348678
1.367879
1.920e-2
8.591e-2
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 5
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 6 z 21
Metody Taylora (4)
Metoda Eulera
Przykład 7.1.cd.
y
(t1,y(t1))
y(t1)
(t1,w 1)=(a+h,α+hf(a,α))
y(a)
(t0,w 0)=(a,y(a))
t
t0=a
t1
Rysunek 7.1. Interpretacja geometryczna jednego kroku całkowania metodą Eulera.
1.09
y(x)
1.07
1.05
1.03
1.01
0.99
0
0.1
0.2
0.3
0.4
0.5
x
Rysunek 7.2. Porównanie rozwiązania dokładnego oraz przybliżonego uzyskanego metodą
Eulera. Rozwiązywane równanie y ′ = − y + t + 1,
t ∈ [0,1],
y (0 ) = 1 .
■
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 6
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 7 z 21
Metody Taylora (5)
Oszacowanie błędu metody Eulera
Twierdzenie 7.1.
Niech y(t) będzie jednoznacznym rozwiązaniem równania różniczkowego
d
y (t ) = f (t , y ),
dt
a ≤ t ≤ b,
y (a ) = y 0 ,
(7.9)
oraz w1, w2, ..., wn będą aproksymacjami jego rozwiązania generowanymi przez metodę
Eulera. Jeżeli funkcja f spełnia warunek Lipschitza z stałą L w obszarze
D = {(t , y ) : a ≤ t ≤ b,−∞ < y < ∞} ,
(7.10)
oraz istnieje taka stała M, że
y ′′(t ) ≤ M dla każdego t ∈ [a, b] ,
(7.11)
to dla każdego i = 0, 1, 2, ..., n zachodzi:
y (t i ) − wi ≤
(
)
hM L (ti − a )
e
−1 .
2L
(7.12)
■
Wniosek:
Błąd metody Eulera zależy liniowo od wielkości kroku całkowania h. JUeżeli będziemy
zmniejszać krok całkowania h, to powinniśmy uzyskiwać coraz dokładniejsze aproksymacje!
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 7
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 8 z 21
Metody Taylora (6)
Metoda Eulera
Zamiast standardowej metody Eulera
w0 = y (a ),
(7.14)
wi +1 = wi + hf (t i , wi ),
posługujemy się jej wersją zmodyfikowaną:
u0 = α~,
(7.15)
ui +1 = ui + hf (ti , ui ) + δ i ,
gdzie: α~
jest maszynową reprezentacją wartości początkowej,
δi oznacza błędy zaokrąglenia związane z obliczeniem u i +1 = u i + hf (t i , y i ) .
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 8
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 9 z 21
Metody Taylora (7)
Oszacowanie błędu metody Eulera uwzględniające przeprowadzanie obliczeń w
zmiennopozycyjnej arytmetyce maszynowej.
Twierdzenie 7.2.
Niech y(t) będzie jednoznacznym rozwiązaniem równania różniczkowego:
d
y (t ) = f (t , y ),
dt
a ≤ t ≤ b,
y (a ) = y 0 ,
(7.16)
a u0, u1, u2, ..., un będą aproksymacjami otrzymanymi z wykorzystaniem metody (7.15).
Jeżeli δ < δ dla każdego i = 0, 1, ..., n, gdzie δ = α~ − y oraz spełnione są założenia
0
i
0
twierdzenia (7.1), to dla każdego i = 0, 1, ..., n zachodzi:
y (t i ) − u i ≤
1 ⎛ hM δ ⎞ L (ti − a )
+ ⎟e
− 1 + δ 0 e L (t i − a ) .
⎜
L⎝ 2
h⎠
(
)
(7.17)
■
Wniosek
1. Ponieważ
⎛ hM δ ⎞
+ ⎟ = ∞,
lim⎜
h →0
h⎠
⎝ 2
(7.18)
oczekiwać należy dużych błędów dla niewielkich wartości kroku h.
2. Minimalny krok całkowania w metodzie Eulera wynosi:
h=
2δ
.
M
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
(7.19)
Strona 9
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 10 z 21
Metody Taylora (8)
Lokalny błąd obcięcia metody
Lokalny błąd obcięcia w każdym kroku całkowania określa jak bardzo rozwiązanie dokładne
równania różniczkowego nie spełnia równania różnicowego użytego w aproksymacji.
Jest to miara dokładności metody w każdym kroku całkowania, przy założeniu, że metoda
była dokładna w poprzednim kroku.
Lokalny błąd metody zależy od:
(i)
rozwiązywanego równania różniczkowego,
(ii)
(ii) wielkości kroku całkowania,
(iii)
(iii) liczby wcześniej wykonanych kroków całkowania.
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 10
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 11 z 21
Metody Taylora (9)
Lokalny błąd obcięcia metody
W przypadku metody Eulera, wynikającej z rozwinięcia poszukiwanego rozwiązania w
wielomian Taylora stopnia drugiego:
y (t i +1 ) = y (t i ) + hf (t i , y (t i )) +
h2
y ′′(ξ i ) ,
2
(7.21)
lokalny błąd obcięcia dany będzie równaniem:
τi =
y i − y i −1
− f (t i −1 , y i −1 ) dla każdego i = 1, 2, ..., n,
h
gdzie yi = y(ti) oznacza dokładne rozwiązanie w punkcie ti.
Stąd:
τi =
h
h
y ′′(ξ i ) ≤ M , t i < ξ i < t i +1 .
2
2
(7.22)
Metoda Eulera należy do metod zbieżnych pierwszego rzędu. Lokalny błąd obcięcia jest O(h).
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 11
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 12 z 21
Metody Taylora (10)
Metody Taylora wyższego rzędu
Załóżmy, że rozwiązanie y(t) równania różniczkowego z warunkiem początkowym:
d
y (t ) = f (t , y ),
dt
a ≤ t ≤ b,
y (a ) = α ,
(7.23)
ma (n + 1) ciągłych pochodnych oraz, że rozwiązanie to, y(t), możemy rozwinąć w wielomian
Taylora stopnia n w otoczeniu punktu ti otrzymując:
h2
y ′′(t i ) + K
2
h n (n )
h n +1 (n +1)
(ξ i ), t i < ξ i < t i +1 .
+
y (t i ) +
y
(n + 1)!
n!
y (t i +1 ) = y (t i ) + hy ′(t i ) +
(7.24)
Kolejno różniczkując rozwiązanie y(t), otrzymamy:
y ′(t ) = f (t , y (t )) ,
(7.25)
y ′′(t ) = f ′(t , y (t )) ,
(7.26)
i w ogólnym przypadku
y (k ) (t ) = f (k −1) (t , y (t )) .
(7.27)
Podstawiając te pochodne do równania (7.24) otrzymamy:
h2
f ′(t i , y (t i )) + K
2
h n (n −1)
h n +1
(t i , y(t i )) +
+
f
f (n ) (t i , y (ξ i )), t i < ξ i < t i +1 .
(n + 1)!
n!
y (t i +1 ) = y (t i ) + hf (t i , y (t i )) +
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 12
(7.28)
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 13 z 21
Metody Taylora (11)
Metoda Taylora rzędu n:
w0 = α ,
wi +1 = wi + hT (n ) (t i , wi ), i = 0,1,2, K n − 1,
(7.29)
gdzie:
T (n ) (t i , wi ) = f (t i , wi ) +
h
h n −1 (n −1)
(t i , wi )
f ′(t i , wi ) + K +
f
2
n!
(7.30)
Lokalny błąd obcięcia w (i+1) kroku całkowania wynosi:
τ i +1 =
y (t i +1 ) − y (t i )
hn
− T (n ) (t i , y (t i )) =
f (n ) (t i , y (ξ i )), t i < ξ i < t i +1 ,
(
)
h
n +1!
(7.32)
dla każdego i = 0, 1, ..., n-1.
Jeżeli y ∈ C n +1 [a, b] , to funkcja y (n +1) (t ) = f (n ) (t , y (t )) jest ograniczona w przedziale [a, b] i
stąd lokalny błąd obcięcia τi = O(hn) dla każdego i = 1, ..., n.
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 13
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 14 z 21
Metody Taylora (12)
Metody Taylora wyższego rzędu
Przykład 7.3.
Rozwiązać stosując metodę Taylora drugiego i czwartego rzędu równanie różniczkowe
y ′ = − y + t + 1,
t ∈ [0,1],
y (0 ) = 1 .
Przyjąć krok całkowania h = 0.1. Rozwiązanie dokładne y(t) = t + e-t.
Rozwiązanie
Tabela
7.1.
Aproksymacja
y ′ = − y + t + 1,
t ∈ [0,1],
rozwiązania
równania
różniczkowego
y (0 ) = 1 za pomocą metody Taylora rzędu pierwszego
(metoda Eulera), drugiego i czwartego.
t
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
Wynik
Metoda Eulera
Metoda Taylora n =2
dokładny
Aproksymacja
Błąd
Aproksymacja
Błąd
1
1
0
1
0
1.004837418
1
-4.837e-3
1.005
1.626e-4
1.0187307531
1.01
-8.731e-3
1.019025
2.942e-4
1.0408182207
1.029
-1.182e-2
1.041218
3.994e-4
1.070320046
1.0561
-1.422e-2
1.070802
4.819e-4
1.1065306597
1.09049
-1.604e-2
1.107076
5.451e-4
1.1488116361
1.131441
-1.737e-2
1.149404
5.919e-4
1.1965853038
1.178297
-1.829e-2
1.19721
6.249e-4
1.2493289641
1.230467
-1.886e-2
1.249975
6.463e-4
1.3065696597
1.28742
-1.915e-2
1.307228
6.579e-4
1.3678794412
1.348678
-1.92e-2
1.368541
6.615e-4
Metoda Taylora n = 4
Aproksymacja
Błąd
1
0
1.0048375
8.196e-8
1.0187309014
1.483e-7
1.040818422
2.013e-7
1.0703202889
2.429e-7
1.1065309344
2.747e-7
1.1488119344
2.983e-7
1.1965856187
3.149e-7
1.2493292897
3.256e-7
1.3065699912
3.315e-7
1.3678797744
3.332e-7
■
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 14
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 15 z 21
Metody Rungego – Kutty (1)
Metody Taylora wymagają obliczenia pochodnych z funkcji f(t, y).
W przypadku metody drugiego rzędu:
w0 = α ,
wi +1 = wi + hT (n ) (t i , wi ), i = 0,1,2, K n − 1,
(7.33)
gdzie
T (n ) (t i , wi ) = f (t i , wi ) +
h
f ′(t i , wi ) .
2
(7.30)
Idea powstania metod z grupy Rungego – Kutty polega na zastąpieniu pochodnej jej
aproksymacją. W przypadku metody drugiego rzędu stosujemy aproksymację w postaci
a1 f (t + α 1 , y + β 1 ) , dla której błąd będzie nie większy niż O(h2).
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 15
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 16 z 21
Metody Rungego – Kutty (2)
Ponieważ:
f ′(t , y ) =
d
∂
∂
f (t , y ) =
f (t , y ) +
f (t , y ) ⋅ y ′(t ) ,
dt
∂t
∂y
(7.31)
h
f ′(t i , wi ) .
2
(7.30)
to wyrażenie
T (n ) (t i , wi ) = f (t i , wi ) +
przedstawić możemy w postaci:
T (n ) (t , y ) = f (t , w) +
h ∂
h ∂
f (t , y ) +
f (t , y ) ⋅ f (t , y ) ,
2 ∂t
2 ∂y
(7.32)
gdyż y ′(t ) = f (t , w) .
Z drugiej strony z rozwinięcia w szereg Taylora:
∂
∂
f (t , y ) + a1 β 1
f (t , y ) +
∂t
∂y
+ a1 ⋅ R1 (t + α 1 , y + β 1 ),
a1 f (t + α 1 , y + β 1 ) = a1 f (t , y ) + a1α 1
(7.33)
gdzie:
R1 (t + α1 , y + β1 ) =
=
α12 ∂ 2
2 ∂t
2
f (ξ ,η ) + α1β1
∂2
β 2 ∂2
f (ξ ,η ) + 1
f (ξ ,η )
∂t∂y
2 ∂y 2
(7.34)
oraz ξ ∈ [t , t + α 1 ] i η ∈ [ y, y + β 1 ] .
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 16
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 17 z 21
Metody Rungego – Kutty (3)
T (n ) (t , y ) = f (t , w) +
h ∂
h ∂
f (t , y ) +
f (t , y ) ⋅ f (t , y ) ,
2 ∂t
2 ∂y
(7.32)
∂
∂
f (t , y ) + a1 β 1
f (t , y ) +
∂t
∂y
+ a1 ⋅ R1 (t + α 1 , y + β 1 ),
(7.33)
a1 f (t + α 1 , y + β 1 ) = a1 f (t , y ) + a1α 1
Współczynniki przy odpowiednich wyrażeniach muszą być sobie równe:
f (t , y ) : a1 = 1 ,
(7.35)
∂
h
f (t , y ) : a1α 1 = ,
2
∂t
(7.36)
∂
h
f (t , y ) : a1 β 1 = f (t , y ) ,
∂y
2
(7.37)
Stąd:
a1 = 1,
h
2
h
β1 = f (t , y ),
2
α1 = ,
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
(7.38)
Strona 17
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 18 z 21
Metody Rungego – Kutty (4)
Metoda Rungego – Kutty drugiego rzędu:
metoda punktu środkowego
Ostatecznie
w0 = α ,
wi +1 = wi + hT (n ) (t i , wi ), i = 0,1,2, K n − 1,
(7.33)
gdzie:
h
h
⎛ h
⎞
⎛ h
⎞
T (2 ) (t , y ) = f ⎜ t + , y + f (t , y )⎟ + R1 ⎜ t + , y + f (t , y )⎟ ,
2
2
⎝ 2
⎠
⎝ 2
⎠
(7.39)
2
2
h
⎛ h
⎞ h ∂
R1 ⎜ t + , y + f (t , y )⎟ =
f (ξ ,η ) +
2
2
⎝ 2
⎠ 8 ∂t
2
h2
∂2
h2
2 ∂
( f (t , y )) 2 f (ξ ,η ).
+
f (t , y )
f (ξ ,η ) +
4
∂t∂y
8
∂y
(7.40)
oraz:
Ostatecznie:
w0 = α ,
h
h
⎛
⎞
wi +1 = wi + h ⋅ f ⎜ t i + , wi + f (t i , wi )⎟.
2
2
⎝
⎠
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 18
(7.41)
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 19 z 21
Metody Rungego – Kutty (5)
W przypadku metody Taylora trzeciego rzędu:
T (3 ) (t , y ) = f (t , y ) +
h
h2
f ′(t , y ) +
f ′′(t , y ) ,
2
6
(7.42)
zastosować będziemy musieli aproksymację postaci:
a1 f (t , y ) + a 2 f (t + α 2 , y + δ 1 f (t , y )) .
(7.43)
Uzyskamy kilka różnych metod z błędem O(h2).
W przypadku zmodyfikowanej metody Eulera przyjmujemy a1 = a2 = ½, α1 = δ2 = h,
a równanie różnicowe w tym przypadku ma postać:
w0 = α ,
h
⋅ [ f (t i , wi ) + f (t i + h, wi + hf (t i , wi ))],
2
i = 0,1,2,K , n − 1.
wi +1 = wi +
(7.44)
Natomiast w przypadku metody Heuna odpowiednie stałe mają wartości a1 = ¼ a2 =
¾, α1 = δ2 = ⅔h, natomiast równanie różnicowe ma postać:
w0 = α ,
wi +1 = wi +
h ⎡
2
2
⎛
⎞⎤
⋅ ⎢ f (t i , wi ) + 3 f ⎜ t i + h, wi + hf (t i , wi )⎟⎥,
4 ⎣
3
3
⎝
⎠⎦
(7.45)
i = 0,1,2,K , n − 1.
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 19
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 20 z 21
Metody Rungego – Kutty (6)
Metoda Rungego – Kutty czwartego rzędu:
w0 = α ,
k1 = h ⋅ f (t i , wi ),
h
1 ⎞
⎛
k 2 = f ⎜ t i + , wi + k1 ⎟,
2
2 ⎠
⎝
h
1 ⎞
⎛
k 3 = f ⎜ t i + , wi + k 2 ⎟,
2 ⎠
2
⎝
k 4 = f (t i + h, wi + k 3 ),
(7.46)
h
⋅ [k1 + 2k 2 + 2k 3 + k 4 ],
6
i = 0,1,2,K , n − 1.
wi +1 = wi +
Lokalny błąd obcięcia tej metody wynosi O(h4) przy założeniu, że rozwiązanie y(t) ma
piątą pochodną ciągłą.
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 20
2009-02-26
Metody Numeryczne i Programowanie
Wykład 6.
Strona 21 z 21
Metody Rungego – Kutty (7)
Przykład 7.4.
y ′ = − y + t + 1,
t ∈ [0,1],
y (0 ) = 1 .
Przyjąć, że przedział [0, 1] podzielony jest na n = 10 podprzedziałów. Porównać uzyskane
rozwiązanie z rozwiązaniem dokładnym: y = t + e − t .
Rozwiązanie
Tabela 7.2. Metoda Rungego – Kutty czwartego rzędu. Wyniki rozwiązania równania
różniczkowego y ′ = − y + t + 1,
t ∈ [0,1],
y (0 ) = 1 .
ti
Rozwiązanie
dokładne
Aproksymacja RK czwartego rzędu
Błąd
0.0
1.000000000
1.0000000000
0
0.1
1.0048374180
1.0048374106
7.41e-9
0.2
1.0187307531
1.0187307437
9.379e-9
0.3
1.0408182207
1.0408182389
1.819e-8
0.4
1.0703200460
1.070320078
3.198e-8
0.5
1.1065306597
1.1065307001
4.042e-8
0.6
1.1488116361
1.1488116837
4.756e-8
0.7
1.1965853038
1.196585419
1.152e-7
0.8
1.2493289641
1.2493297228
7.587e-7
0.9
1.3065696597
1.3065711133
1.454e-6
1.0
1.3678794412
1.3678811241
1.683e-6
■
Mariusz B. Bogacki
Zakład Inżynierii Procesowej
Wydział Technologii Chemicznej PP
Strona 21
2009-02-26