next up previous
Next: Runge-Kutta methods Up: Ordinary differential equations: a Previous: Higher order: Taylor's series

Multistep or Predictor-Corrector methods

We can achieve higher accuracy by relating $y_{n+1}$ not only to $y_n$, but also to points further in the past $y_{n-1},y_{n-2},...$ To derive such formulas we can integrate exactly (1) to obtain:

\begin{displaymath}
y_{n+1}=y_n+\int_{x_n}^{x_{n+1}}f(x,y)dx
\end{displaymath} (9)

The problem is that we don't know $f(x,y)$ over the interval $(x_n,x_{n+1})$. However, we can use the values of $y$ at $x_n$ and $x_{n-1}$ to provide a linear extrapolation:

\begin{displaymath}
f=\frac{(x-x_{n-1})}{\Delta x}f_n-\frac{(x-x_n)}{\Delta x}
f_{n-1}+O(\Delta x^2),
\end{displaymath} (10)

with $f_n=f(x_n,y_n)$. Inserting into (9) we obtain
\begin{displaymath}
y_{n+1}=y_n+\Delta x(\frac{3}{2}f_n-\frac{1}{2}f_{n-1})+O(\Delta x^3)
\end{displaymath} (11)

Note that the value of $y_0$ is not sufficient information to get this algorithm started. The value of $y_1$ has to be obtained first by some other procedure, like the ones described previously. This means that the method is not ``self-starting''.



Adrian E. Feiguin 2004-06-01