Ein numerisches Verfahren

Um Lösungen zu Differentialgleichungen zu finden, Trajektorien und zeitabhängige Graphen zu plotten, sind wir auf die Hilfe von leistungsstarken Computern und Software angewiesen.

Es gibt zahlreiche numerische Verfahren zur Bestimmung von Ableitungen, Integralen, Summen etc. Wir wollen uns im Folgenden einen Auszug aus der Vielfalt der Verfahren anschauen und kurz deren Genauigkeit abschätzen.

Wir betrachten eine Differentialgleichung der Form

y=f(t,y)y'=f(t,y)

mit Startwert y0=y(t0)y_0 = y(t_0) und wenden darauf die folgenden Verfahren an, um y(t)y(t) über einem Zeitintervall t0<t<Tt_0 < t < T numerisch abzuschätzen.

Wir beginnen mit einer simplen Methode, dem Euler-Verfahren, um die grundsätzliche Idee eines Näherungsverfahren zu erfassen und besprechen dann eine weit verbreitete Methode, das Runge-Kutta-Verfahren.

Das Euler-Verfahren

Klar ist, dass ein Computer nicht jeden Punkt einer Kurve berechnen kann, weil es ja unendlich viele davon gibt. Also beschränkt sich ein Näherungsverfahren immer auf eine diskrete Teilmenge. Euler's Methode beschreibt eine sehr einfache Annäherung an die Lösung einer Differentialgleichung für eine endliche Anzahl von Punkten. Die Teilschritte sind

tn=t0+nh,t_n = t_0+nh,

wobei h=Tt0Nh = \frac{T-t_0}{N} die Schrittweite ist.

y1y0+hf(t0,y0)y_1 \approx y_0+hf(t_0,y_0)

mit

y=f(t0,y0)y1y0h=y1y0t1t0.y' = f(t_0,y_0) \approx \frac{y_1-y_0}{h} = \frac{y_1-y_0}{t_1-t_0}.

Allgemein beschrieben hat man das rekursive Schema

yn+1=yn+hf(tn,yn)y_{n+1} = y_n+hf(t_n,y_n)

mit

tn+1=tn+ht_{n+1} = t_n+h

für 0nN10 \leq n \leq N-1.

Das Runge-Kutta-Verfahren

One-step Algorithmen, die durchschnittliche Steigungen einer Funktion f(t,y)f(t,y) in zwei oder mehreren Punkten über einem Intervall [tn1,tn][t_{n-1},t_n] verwenden um yny_n zu berechnen, heissen Runge-Kutta-Methoden.

Eine weit verbreitete Methode ist das Runge-Kutta-Verfahren vierter Ordnung (RK4). Es verwendet gewichtete durchschnittliche Steigungen um die Mittel- und Endpunkte von Teilintervallen. Algorithmisch formuliert

yn+1=yn+h6(k1+2k2+2k3+k4)y_{n+1} = y_n+\frac{h}{6}(k_1+2k_2+2k_3+k_4)

mit

k1=f(tn,yn)k2=f(tn+h2,yn+h2k1)k3=f(tn+h2,yn+h2k2)k4=f(tn+h,yn+hk3)\begin{align*} k_1 &= f(t_n,y_n)\\ k_2 &= f(t_n+\frac{h}{2},y_n+\frac{h}{2}k_1)\\ k_3 &= f(t_n+\frac{h}{2},y_n+\frac{h}{2}k_2)\\ k_4 &= f(t_n+h,y_n+hk_3) \end{align*}
Beweisskizze von Runge-Kutta
Theorem 1: Runge-Kutta-Verfahren (RK4)

Das Ziel ist, die Formeln für das RK4-Verfahren

yn+1=yn+h6(k1+2k2+2k3+k4)y_{n+1} = y_n+\frac{h}{6}(k_1+2k_2+2k_3+k_4)

mit

k1=f(tn,yn)k2=f(tn+h2,yn+h2k1)k3=f(tn+h2,yn+h2k2)k4=f(tn+h,yn+hk3)\begin{align*} k_1 &= f(t_n,y_n)\\ k_2 &= f(t_n+\frac{h}{2},y_n+\frac{h}{2}k_1)\\ k_3 &= f(t_n+\frac{h}{2},y_n+\frac{h}{2}k_2)\\ k_4 &= f(t_n+h,y_n+hk_3) \end{align*}

so herzuleiten, dass der Fehler von der Ordnung O(h5)O(h^5) ist. Die Idee ist, die Taylor-Entwicklung der exakten Lösung mit der Taylor-Entwicklung des RK4-Schritts zu vergleichen und die Koeffizienten so zu wählen, dass sie bis zum Term h4h^4 übereinstimmen.

Proof

Die Herleitung ist algebraisch sehr intensiv. Wir skizzieren hier die wesentlichen Schritte.

Schritt 1: Die "wahre" Lösung – Taylor-Entwicklung von y(tn+1)y(t_{n+1})

Die exakte Lösung y(t)y(t) der Differentialgleichung y=f(t,y)y' = f(t, y) lässt sich um den Punkt tnt_n in eine Taylor-Reihe entwickeln: y(tn+h)=y(tn)+hy(tn)+h22y(tn)+h36y(tn)+h424y(tn)+O(h5)y(t_n+h) = y(t_n) + h y'(t_n) + \frac{h^2}{2} y''(t_n) + \frac{h^3}{6} y'''(t_n) + \frac{h^4}{24} y''''(t_n) + O(h^5) Die Ableitungen von yy müssen wir durch die Funktion ff und ihre partiellen Ableitungen ausdrücken. Dazu verwenden wir die Kettenregel (wir schreiben ff für f(tn,y(tn))f(t_n, y(t_n)), ftf_t für ft\frac{\partial f}{\partial t}, fyf_y für fy\frac{\partial f}{\partial y} usw.):

  • y=fy' = f
  • y=ddtf(t,y(t))=ft+fyy=ft+fyfy'' = \frac{d}{dt}f(t, y(t)) = f_t + f_y \cdot y' = f_t + f_y f
  • y=ftt+2ftyf+fyyf2+fy(ft+fyf)y''' = f_{tt} + 2f_{ty}f + f_{yy}f^2 + f_y(f_t + f_y f)
  • y=y'''' = \dots (wird extrem kompliziert)

Setzt man dies in die Taylor-Reihe ein, erhält man die exakte Lösung, ausgedrückt durch ff und ihre Ableitungen. Dies ist unser "Goldstandard", den wir approximieren wollen.

Schritt 2: Die numerische Lösung – Taylor-Entwicklung von yn+1y_{n+1}

Nun müssen wir den RK4-Ausdruck yn+1=yn+hΦy_{n+1} = y_n + h \cdot \Phi ebenfalls als Potenzreihe in hh entwickeln. Der Term Φ=16(k1+2k2+2k3+k4)\Phi = \frac{1}{6}(k_1+2k_2+2k_3+k_4) ist die "effektive Steigung". Dazu müssen wir jeden Term kik_i als mehrdimensionale Taylor-Reihe um den Punkt (tn,yn)(t_n, y_n) entwickeln.

  • k1=f(tn,yn)=fk_1 = f(t_n, y_n) = f (Das ist einfach.)

  • Entwicklung von k2k_2: k2=f(tn+h2,yn+h2k1)=f(tn+h2,yn+h2f)k_2 = f(t_n + \frac{h}{2}, y_n + \frac{h}{2}k_1) = f(t_n + \frac{h}{2}, y_n + \frac{h}{2}f) Die Taylor-Entwicklung einer Funktion f(t0+Δt,y0+Δy)f(t_0+\Delta t, y_0+\Delta y) lautet: f(t0+Δt,y0+Δy)f(t0,y0)+Δtft+Δyfy+f(t_0+\Delta t, y_0+\Delta y) \approx f(t_0, y_0) + \Delta t \cdot f_t + \Delta y \cdot f_y + \dots Mit Δt=h/2\Delta t = h/2 und Δy=hf/2\Delta y = hf/2 erhalten wir: k2f+h2ft+h2ffy+h28ftt+h24ftyf+h28fyyf2+O(h3)k_2 \approx f + \frac{h}{2}f_t + \frac{h}{2}f \cdot f_y + \frac{h^2}{8}f_{tt} + \frac{h^2}{4}f_{ty}f + \frac{h^2}{8}f_{yy}f^2 + O(h^3)

  • Entwicklung von k3k_3 und k4k_4: Dies geschieht analog. Man entwickelt k3k_3 und muss dabei die bereits entwickelte Potenzreihe für k2k_2 einsetzen. Dies führt zu sehr langen und komplizierten Ausdrücken.

Schritt 3: Koeffizientenvergleich

Nun setzen wir die entwickelten Reihen für k1,k2,k3,k4k_1, k_2, k_3, k_4 in die Hauptformel ein:

yn+1=yn+h6(k1+2k2+2k3+k4)y_{n+1} = y_n + \frac{h}{6}(k_1 + 2k_2 + 2k_3 + k_4)

Anschliessend sortiert man den gesamten Ausdruck nach Potenzen von hh:

yn+1=yn+h()+h2()+h3()+h4()+O(h5)y_{n+1} = y_n + h(\dots) + h^2(\dots) + h^3(\dots) + h^4(\dots) + O(h^5)

Der entscheidende Schritt ist nun der Koeffizientenvergleich: Man vergleicht die Terme in den Klammern mit den Koeffizienten der "wahren" Taylor-Reihe aus Schritt 1.

  • Ordnung h1h^1: Der Koeffizient von hh im RK4 ist 16(f+2f+2f+f)=f\frac{1}{6}(f + 2f + 2f + f) = f. Der Koeffizient von hh in der wahren Lösung ist y=fy' = f. Stimmt überein!

  • Ordnung h2h^2: Nach dem Einsetzen und Sortieren findet man, dass der Koeffizient von h2h^2 im RK4-Verfahren 12(ft+fyf)\frac{1}{2}(f_t + f_y f) ist. Der Koeffizient von h2h^2 in der wahren Lösung ist 12y=12(ft+fyf)\frac{1}{2}y'' = \frac{1}{2}(f_t + f_y f). Stimmt überein!

  • Ordnung h3h^3 und h4h^4: Die Magie des RK4-Verfahrens liegt darin, dass die Gewichte (16,26,26,16)(\frac{1}{6}, \frac{2}{6}, \frac{2}{6}, \frac{1}{6}) und die Stützpunkte (0,12,12,1)(0, \frac{1}{2}, \frac{1}{2}, 1) genau so gewählt sind, dass sich die extrem komplizierten Terme für die dritte und vierte Ordnung ebenfalls exakt aufheben und mit denen der wahren Taylor-Entwicklung übereinstimmen. Dies führt zu einem System von nichtlinearen Gleichungen für die Koeffizienten, und die "klassische" RK4-Formel ist die eleganteste und am weitesten verbreitete Lösung dieses Systems.

Da die Entwicklungen bis zum Term h4h^4 übereinstimmen, ist der erste Term, in dem sie sich unterscheiden, der Term der Ordnung h5h^5. Der lokale Fehler eines Schrittes ist also O(h5)O(h^5).

Simpson-Regel
Theorem 2: Simpson-Regel für ein Intervall

Das Integral einer Funktion f(x)f(x) über das Intervall [a,b][a, b] kann durch die Fläche unter einer Parabel approximiert werden, die durch die drei Punkte (a,f(a))(a, f(a)), (a+b2,f(a+b2))(\frac{a+b}{2}, f(\frac{a+b}{2})) und (b,f(b))(b, f(b)) verläuft. Die Formel lautet:

abf(x)dxba6[f(a)+4f(a+b2)+f(b)]\int_a^b f(x)dx \approx \frac{b-a}{6} \left[ f(a) + 4f\left(\frac{a+b}{2}\right) + f(b) \right]
Proof

Die Strategie des Beweises ist wie folgt:

  1. Wir ersetzen die komplizierte Funktion f(x)f(x) durch eine einfache Parabel P(x)P(x), die durch die drei gegebenen Punkte verläuft.
  2. Wir integrieren diese Parabel exakt.
  3. Um die Algebra massiv zu vereinfachen, verschieben wir das Koordinatensystem so, dass das Intervall symmetrisch um den Ursprung liegt.

Schritt 1: Vereinfachung des Intervalls

Anstatt über das allgemeine Intervall [a,b][a, b] zu integrieren, betrachten wir das symmetrische Intervall [h,h][-h, h]. Dies vereinfacht die Berechnungen erheblich, ohne die Allgemeinheit zu verlieren.

  • Wir setzen den Mittelpunkt des Intervalls in den Ursprung: x=0x=0.
  • Die Intervallgrenzen sind dann h-h und hh. Die Breite des Intervalls ist 2h2h.
  • Die drei Stützpunkte sind:
    • x0=hx_0 = -h mit Funktionswert y0=f(h)y_0 = f(-h)
    • x1=0x_1 = 0 mit Funktionswert y1=f(0)y_1 = f(0)
    • x2=hx_2 = h mit Funktionswert y2=f(h)y_2 = f(h) (Am Ende setzen wir h=(ba)/2h = (b-a)/2, um die allgemeine Formel zu erhalten.)

Schritt 2: Aufstellen der Parabelgleichung

Eine allgemeine Parabel hat die Form P(x)=Ax2+Bx+CP(x) = Ax^2 + Bx + C. Wir müssen die Koeffizienten A,B,CA, B, C so bestimmen, dass die Parabel durch unsere drei Punkte (x0,y0),(x1,y1),(x2,y2)(x_0, y_0), (x_1, y_1), (x_2, y_2) geht.

  • Für (x1,y1)=(0,y1)(x_1, y_1) = (0, y_1): P(0)=A(0)2+B(0)+C=y1    C=y1P(0) = A(0)^2 + B(0) + C = y_1 \implies \mathbf{C = y_1}.

  • Für (x2,y2)=(h,y2)(x_2, y_2) = (h, y_2): P(h)=Ah2+Bh+C=y2(1)P(h) = Ah^2 + Bh + C = y_2 \quad (1)

  • Für (x0,y0)=(h,y0)(x_0, y_0) = (-h, y_0): P(h)=A(h)2+B(h)+C=Ah2Bh+C=y0(2)P(-h) = A(-h)^2 + B(-h) + C = Ah^2 - Bh + C = y_0 \quad (2)

Jetzt lösen wir nach AA und BB. Addieren wir Gleichung (1) und (2): (Ah2+Bh+C)+(Ah2Bh+C)=y2+y0(Ah^2 + Bh + C) + (Ah^2 - Bh + C) = y_2 + y_0 2Ah2+2C=y2+y02Ah^2 + 2C = y_2 + y_0 Setzen wir C=y1C=y_1 ein: 2Ah2+2y1=y2+y02Ah^2 + 2y_1 = y_2 + y_0 2Ah2=y02y1+y2    A=y02y1+y22h22Ah^2 = y_0 - 2y_1 + y_2 \implies \mathbf{A = \frac{y_0 - 2y_1 + y_2}{2h^2}}.

(Den Koeffizienten BB benötigen wir für die Integration nicht, da er sich durch die symmetrischen Grenzen aufheben wird, aber zur Vollständigkeit: Subtrahiert man (2) von (1), erhält man 2Bh=y2y0    B=y2y02h2Bh = y_2 - y_0 \implies B = \frac{y_2 - y_0}{2h}.)

Schritt 3: Exakte Integration der Parabel

Wir integrieren nun unsere Parabel P(x)P(x) über das vereinfachte Intervall von h-h bis hh:

hhP(x)dx=hh(Ax2+Bx+C)dx=[Ax33+Bx22+Cx]hh=(Ah33+Bh22+Ch)(A(h)33+B(h)22+C(h))=(Ah33+Bh22+Ch)(Ah33+Bh22Ch)=2Ah33+2Ch\begin{align*} \int_{-h}^{h} P(x)dx &= \int_{-h}^{h} (Ax^2 + Bx + C)\mathrm{d}x \\ &= \left[ A\frac{x^3}{3} + B\frac{x^2}{2} + Cx \right]_{-h}^{h} \\ &= \left( A\frac{h^3}{3} + B\frac{h^2}{2} + Ch \right) - \left( A\frac{(-h)^3}{3} + B\frac{(-h)^2}{2} + C(-h) \right) \\ &= \left( \frac{Ah^3}{3} + \frac{Bh^2}{2} + Ch \right) - \left( -\frac{Ah^3}{3} + \frac{Bh^2}{2} - Ch \right) \\ &= \frac{2Ah^3}{3} + 2Ch \end{align*}

Schritt 4: Einsetzen der Koeffizienten und Vereinfachen

Jetzt setzen wir die gefundenen Ausdrücke für AA und CC in das Integrationsergebnis ein:

Fla¨che=2h33(y02y1+y22h2)+2h(y1)=h3(y02y1+y2)+2hy1=h(y02y1+y2)+6hy13=h3(y02y1+y2+6y1)=h3(y0+4y1+y2)\begin{align*} \text{Fläche} &= \frac{2h^3}{3} \left( \frac{y_0 - 2y_1 + y_2}{2h^2} \right) + 2h(y_1) \\ &= \frac{h}{3} (y_0 - 2y_1 + y_2) + 2hy_1 \\ &= \frac{h(y_0 - 2y_1 + y_2) + 6hy_1}{3} \\ &= \frac{h}{3} (y_0 - 2y_1 + y_2 + 6y_1) \\ &= \frac{h}{3} (y_0 + 4y_1 + y_2) \end{align*}

Schritt 5: Rückkehr zum allgemeinen Intervall

Unser Ergebnis h3(y0+4y1+y2)\frac{h}{3} (y_0 + 4y_1 + y_2) gilt für das Intervall [h,h][-h, h] der Breite 2h2h. Für das ursprüngliche Intervall [a,b][a, b] gilt:

  • Die Breite ist bab-a, also 2h=ba    h=ba22h = b-a \implies h = \frac{b-a}{2}.
  • y0=f(a)y_0 = f(a), y1=f(a+b2)y_1 = f(\frac{a+b}{2}), y2=f(b)y_2 = f(b).

Wir ersetzen hh in unserer Formel:

Fla¨che=(ba)/23[f(a)+4f(a+b2)+f(b)]\text{Fläche} = \frac{(b-a)/2}{3} \left[ f(a) + 4f\left(\frac{a+b}{2}\right) + f(b) \right]=ba6[f(a)+4f(a+b2)+f(b)]= \frac{b-a}{6} \left[ f(a) + 4f\left(\frac{a+b}{2}\right) + f(b) \right]