You are on page 1of 7

Proste metody numeryczne rozwiązywania

problemów początkowych dla równań


różniczkowych zwyczajnych
Katedra Informatyki Stosowanej
Kielce, Listopad 2004

1 Metoda Eulera
Dla problemu początkowego

y 0 = f (x, y), y(x0 ) = y0 (1)

metoda Eulera polega na sekwencyjnym obliczeniu wartości y(x) w węzłach


według wzoru
yn+1 = yn + hf (xn , yn ) n = 0, 1, . . . (2)
Przykład
Obliczyć metodą Eulera wartość funkcji y(1) dla problemu początkowego:

y0 = x + y y(0) = 0 (3)

Obliczenia wykonać dla kroku h = 0, 2


Rozwiązanie
Aby znaleźć wartość funkcji y(x) dla x = 1 musimy kolejno obliczyć wartości
funkcji y1 w punkcie x1 = 0, 2, y2 w punkcie x2 = 0, 4, y3 w punkcie x3 = 0, 6,
y4 w punkcie x4 = 0, 8 oraz ostatecznie y5 dla x5 = 1

x0 = 0, 0 y0 =0
x1 = 0, 2 y1 = y0 + 0, 2(x0 + y0 ) = 0 + 0, 2(0 + 0) = 0
x2 = 0, 4 y2 = y1 + 0, 2(x1 + y1 ) = 0 + 0, 2(0, 2 + 0) = 0, 040
x3 = 0, 6 y3 = y2 + 0, 2(x2 + y2 ) = 0, 040 + 0, 2(0, 4 + 0, 040) = 0, 128
x4 = 0, 8 y4 = y3 + 0, 2(x3 + y3 ) = 0, 128 + 0, 2(0, 6 + 0, 128) = 0, 274
x5 = 1, 0 y5 = y4 + 0, 2(x4 + y4 ) = 0, 274 + 0, 2(0, 8 + 0, 274) = 0, 489

1
2 METODA RUNGEGO-KUTTY IV RZĘDU 2

2 Metoda Rungego-Kutty IV rzędu


W tej metodzie problem początkowy (1) rozwiązujemy wykorzystując wzory:
1
yn+1 = yn + (k1 + 2k2 + @k3 + k4 ) n = 0, 1, . . . (4)
6
gdzie:

k1 = hf (xn , yn )
1 1
k2 = hf (xn + h, yn + k1 )
2 2 (5)
1 1
k3 = hf (xn + h, yn + k2 )
2 2
k4 = hf (xn + h, yn + k3 )

Przykład
Obliczyć metodą Rungego-Kutty IV rzędu wartość funkcji y(1) dla problemu
początkowego:
y 0 = x + y y(0) = 0
Obliczenia wykonać dla kroku h = 0, 2
Rozwiązanie
Aby znaleźć wartość funkcji dla x = 1 musimy kolejno obliczyć w wartości
funkcji y1 w punkcie x1 = 0, 2, y2 w punkcie x2 = 0, 4, y3 w punkcie x3 = 0, 6,
y4 w punkcie x4 = 0, 8 oraz ostatecznie y5 dla x5 = 1. Aby móc obliczyć kolej-
ne yn dla każdego xn musimy obliczyć wartość współczynników k1 , k2 , k3 , k4 .
Podstawiając wartość h = 0, 2 oraz y 0 = x + y do (5) otrzymujemy ogólną
postać wzorów na k1 , k2 , k3 , k4 dla naszego zadania:

k1 = 0, 2(xn + yn )
k2 = 0, 2(xn + 0, 1 + yn + 0, 5k1 )
k3 = 0, 2(xn + 0, 1 + yn + 0, 5k2 )
k4 = 0, 2(xn + 0, 2 + yn + k3 )
2 METODA RUNGEGO-KUTTY IV RZĘDU 3

Dla x0 = 0 y0 = 0
Dla x1 = 0, 2

k1 = 0, 2(0 + 0) = 0
k2 = 0, 2(0 + 0, 1 + 0 + 0, 5 · 0) = 0, 02
k3 = 0, 2(0 + 0, 1 + 0 + 0, 5 · 0, 02) = 0, 022
k4 = 0, 2(0 + 0, 2 + 0 + 0, 022) = 0, 0444
1
y1 = y0 + (k1 + 2k2 + 2k3 + k4 )
6
1
= 0 + (0 + 2 · 0, 02 + 2 · 0, 022 + 0, 0444) = 0, 0214
6
Dla x2 = 0, 4

k1 = 0, 2(0, 2 + 0, 0214) = 0, 04428


k2 = 0, 2(0, 2 + 0, 1 + 0, 0214 + 0, 5 · 0, 04428) = 0, 068708
k3 = 0, 2(0, 2 + 0, 1 + 0, 0214 + 0, 5 · 0, 068708) = 0, 071151
k4 = 0, 2(0, 2 + 0, 2 + 0, 0214 + 0, 071151) = 0, 09851
1
y2 = y1 + (k1 + 2k2 + 2k3 + k4 )
6
1
= 0, 0214 + (0, 04428 + 2 · 0, 068708 + 2 · 0, 071151 + 0, 09851) = 0, 091818
6
Dla x3 = 0, 6

k1 = 0, 2(0, 4 + 0, 091818) = 0, 098364


k2 = 0, 2(0, 4 + 0, 1 + 0, 091818 + 0, 5 · 0, 098364) = 0, 1282
k3 = 0, 2(0, 4 + 0, 1 + 0, 091818 + 0, 5 · 0, 1282) = 0, 131184
k4 = 0, 2(0, 4 + 0, 2 + 0, 091818 + 0, 131184) = 0, 1646
1
y3 = y2 + (k1 + 2k2 + 2k3 + k4 )
6
1
= 0, 091818 + (0, 098364 + 2 · 0, 1282 + 2 · 0, 131184 + 0, 1646) = 0, 222107
6
3 METODA RUNGEGO-KUTTY-NYSTROMA IV RZĘDU 4

Dla x4 = 0, 8

k1 = 0, 2(0, 6 + 0, 222107) = 0, 164421


k2 = 0, 2(0, 6 + 0, 1 + 0, 222107 + 0, 5 · 0, 164421) = 0, 200864
k3 = 0, 2(0, 6 + 0, 1 + 0, 222107 + 0, 5 · 0, 200864) = 0, 204508
k4 = 0, 2(0, 6 + 0, 2 + 0, 222107 + 0, 204508) = 0, 245323
1
y3 = y2 + (k1 + 2k2 + 2k3 + k4 )
6
1
= 0, 222107 + (0, 164421 + 2 · 0, 200864 + 2 · 0, 204508 + 0, 245323) = 0, 425521
6
Dla x5 = 1

k1 = 0, 2(0, 8 + 0, 425521) = 0, 245104


k2 = 0, 2(0, 8 + 0, 1 + 0, 425521 + 0, 5 · 0, 245104) = 0, 289615
k3 = 0, 2(0, 8 + 0, 1 + 0, 425521 + 0, 5 · 0, 289615) = 0, 294066
k4 = 0, 2(0, 8 + 0, 2 + 0, 425521 + 0, 294066) = 0, 343917
1
y3 = y2 + (k1 + 2k2 + 2k3 + k4 )
6
1
= 0, 425521 + (0, 245104 + 2 · 0, 289615 + 2 · 0, 294066 + 0, 343917) = 0, 718251
6

3 Metoda Rungego-Kutty-Nystroma IV rzę-


du
Problem początkowy dla równaia różniczkowego II rzędu

y 00 = f (x, y(x), y 0 (x)), y(x0 ) = y0 , y 0 (x0 ) = y00 (6)

rozwiązujemy wykorzytująć wzory:

0 1
yn+1 = yn0 + (k1 + 2k2 + 2k3 + k4 ) (7)
3
1
yn+1 = yn + h(yn0 + (k1 + k2 + k3 )) (8)
3
3 METODA RUNGEGO-KUTTY-NYSTROMA IV RZĘDU 5

gdzie:
1
k1 = hf (xn , yn , yn0 )
2
1 1 1 1
k2 = hf (xn + h, yn + K, yn0 + k1 ) gdzie K = h(yn0 + k1 )
2 2 2 2 (9)
1 1
k3 = hf (xn + h, yn + K, yn0 + k2 )
2 2
1 1
k4 = hf (xn + h, yn + L, yn0 + 2k3 ) gdzie L = h(yn0 + k3 )
2 2
Przykład
Obliczyć metodą Rungego-Kutty-Nystroma wartość funkcji f (1) mając dane:
y 00 = 0, 5(x + y + y 0 + 2), y(0) = 0, y 0 (0) = 0
Obliczenia wykonać dla kroku h = 0, 2
Rozwiązanie
Podstawiając wartość h = 0, 2 oraz y 00 = 0, 5(x+y+y 0 +2) do (9) otrzymujemy
ogólną postać wzorów na k1 , k2 , k3 , k4 dla naszego zadania:
k1 = 0, 05(xn + yn + yn0 + 2)
1 1
k2 = 0, 05(xn + 0, 1 + yn + K + yn0 + k1 + 2) gdzie K = 0, 1(yn0 + k1 )
2 2
k3 = 0, 05(xn + 0, 1 + yn + K + yn0 + k2 + 2)
1
k4 = 0, 05(xn + 0, 2 + yn + L + yn0 + 2k3 + 2) gdzie L = h(yn0 + k3 )
2
Wartości yn oraz yn0 obliczymy ze wzorów (7) i (8)
Dla x0 = 0 y0 = 0 y00 = 0
Dla x1 = 0, 2
k1 = 0, 05(0 + 0 + 0 + 2) = 0, 1
1
K = 0, 1(0 + 0, 1) = 0, 005
2
k2 = 0, 05(0 + 0, 1 + 0 + 0, 005 + 0 + 0, 1 + 2) = 0, 11025
k3 = 0, 05(0 + 0, 1 + 0 + 0, 005 + 0 + 0, 11025 + 2) = 0, 1107625
L = 0, 2(0 + 0, 1107625) = 0, 0221525
k4 = 0, 05(0 + 0, 2 + 0 + 0, 0221525 + 0 + 2 · 0, 1107625 + 2) = 0, 1221839
0 1
yn+1 = 0 + (0, 1 + 2 · 0, 11025 + 2 · 0, 1107625 + 0, 1221839) = 0, 221403
3
1
yn+1 = 0 + 0, 2(0 + (0, 1 + 0, 11025 + 0, 1107625)) = 0, 0214008
3
3 METODA RUNGEGO-KUTTY-NYSTROMA IV RZĘDU 6

Dla x2 = 0, 4

k1 = 0, 05(0, 2 + 0, 0214008 + 0, 221403 + 2) = 0, 1221402


1
K = 0, 1(0, 221403 + 0, 1221402) = 0, 0282473
2
k2 = 0, 05(0, 2 + 0, 1 + 0, 0214008 + 0, 0282473 + 0, 221403 + 0, 1221402 + 2) =
= 0, 1346596
k3 = 0, 05(0, 2 + 0, 1 + 0, 0214008 + 0, 0282473 + 0, 221403 + 0, 1346596 + 2)
= 0, 1352855
L = 0, 2(0, 221403 + 0, 1352855) = 0, 0713377
k4 = 0, 05(0, 2 + 0, 2 + 0, 0214008 + 0, 0713377 + 0, 221403 + 2 · 0, 1352855 + 2) =
= 0, 1492356
0 1
yn+1 = 0, 221403 + (0, 1221402 + 2 · 0, 1346596 + 2 · 0, 1352855 + 0, 1492356) =
3
= 0, 491825
1
yn+1 = 0, 0214008 + 0, 2(0, 221403 + (0, 1221402 + 0, 1346596 + 0, 1352855)) =
3
= 0, 0918204

Dla x3 = 0, 6

k1 = 0, 05(0, 4 + 0, 0918204 + 0, 491825 + 2) = 0, 1491823


1
K = 0, 1(0, 491825 + 0, 1491823) = 0, 0566416
2
k2 = 0, 05(0, 4 + 0, 1 + 0, 0918204 + 0, 0566416 + 0, 491825 + 0, 1491823 + 2) =
= 0, 1644735
k3 = 0, 05(0, 4 + 0, 1 + 0, 0918204 + 0, 0566416 + 0, 491825 + 0, 1644735 + 2) =
= 0, 165238
L = 0, 2(0, 491825 + 0, 165238) = 0, 1314126
k4 = 0, 05(0, 4 + 0, 2 + 0, 0918204 + 0, 1314126 + 0, 491825 + 2 · 0, 165238 + 2) =
= 0, 1822767
0 1
yn+1 = 0, 491825 + (0, 1491823 + 2 · 0, 1644735 + 2 · 0, 165238 + 0, 1822767) =
3
= 0, 822119
1
yn+1 = 0, 0918204 + 0, 2(0, 491825 + (0, 1491823 + 0, 1644735 + 0, 165238)) =
3
= 0, 2221117
3 METODA RUNGEGO-KUTTY-NYSTROMA IV RZĘDU 7

Dla x4 = 0, 8

k1 = 0, 05(0, 6 + 0, 2221117 + 0, 822119 + 2) = 0, 1822115


1
K = 0, 1(0, 822119 + 0, 1822115) = 0, 0913225
2
k2 = 0, 05(0, 6 + 0, 1 + 0, 2221117 + 0, 0913225 + 0, 822119 + 0, 1822115 + 2) =
= 0, 2008882
k3 = 0, 05(0, 6 + 0, 1 + 0, 2221117 + 0, 0913225 + 0, 822119 + 0, 2008882 + 2) =
= 0, 2018221
L = 0, 2(0, 822119 + 0, 2018221) = 0, 2047882
k4 = 0, 05(0, 6 + 0, 2 + 0, 2221117 + 0, 2047882 + 0, 822119 + 2 · 0, 2018221 + 2) =
= 0, 2226332
0 1
yn+1 = 0, 822119 + (0, 1822115 + 2 · 0, 2008882 + 2 · 0, 2018221 + 0, 2226332) =
3
= 1.2255408
1
yn+1 = 0, 2221117 + 0, 2(0, 822119 + (0, 1822115 + 0, 2008882 + 0, 2018221)) =
3
= 0, 4255303

Dla x5 = 1

k1 = 0, 05(0, 8 + 0, 4255303 + 1, 2255408 + 2) = 0, 2225536


1
K = 0, 1(1, 2255408 + 0, 2225536) = 0, 1336818
2
k2 = 0, 05(0, 8 + 0, 1 + 0, 4255303 + 0, 1336818 + 1, 2255408 + 0, 2225536 + 2) =
= 0, 2453653
k3 = 0, 05(0, 8 + 0, 1 + 0, 4255303 + 0, 1336818 + 1, 2255408 + 0, 2225536 + 2) =
= 0, 2465059
L = 0, 2(1, 2255408 + 0, 2465059) = 0, 2944093
k4 = 0, 05(0, 8 + 0, 2 + 0, 4255303 + 0, 2944093 + 1, 2255408 + 2 · 0, 2465059 + 2) =
= 0, 2719246
0 1
yn+1 = 1, 2255408 + (0, 2225536 + 2 · 0, 2453653 + 2 · 0, 2465059 + 0, 2719246) =
3
= 1, 718281
1
yn+1 = 0, 4255303 + 0, 2(1, 2255408 + (0, 2225536 + 0, 2453653 + 0, 2465059)) =
3
= 0, 7182668

You might also like