Algorytm Rungego-Kutty

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Algorytm Rungego-Kutty (metoda Rungego-Kutty) – metoda numeryczna do iteracyjnego rozwiązywania równań różniczkowych zwyczajnych. Stosowana głównie w symulacjach fizycznych. Opracowana około 1900 przez niemieckich matematyków: Carla Rungego oraz Martina Kuttę.

Obecnie nazwą metody Rungego-Kutty określa się rodzinę jawnych i niejawnych metod wielokrokowych, jak również pewne ich modyfikacje. Potocznie metodą Rungego-Kutty, określa się metodę Runge-Kutty 4. rzędu ze współczynnikami podanymi poniżej. Istnieje wiele metod RK, o wielu stopniach, wielu krokach, różnych rzędach, i różniących się między sobą innymi własnościami (jak stabilność, jawność, niejawność, metody osadzone, prędkość działania, itp.). Metoda Rungego-Kutty 4. rzędu jest powszechnie stosowana ze względu na prostotę implementacji, relatywnie proste wzory, dużą szybkość oraz wysoki rząd metody.

Metoda RK 4. rzędu[edytuj | edytuj kod]

Mamy równanie postaci:  y' = f(x, y). Znamy początkową wartość y:  y(x_0) = y_0 i chcemy poznać kolejne wartości y.

Przyjmując dowolne h, będące wielkością kroku całkowania, iteracyjny wzór na y według metody Rungego-Kutty 4. rzędu to:

 y_{n+1} = y_n + {\Delta y_n}
 {\Delta y_n} = {1 \over 6} (k_1 + 2k_2 + 2k_3 + k_4)

gdzie

 k_1 = hf \left( x_n, y_n \right)
 k_2 = hf \left( x_n + {h \over 2}, y_n + {1 \over 2} k_1 \right)
 k_3 = hf \left( x_n + {h \over 2}, y_n + {1 \over 2} k_2 \right)
 k_4 = hf \left( x_n + h, y_n + k_3 \right)

Jak widać, wartość (yn+1) zależy od wartości (yn) i h.

W ten sposób otrzymujemy, podobnie jak w innych iteracyjnych metodach rozwiązywania równań różniczkowych kolejne punkty, które przybliżają rozwiązanie.

Metoda RK 2. rzędu[edytuj | edytuj kod]

Istnieje cała klasa metod RK 2. rzędu, z czego z nazwy wyróżnia się przynajmniej dwie metody.

Jawna metoda RK 2, znana jako metoda punktu pośredniego (ang. midpoint method)

 y_{n+1} = y_n +   k_2\,

oznaczenia takie same.

Inna, zwana metodą Heuna.

 y_{n+1} = y_n + {1 \over 2}\left(k_1+k_2\right)\,

w której pochodna jest obliczana jako średnia arytmetyczna z pochodnych w ostatnim punkcie znanym i kolejnym. Oznaczenia takie same jak poprzednio.

Oba algorytmy prowadzą do metody drugiego rzędu, jednak metoda Heuna jest w ogólności bardziej stabilna.

Metoda Eulera, czyli metoda RK 1. rzędu[edytuj | edytuj kod]

Metoda Eulera jest szczególnym przypadkiem metod Runge-Kutty:

 y_{n+1} = y_n + k_1

Oznaczenia takie same jak poprzednio.

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]