hm2-cheat-sheet

Runge-Kutta Verfahren

Klassisches vierstufiges Runge-Kutta Verfahren

image

Das klassische vierstufige Runge-Kutta Verfahren hat die Konsistenz- und Konvergenzordnung p = 4.

Allgemeines s-stufiges Runge-Kutta Verfahren

Die Koeffizienten notiert man dabei meist in der Form:

Dabei kann man die Euler-Verfahren und das Mittelpunkt-Verfahren auf folgende Schemata zurückführen:

image

Erweiterung auf Systeme von Differentialgleichungen

Zurückführen einer DGL k-ter Ordnung auf k DGL 1. Ordnung

Durch Umformen können auch Differentialgleichungen höherer Ordnung gelöst werden. Dazu geht man wie folgt vor:

Für eine Differentialgleichung k-ter Ordnung:

  1. Nach der höchsten vorkommenden (k-ten) Ableitung der unbekannten Funktion auflösen
  2. Hilfsfunktionen z_i der unbekannten Funktion und deren Ableitungen einführen, bis zu z_k(x) = y^(k-1)(x)
  3. Das System erster Ordnung durch Ersetzen der höheren Ableitungen durch die neuen Funktionen aufstellen
  4. Differentialgleichung in vektorieller Form aufschreiben

Beispiel

Lösen eines Systems von k Differentialgleichungen 1. Ordnung

image image

Beispiel

Ausgehend vom oberen Beispiel:

image

Stabilität

In gewissen Situationen kann es vorkommen, dass der numerische Fehler unbegrenzt grösser werden kann, unabhängig von der Schrittweite h. Man spricht dann von einer instabilen Lösung.

image

Python-Funktionen für das Lösen von gewöhnlichen DGL

Das Scipy Paket stellt eine Funktion für das Lösen mittels Runge-Kutta Verfahren bereit:

from scipy.integrate import solve_ivp


def exponential_decay(_t, y):
    return -0.5 * y


range = [0, 10]
initial_state = [2, 4, 8]
solution = solve_ivp(exponential_decay, range, initial_state)