Das klassische vierstufige Runge-Kutta Verfahren hat die Konsistenz- und Konvergenzordnung p = 4
.
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:
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:
z_i
der unbekannten Funktion und deren Ableitungen einführen, bis zu z_k(x) = y^(k-1)(x)
Ausgehend vom oberen Beispiel:
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.
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)