Wikipedia · einfach zusammengefasst · Stand
Trapez-Methode
Das implizite Trapez-Verfahren ist ein Verfahren zur numerischen Lösung eines Anfangswertproblems. y ′ ( t ) = f ( t , y ( t ) ) , y ( t 0 ) = y 0 …
Inhalt4 Abschnitte
Grundidee und Verfahren
Die implizite Trapez-Methode dient der numerischen Lösung eines Anfangswertproblems
y'(t)=f(t,y(t)),\quad y(t_0)=y_0.
Sie gehört sowohl zu den Runge-Kutta-Verfahren als auch zu den Adams-Moulton-Verfahren. Das Verfahren verwendet die Trapezregel, um das Integral der Differentialgleichung in jedem Zeitschritt zu approximieren. Mit f_n:=f(t_n,y_n) lautet die zentrale Rechenvorschrift
y_{n+1}=y_n+\frac{h}{2}(f_{n+1}+f_n).
Da f_{n+1}=f(t_{n+1},y_{n+1}) vom noch unbekannten Wert y_{n+1} abhängt, ist die Methode implizit: In jedem Schritt muss zunächst eine Gleichung beziehungsweise ein Gleichungssystem für y_{n+1} gelöst werden.
Herleitung aus der Integralgleichung
Das Anfangswertproblem wird zunächst in die äquivalente Integralgleichung umgeformt:
y(t)=y_0+\int_{t_0}^{t}f(s,y(s)),\mathrm{d}s.
Für einen einzelnen Schritt von t_k nach t_{k+1} gilt daher
y(t_{k+1})=y(t_k)+\int_{t_k}^{t_{k+1}}f(s,y(s)),\mathrm{d}s.
Das Integral wird durch die Trapezregel angenähert:
\int_{t_k}^{t_{k+1}}f(s,y(s)),\mathrm{d}s\approx\frac{h}{2}\bigl(f(t_k,y_k)+f(t_{k+1},y_{k+1})\bigr).
Damit ergibt sich
y_{k+1}=y_k+\frac{h}{2}\bigl(f(t_k,y_k)+f(t_{k+1},y_{k+1})\bigr).
Die Methode verbindet also den bekannten Funktionswert am Anfang des Schritts mit dem am Ende des Schritts, der gleichzeitig bestimmt werden muss.
Numerische Lösung des impliziten Systems
Die Gleichung für y_{n+1} ist im Allgemeinen nichtlinear. Zur Lösung kann beispielsweise das quadratisch konvergente Newton-Verfahren eingesetzt werden. Seine Iteration lautet
y_{n+1}^{(k+1)}=y_{n+1}^{(k)}-\left(I-\frac{h}{2}\frac{\partial f_{n+1}^{(k)}}{\partial y_{n+1}^{(k)}}\right)^{-1}\left(y_{n+1}^{(k)}-y_n-\frac{h}{2}(f_{n+1}^{(k)}+f_n)\right).
Dabei bezeichnet k den Iterationsschritt und I die Einheitsmatrix. Praktisch wird in jeder Newton-Iteration ein lineares Gleichungssystem gelöst:
(I-\frac{h}{2}J^{(k)})y_{n+1}^{(k+1)}=-\frac{h}{2}J^{(k)}y_{n+1}^{(k)}+y_n+\frac{h}{2}(f_{n+1}^{(k)}+f_n).
J^{(k)} ist die Jacobi-Matrix
J^{(k)}:=\left(\frac{\partial f}{\partial y}\right)_{n+1}^{(k)}.
Die Newton-Methode ersetzt damit die nichtlineare Berechnung in jedem Iterationsschritt durch ein lineares Gleichungssystem.
Stabilität und Wahl der Schrittweite
Für die Testgleichung y'(t)=\lambda y(t) besitzt die Trapez-Methode die Stabilitätsfunktion
R(z)=\frac{2+z}{2-z},\quad z=h\lambda\in\mathbb{C}.
Für z=i\eta auf der imaginären Achse gilt |R(i\eta)|=1. Deshalb ist die Trapez-Methode A-stabil. Für die Schwingungsgleichung y'=\mathrm{i}\alpha y tritt somit kein Amplitudenfehler auf.
Eine variable Schrittweite kann über den zugelassenen lokalen Diskretisierungsfehler \delta bestimmt werden:
\left|\frac{R(h\lambda)}{\mathrm{e}^{h\lambda}}-1\right|=\delta.
Aus dem Ansatz y_{n+1}=R(h\lambda)y_n folgt erneut
R(h\lambda)=\frac{2+h\lambda}{2-h\lambda}.
Dabei ist \lambda:=\max_j|\lambda_j| der Betrag des betragsmäßig größten Eigenwerts der Jacobi-Matrix, also ihr Spektralradius. Da die numerische Bestimmung der Eigenwerte sehr zeitaufwendig ist, kann für die Schrittweitenberechnung im Allgemeinen die Gesamtnorm
\lambda=N\cdot\max_{i,j}|a_{ij}|
verwendet werden. Sie ist immer größer oder gleich der Spektralnorm. N ist der Rang der Jacobi-Matrix, und a_{ij} sind ihre Elemente.