next up previous contents
Next: Mehrschrittverfahren(Adams-Bashforth) Up: Numerische Lösungsverfahren Previous: Verlet-Methode

Runge-Kutta-Verfahren

Hierbei handelt es sich um eine ganze Klasse von Methoden. Wir zeigen, wie man ein Verfahren zweiter Ordnung gewinnt, und zitieren dann die Formel für einige häufig benutzte Verfahren.

Die Idee basiert auf der allgemeinen und exakten Bezeichnung, die man durch Integration von ([*]) über $ [x_n , x_{n+1}]$ erhält.

$\displaystyle u_{n+1}=u_n+\int_{x_n}^{x_{n+1}}f(x,u(x)) dx$ (5.47)

Natürlich liegt das Problem bei der Anwendung dieser Formel darin, dass man $ f(x,u)$ auf dem Intervall $ [x_n , x_{n+1}]$ nicht kennt. Deshalb approximiert man $ f$ durch eine Taylorreihenentwicklung um den Mittelpunkt $ x_{n+\frac{1}{2}}= \frac{1}{2}(x_{n+1}+x_n)$ des Intervalls, d.h. man schreibt

\begin{eqnarray}f(x,u(x))&=&
f(x_{n+\frac{1}{2}},u(x_{n+\frac{1}{2}}))+
f'(x_{...
...\frac{1}{2}},u(x_{n+\frac{1}{2}}))
(x-x_{n+\frac{1}{2}})^2+\dots
\end{eqnarray}


Setzt man dies in ([*]) ein so folgt also

\begin{eqnarray}u_{n+1}&=&u_n+(x_{n+1}-x_n)f(x_{n+\frac{1}{2}},u_{n+\frac{1}{2}}...
...1}{2}})
[(x_{n+1}-x_{n+\frac{1}{2}})^2-(x_n-x_{n+\frac{1}{2}})^2]
\end{eqnarray}


und somit, weil $ x_{n+1}-x_n=h$, folgt

$\displaystyle u_{n+1}=u_n+h f(x_{n+\frac{1}{2}},u_{n+\frac{1}{2}})+{\cal O}(h^3)$ (5.48)

d.h. der lineare Term fällt weg, so dass die Genauigkeit $ {\cal O}(h^3)$ ist.

Nun ist natürlich $ u_{n+\frac{1}{2}}=u(x_{n+\frac{1}{2}})$ unbekannt. Da aber der Fehler $ {\cal O}(h^3)$ ist, reicht es aus $ u_{n+\frac{1}{2}}$ als $ u_{n+\frac{1}{2}} = u_n + \frac{1}{2}k$ zu approximieren wobei $ k$ aus einer Methode stammt, die z.B. nur $ {\cal O}(h^2)$ ist. Also z.B. die Euler-Methode.

$\displaystyle k=hf(x_n,u_n)$ (5.49)

Dies ist die generelle Idee des Runge-Kutta-Verfahren, dass man das Intervall in ([*]) approximiert und an den Zwischenstellen einfache Approximationen von $ u$ anstatt d. exakten Werte benutzt. Insgesamt haben wir also folgendes Verfahren aus zwei Schritten.

\begin{eqnarray}k&=&hf(x_n,u_n)\\
u_{n+1}&=&u_n+hf(x_n+\frac{h}{2},u_n+\frac{k}{2})+{\cal O}(h^3)
\end{eqnarray}


Vorteile:

  1. hohe Genauigkeit wie bei Taylerreihenmethoden
  2. keine Notwendigkeit, dass $ f$ differenzierbar sein muss
  3. benutzt nur $ u_n$ (nicht mehrere $ u_n,u_{n-1},u_{n-2},\dots$, wie bei Mehrschrittverfahren).
einziger Nachteil:
Die Funktion $ f(x,u)$ muss zweimal berechnet werden.

Runge-Kutta-Verfahren höherer Ordnung erhält man, indem man andere Quadraturformeln für das Integral in Gleichung ([*]) benutzt. Benutzt man die Simpsonregel in ([*]) so hat man

$\displaystyle u_{n+1}= u_n+\frac{h}{6} [f(x_n,u_n)+4f(x_{n+\frac{1}{2}},u_{n+\frac{1}{2}})+f(x_{n+1},u_{n+1})] +{\cal O}(h^5)$ (5.50)

Dann muss man wieder Näherungen für die Zwischenwerte (z.B. $ u_{n+\frac{1}{2}}$) machen um den vollständigen Algorithmus zu erhalten. Ein Algorithmus 3. Ordnung der auf ([*]) aufbaut ist, etwa:
\begin{subequations}
\begin{eqnarray}k_1&=&hf(x_n,u_n)\\
k_2&=&hf(x_n+\frac{h}...
...&u_n+\frac{1}{6}(k_1+4k_2+k_3)+{\cal O}(h^4) .
\end{eqnarray}\end{subequations}

Er erfordert, dass $ f$ dreimal ausgerechnet wird. Die Erfahrung hat gezeigt, dass ein RK-Verfahren 4. Ordnung einerseits genau ist und andererseits wenig Rechenaufwand erfordert. Der am häufigsten verwendete Algorithmus lautet

\begin{subequations}
\begin{eqnarray}k_1&=&hf(x_n,u_n)\\
k_2&=&hf(x_n+\frac{h}{...
..._n+\frac{1}{6}(k_1+2k_2+2k_3+k_4)+{\cal O}(h^5)
\end{eqnarray}\end{subequations}


next up previous contents
Next: Mehrschrittverfahren(Adams-Bashforth) Up: Numerische Lösungsverfahren Previous: Verlet-Methode
© R.Hilfer et al., ICA-1, Univ. Stuttgart
28.6.2002