Runge-Kutta 4. Ordnung für y' = f(x,y,z;a,b), z' = g(x,y,z;a,b)
Autor: K. Rottbrand ©
Stand: 28 NOV 2005
Beschreibung:
Dieses JavaScript dient der numerischen Lösung des Systems gewöhnlicher Differentialgleichungen
y'=f(x,y,z;a,b), z'=g(x,y,z;a,b), wobei x, y=y(x), z=z(x) die Variablen und a, b Parameter sind. Ausgehend von einem
Startwert (x0,y0,z0) und einer vorgegebenen Schrittweite h wird bis
hin zu einem Endwert xf extrapoliert. Dabei wird keine Schrittweitenanpassung
vorgenommen. Leider ist der Rechenaufwand hoch. Deshalb sollte man nur kleine x-Intervalle
wählen. Der Algorithmus ist aus dem STÖCKER Taschenbuch (Harri Deutsch Thun) 21993, S. 580/581 ff. entnommen, bzw. nach ABRAMOWITZ und STEGUN no. 25.5.18 aufgebaut.
Beispiel: y'=xy, z'=xz
Der Anfangswert (x0,y0,z0)=(2,1,1) führt auf die exakte Lösung
y=exp(-2+x*x/2)=z. Die Differentialgleichungen sind nicht in diesem Fall nicht gekoppelt. Das Runge-Kutta-Verfahren liefert bei einer Schrittweite h=0.1
y(2.3)=1.90596=z(2.3), was sehr gut mit dem 'exakten' Wert übereinstimmt. Man erhält weiter y(2.5)=3.08=z(2.5), was widerum sehr
genau ist.
Hinweis: y'' + A(x,y)y' + B(x,y)y = h(x,y) [DGL 2.Ordnung für y(x)]
Das zugehörige System lautet
y'=z [=f(x,y,z)]
z'=h(x,y)-y*B(x,y)-z*A(x,y) [=g(x,y,z)]
mit den Startwerten: x=x0, y=y0, z = y'0.
Beispiel: y'' + y = 0, y(0)=-1=y0, y'(0)=1=z0
Man erhält das System
y'=z
z'=-y
Für die Schrittweite h=0.1 ergibt das RK-Verfahren die Werte
y(0.3)=-0.6598165803333131, z(0.3)=1.2508565053946383. Die exakte analytische Lösung ist
y(x)=sin(x)-cos(x). Dafür ist y(0.3)=-0.6598162824643. Die Übereinstimmung ist erstaunlich gut.
Beispiel: Ideale Geschossbahn
Die Bewegungsgleichungen lauten ma=-mg+kvc:
X''(t)=-a X'c, a=k/m [X(0)=0, X'(0)=v0 cosα]
Y''(t)=a Y'c -g
[Y(0)=h, Y'(0)=v0 sinα]
Die Systeme lauten
X'=Z, [X0=0]
Z'=-a Zc, [Z0=v0 cosα]
Y'=U, [Y0=h]
U'=a Uc-g, [U0=v0 sinα]
Die Konstanten sind k=1/2*&rho*A*cw: Dichte ρ, Querschnitt A, cw Luftwiderstand, Erdbeschleunigung g, Reibungskraftexponent c (=0,1,2) ist größer 2 bei
Schallgeschwindigkeit, Masse m.