Numerische Integration von Differentialgleichungen 1. Ordnung

Das Anfangswertproblem, beschrieben durch eine Differentialgleichung 1. Ordnung

y(t) = f(t,y(t)) für t0 ≤ t ≤ tEnd und y(t0) gegeben,

wird numerisch mit verschiedenen expliziten Einschritt-Verfahren gelöst, d.h., es wird y(t) näherungsweise bestimmt.
Die ermittelten Lösungen werden grafisch und in Form einer Tabelle ausgegeben.

Sollte die Differentialgleichung in anderer Form gegeben sein, muss man sie erst einmal durch Umstellen auf die angegebene Form bringen,
d.h. nach der 1. Ableitung y auflösen. Das Programm erwartet dann als Eingabe die rechte Seite und die Anfangsbedingung.

Das Programm verwendet t als unabhängige Variable, weil typische Anwendungen bei Anfangswertproblemen
die Zeit als unabhängige Variable haben. Hat man also ein Differentialgleichung mit x als unabhängiger Variablen, muss man alle x durch t ersetzen.

Das jeweils verwendete Verfahren und die gewählte Schrittweite Δt der Integration bestimmen maßgeblich die Güte der Näherungslösung.
Für alle Verfahren ist der Wert Δt auch die Schrittweite für die grafische Ausgabe.
Das gilt auch für das Runge-Kutta-Verfahren mit automatischer Schrittweitensteuerung. Intern wird hier aber mit problemangepasster Schrittweite gerechnet.





Differenzenquotient

Man kann die 1. Ableitung einer Funktion y=y(x) an einer bestimmten Stelle x0
y'(x0) = dy/dx(x0)
näherungsweise errechnen, indem man den Differentialquotienten dy/dx
durch einen Differenzenquotienten Δy/Δx ersetzt.

Der Differenzenquotient kann dabei linksseitig, rechtsseitig oder zentral berechnet werden.
rechtsseitig:
Δy/Δx = (y(x0+h) - y(x0))/h
linksseitig:
Δy/Δx = (y(x0) - y(x0-h))/h
zentral:
Δy/Δx = (y(x0+h/2) - y(x0-h/2))/h

Beispiel:
Die 1. Ableitung der Funktion y(x) = x2 ist 2·x.
an der Stelle x0=2 gilt somit:
dy/dx(x0) = 2·2 = 4.

rechtsseitiger Differenzenquotient mit h=0.1:
Δy/Δx = (y(x0+h) - y(x0))/h = ((2+0.1)2 - 22)/0.1 = (4.41 - 4)/0.1 = 4.1
linkssseitiger Differenzenquotient mit h=0.1:
Δy/Δx = (y(x0) - y(x0-h))/h = (22 - (2-0.1)2)/0.1 = (4 - 3.61)/0.1 = 3.9
zentraler Differenzenquotient mit h=0.2:
Δy/Δx = (y(x0+h/2) - y(x0-h/2))/h = ((2+0.1)2 - (2-0.1)2)/0.2 = (4.41 - 3.61)/0.2 = 4.0

Euler-Verfahren

Beim Euler-Verfahren für die Differentialgleichung
y'(x) = f(x,y(x))
wird der Differentialquotient y'(x) durch den rechtsseitigen Differenzenquotienten ersetzt:
(y(x0+h) - y(x0))/h = f(x0, y(x0)).
Aufgelöst nach y(x0+h):
y(x0+h) = y(x0) + h·f(x0, y(x0)).
Für eine äquidistante Folge von x-Werten
x0, x1=x0+h, x2=x0+2h, x3=x0+3h, ...
gibt das dann:
y(x1) = y(x0) + h·f(x0, y(x0))
y(x2) = y(x1) + h·f(x1, y(x1))
y(x3) = y(x2) + h·f(x2, y(x2))
...

Wenn die Funktion f(x,y(x)) und ein Anfangswert y(x0) gegeben sind,
lassen sich somit iterativ alle folgenden y-Werte an den äquidistanten Stützstellen xi bestimmen.
Die Folge dieser y-Werte ist dann die Näherungslösung für die Differentialgleichung.
Diese Näherungslösung wird in der Regel umso besser, je dichter die zugehörigen x-Werte liegen.


weitere JavaScript-Programme