# Mehrschrittverfahren

Mehrschrittverfahren sind Verfahren zur numerischen Lösung von Anfangswertproblemen. Im Gegensatz zu Einschrittverfahren, wie etwa den Runge-Kutta-Verfahren, nutzen Mehrschrittverfahren die Information aus den zuvor bereits errechneten Stützpunkten.

## Theorie

Es sei ein Anfangswertproblem
    $y'(x)=f(x,y(x))$
für $x\in [x_{0},\infty )$ mit einer Anfangsbedingung $y(x_{0})=y_{0}$ gegeben. Ein lineares Mehrschrittverfahren (LMV) erzeugt zu einer gegebenen Schrittweite $h>0$ eine Folge $(y_{n})_{n\in \mathbb {N} }$ von Näherungen zu den Funktionswerten
    $y_{n}\approx y(x_{n})=y(x_{0}+n\,h)$.
Dabei besteht zwischen den Näherungswerten und der Differentialgleichung die lineare Rekursionsgleichung
    $\sum _{j=0}^{m}a_{j}\,y_{n-j}=h\sum _{j=0}^{m}b_{j}\,f(x_{n-j},y_{n-j})$.
Die Koeffizienten $a_{0},\dots ,a_{m}$ sowie $b_{0},\dots ,b_{m}$ bestimmen das Mehrschrittverfahren, dabei gilt $a_{0}=1$.
Man nennt das lineare Mehrschrittverfahren implizit, falls $b_{0}\neq 0$ ist, und explizit, falls $b_{0}=0$ ist. Implizite Verfahren können bei gleicher Länge $m$ der Koeffiziententupel eine um 1 höhere Konsistenzordnung als explizite Verfahren haben. Ihr Nachteil besteht jedoch darin, dass bei der Berechnung von $y_{n+1}$ bereits $f(x_{n+1},y_{n+1})$ benötigt wird. Dies führt zu nichtlinearen Gleichungssystemen. Für explizite Verfahren kann man die lineare Rekursionsgleichung in die explizite Form
    $y_{n+1}=-\sum _{j=0}^{m-1}a_{1+j}\,y_{n-j}+h\sum _{j=0}^{m-1}b_{1+j}\,f(x_{n-j},y_{n-j})$
umstellen.
Zum Start benötigen $m$-Schrittverfahren $m$ Startwerte $y_{0},\dotsc ,y_{m-1}$. Diese werden im Rahmen einer sogenannten Anlaufrechnung durch Anwendung anderer Näherungsverfahren bestimmt. Im einfachsten Fall werden die Startwerte linear extrapoliert
    $y_{k}=y_{0}+k\,h\,f(x_{0},y_{0}),\quad k=1,\dots ,m-1$.
Im Allgemeinen lassen sich die benötigten Startwerte auch durch sukzessive Anwendung von Mehrschrittverfahren mit steigender Schrittzahl gewinnen: Man startet dazu mit einem beliebigen Einschrittverfahren für den ersten Wert $y_{1}$, verwendet dann höchstens ein 2-Schritt-Verfahren für den zweiten Wert $y_{2}$ und berechnet schließlich den Wert $y_{m-1}$ durch ein aus maximal $m-1$ Schritten bestehendes Mehrschrittverfahren.

## Analyse

Ein lineares Mehrschrittverfahren ist konvergent, wenn es konsistent und stabil für die Gleichung $y'(x)=0$ ist (diese Eigenschaft heißt auch 0-Stabilität). Konvergenz besagt, dass durch Verkleinern der Schrittweite $h>0$ die Differenz $|y_{k}-y(x_{k})|$ zwischen Näherungswert und Wert der exakten Lösung für $x_{k}\approx t$ für jedes fixierte $t$ beliebig klein gehalten werden kann.

### Konsistenz

Sei $y(x)$ eine beliebige, in einer Umgebung eines Punktes $x$ definierte und einmal stetig differenzierbare Funktion. Diese erfülle die triviale Differentialgleichung $y'(x)=f(x,y)=y(x)$. Für diese kann der Fehler erster Ordnung des Mehrschrittverfahrens als
    $T_{h}(x)={\frac {1}{h}}\sum _{j=0}^{m}a_{j}\,y(x-j\,h)-\sum _{j=0}^{m}b_{j}\,y'(x-jh)$
bestimmt werden. Man definiert dann:
Ein lineares Mehrschrittverfahren heißt konsistent, falls
    $\lim _{h\to 0}|T_{h}(x)|=0$
für beliebige Wahlen von $x$ und der Funktion $y$. Es heißt konsistent der Ordnung $p$, falls in Landau-Notation
    $|T_{h}(x)|=O(h^{p})$
gilt, das heißt $h^{-p}\,|T_{h}(x)|$ immer nach oben beschränkt ist.
Man prüft dies unter Zuhilfenahme der Taylor-Entwicklung. So ist für eine $p$-fach differenzierbare Differentialgleichung die Lösung $p+1$ mal differenzierbar und es gilt
    $y(x_{k+j})=y(x_{k}+j\,h)=y(x_{k})+jh\,y'(x_{k})+{\frac {(jh)^{2}}{2}}y''(x_{k})+\dots +{\frac {(jh)^{p}}{p!}}\,y^{(p)}(x_{k})+O(h^{p+1})$
wobei $y^{(l)}(x_{k})$ die $l$-te Ableitung an der Stelle $x_{k}$ bezeichnet. Dies führt man für alle im linearen Mehrschrittverfahren auftretenden Terme durch und setzt dies in $T_{h}(x_{k})$ ein. Es ist ausreichend, dies für die Exponentialfunktion und ihre Differentialgleichung zu untersuchen.

### Stabilität

Man definiert zwei sogenannte assoziierte Polynome $\rho ,\sigma$
    $\rho (\lambda )=\sum _{i=0}^{m}a_{i}\,\lambda ^{m-i}$
    $\sigma (\lambda )=\sum _{i=0}^{m}b_{i}\,\lambda ^{m-i}\,.$
Ein lineares Mehrschrittverfahren wird durch diese beiden Polynome vollständig charakterisiert, so dass man anstelle von obiger Schreibweise des linearen Mehrschrittverfahrens auch von einem „LMV ($\rho ,\sigma$)“ spricht.
Sei $\lambda _{0}$ eine Nullstelle von $\rho$. Ein LMV ($\rho ,\sigma$) ist nullstabil, wenn für jede Nullstelle $\lambda _{0}$ gilt:
* sie liegt entweder im Innern des Einheitskreises, $|\lambda _{0}|<1$ oder
* auf dem Rand des Einheitskreises, $|\lambda _{0}|=1$, wobei sie dann eine einfache Nullstelle sein muss. Ein allgemeinerer Fall wird im Artikel Stabilitätsfunktion diskutiert.
Bezüglich der A-Stabilität gilt die Zweite Dahlquist-Barriere, dass ein A-stabiles lineares Mehrschrittverfahren nicht mehr als Ordnung zwei haben kann.

## Beispiele
### Explizite Verfahren

Ein explizites Verfahren bedeutet in diesem Zusammenhang, dass zur Berechnung der Näherungswerte nur Werte herangezogen werden, die zeitlich vor dem zu Berechnenden liegen. Das wohl bekannteste explizite lineare Mehrschrittverfahren ist die $(s+1)$-Schritt-Adams-Bashforth-Methode (nach John Couch Adams und Francis Bashforth). Diese hat die Form:
    $y_{n+1}=y_{n}+h\sum _{j=0}^{s}b_{j}\,f(t_{n-j},y_{n-j})$
mit
    $b_{j}={(-1)^{j} \over j!(s-j)!}\int _{0}^{1}\prod _{i=0,i\neq j}^{s}(u+i)\,\mathrm {d} u,\quad j=0,\ldots ,s.$
z. B.:
    $s=1$
       $y_{n+1}=y_{n}+h\left({3 \over 2}f(t_{n},y_{n})-{1 \over 2}f(t_{n-1},y_{n-1})\right)$
    $s=2$
       $y_{n+1}=y_{n}+h\left({23 \over 12}f(t_{n},y_{n})-{16 \over 12}f(t_{n-1},y_{n-1})+{5 \over 12}f(t_{n-2},y_{n-2})\right)$
usw.

### Implizite Verfahren

Bei impliziten Verfahren wird zur Berechnung auch der zu berechnende Wert selbst benutzt. Im Beispiel taucht so auf beiden Seiten der Gleichung $y_{n+1}$ auf. Eine bekannte Klasse von impliziten Mehrschrittverfahren sind die Adams-Moulton-Verfahren (nach Forest Ray Moulton und John Couch Adams). Diese haben die Form:
    $y_{n+1}=y_{n}+h\sum _{j=-1}^{s-1}b_{j}f(t_{n-j},y_{n-j}),\quad 0\leq s\leq n$
mit
    $b_{j}={(-1)^{j+1} \over (j+1)!(s-j-1)!}\int _{0}^{1}\prod _{i=-1,i\neq j}^{s-1}(u+i)\,\mathrm {d} u,\quad j=-1,0,\ldots ,s-1$
z. B.:
    $s=2$
       $y_{n+1}=y_{n}+h\left({1 \over 12}{\Big5f(t_{n+1},y_{n+1})+8f(t_{n},y_{n})-f(t_{n-1},y_{n-1}){\Big )}\right)$
Darüber hinaus sind insbesondere die BDF-Verfahren für steife Anfangswertprobleme im Einsatz, da diese bessere Stabilitätseigenschaften haben. BDF-2 ist A-stabil, die weiteren noch $A(\alpha )$-stabil, ab BDF-7 allerdings instabil.

## Praxis
### Startwerte

Oftmals hat man es in der Praxis mit Problemen der Art
    $y'(x)=f\left(x,y(x)\right),\quad y(0)=y_{0}$
zu tun. Hier fehlt es an Startwerten. Diese werden zunächst durch Einschrittverfahren (z. B. das klassische Runge-Kutta-Verfahren) gewonnen.

### Prädiktor-Korrektor-Methode

Mit dem Gedanken, die im Vergleich um 1 höhere Konsistenzordnung der impliziten linearen Mehrschrittverfahren zu nutzen, umgeht man das Lösen der nichtlinearen Gleichungen durch die sog. Prädiktor-Korrektor-Methode. Es wird der in der impliziten Methode benötigte Wert für $y_{n+1}$ durch eine explizite Methode berechnet, wonach durch Iteration der Wert für $y_{n+1}$ zu verbessern versucht wird. Dazu gibt es verschiedene Verfahren, die geläufigsten sind:

#### P(EC)$^m$E

Beim $P(EC)^{m}E$ (P = predict, E = evaluate, C = correct) wird der durch das explizite Prädiktorverfahren gewonnene Wert $y_{n+1,{\text{alt}}}$ für $y_{n+1}$ wieder in das implizite Korrektorverfahren eingesetzt, wodurch man einen neuen Wert für $y_{n+1}$, nämlich $y_{n+1,{\text{neu}}}$ erhält. Dies wird so lange iteriert, bis $|y_{n+1,{\text{neu}}}-y_{n+1,{\text{alt}}}|$ kleiner als eine festgelegte Fehlertoleranz ist, oder $m$-mal iteriert wurde.