Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Das explizite und das implizite Euler-Verfahren setzen die naheliegende Idee um, den Ableitung yy' durch einen Differenzenquotient auf einen äquidistanten Gitter zu ersetzen (vgl. numerische Differentiation). Damit gehören sie zu den einfachsten Verfahren für das numerische Lösen von gewöhnlichen Differentialgleichungen und Systemen von Differentialgleichungen.

Das explizite Euler-Verfahren ist praktisch kaum relevant, da die Lösungen zu ungenau sind. Das implizite Euler-Verfahren ist hingegen praktisch einsetzbar.

6.5.1Explizites Euler-Verfahren

Führen das Verfahren zunächst für eine einzelne Gleichung

y=f(x,y),y(x0)=y0y'=f(x,y),\qquad y(x_0)=y_0

einschließlich Anfangswert ein.

6.5.1.1Formulierung

Wählen im Intervall [x0,)[x_0,\infty) ein äquidistantes Gitter mit Stützstellenabstand h>0h>0:

xk:=x0+kh,k=0,1,2,.x_k:=x_0+k\,h,\qquad k=0,1,2,\ldots.

Für k=0,1,2,k=0,1,2,\ldots können damit y(xk)y'(x_k) durch den üblichen Vorwärtsdifferenzenquotient ersetzen und erhalten damit für die Differentialgleichung an den Stellen x0,x1,x2,x_0,x_1,x_2,\ldots:

y(xk+1)y(xk)h=f(xk,y(xk)).\frac{y(x_{k+1})-y(x_k)}{h}=f(x_k,y(x_k)).

Mit

yk:=y(xk),k=1,2,,y_{k}:=y(x_k),\qquad k=1,2,\ldots,

liefert Umstellen nach y(xk+1)y(x_{k+1}) die Iterationsvorschrift für das explizite Euler-Verfahren:

yk+1=yk+hf(xk,yk),y_{k+1}=y_k+h\,f(x_k,y_k),

wobei y0y_0 durch die Anfangsbedingung y(x0)=y0y(x_0)=y_0 der Differentialgleichung gegeben ist.

Dieses Verfahren folgt ausgehend vom Punkt (x0,y0)(x_0,y_0) schrittweise dem Richtungsfeld (IDV 630).

6.5.1.2Eigenschaften

Das explizite Euler-Verfahren liefert nur für kleine Schrittweiten hh und auch nur für wenige Schritte brauchbare Lösungen. Je größer hh ist oder je mehr Schritte ausgeführt werden, desto größer wird die Differenz zwischen exakter und numerisch berechneter Lösung. Man kann zeigen, dass stets

y(xk)ykc1h(ec2hk1)|y(x_k)-y_k|\leq c_1\,h\,\bigl(\rme^{c_2\,h\,k}-1\bigr)

gilt mit Konstanten c1,c2>0c_1,c_2>0 die nur von ff abhängen. Diese Abschätzung liefert zwei Erkenntnisse:

Das Abdriften kann extreme Züge annehmen bis hin zur völligen Unbrauchbarkeit der Ergebnisse.

6.5.1.3Systeme

Für Systeme

y1=f1(x,y1,,yn),yn=fn(x,y1,,yn).{\begin{align} y_1'&=f_1(x,y_1,\ldots,y_n),\\ &\vdots\\ y_n'&=f_n(x,y_1,\ldots,y_n).\\ \end{align}}

von Differentialgleichungen mit Anfangswerten

y1(x0)=y1,0,,yn(x0)=yn,0y_1(x_0)=y_{1,0},\quad\ldots,\quad y_n(x_0)=y_{n,0}

kann das explizite Euler-Verfahren auf jede Gleichung angewendet werden. Man erhält die Iterationsvorschrift

[y1,k+1yn,k+1]=[y1,kyn,k]+h[f1(xk,y1,k,,yn,k)fn(xk,y1,k,,yn,k)]{\begin{bmatrix}y_{1,k+1}\\\vdots\\y_{n,k+1}\end{bmatrix}} ={\begin{bmatrix}y_{1,k}\\\vdots\\y_{n,k}\end{bmatrix}} +h\,{\begin{bmatrix}f_1(x_k,y_{1,k},\ldots,y_{n,k})\\\vdots\\f_n(x_k,y_{1,k},\ldots,y_{n,k})\end{bmatrix}}

für k=1,2,k=1,2,\ldots.

Gleichungen höherer Ordnung können stets als Systeme erster Ordnung geschrieben werden, sodass das explizite Euler-Verfahren auch für Gleichungen höherer Ordnung einsetzbar ist.

6.5.2Implizites Euler-Verfahren

6.5.2.1Formulierung

Nutzt man statt Vorwärtsdifferenzen Rückwärtsdifferenzen, so erhält man

y(xk+1)y(xk)h=f(xk+1,y(xk+1)),k=0,1,2,\frac{y(x_{k+1})-y(x_k)}{h}=f(x_{k+1},y(x_{k+1})),\quad k=0,1,2,\ldots

aus der Differentialgleichung; also den Zusammenhang

yk+1=yk+hf(xk+1,yk+1).y_{k+1}=y_k+h\,f(x_{k+1},y_{k+1}).

Zur Berechnung von yk+1y_{k+1} aus yky_k ist somit ein (nichtlineares) Gleichungssystem zu lösen, da die gesuchte Größe yk+1y_{k+1} nur implizit durch eine Gleichung beschrieben wird.

Das implizite Euler-Verfahren wählt den Wert yk+1y_{k+1} gerade so, dass man bei einem Schritt entgegen des Richtungsfeldes der Differentialgleichung gerade den vorhergehenden Punkt (xk,yk)(x_k,y_k) erreicht (IDV 635).

6.5.2.2Eigenschaften

Beim Fehlerverhalten des impliziten Euler-Verfahrens gelten grundsätzlich die gleichen Aussagen wie beim expliziten Euler-Verfahren. Allerdings sind die Situationen, in den des exponentielle Fehlerwachstum tatsächlich auftritt deutlich seltener. Diese Situationen kann man recht konkret angeben, was wir hier aber nicht tun.

Der Preis für das bessere Fehlerverhalten ist die Notwendigkeit, in jedem Schritt eine nichtlineare Gleichung zu Lösen. Da allerdings mit dem vorhergehenden Funktionswert yky_k ein guter Startwert zur Verfügung steht, sind meist nur sehr wenige Newton-Iterationen nötig.

6.5.2.3Systeme

Analog zum expliziten Euler-Verfahren kann auch das implizite Euler-Verfahren zum Lösen von Differentialgleichungssystemen (und damit von Gleichungen höherer Ordnung) eingesetzt werden. In jedem Schritt ist dann ein nichtlineares Gleichungssystem zu lösen.