Midpoint and Half-Step Methods

Perhaps the most obvious way to improve the Euler method is to use the mean velocity during the interval to obtain the new position. The corresponding midpoint method can be written as

$\displaystyle v_{n+1}=v_n + a_n \Delta t,x_{n+1}=x_n + \frac{1}{2} (v_{n+1} + v_n) \Delta t.$     (8)

Note that if substitute Eq. (8) for $v_{n+1}$ into Eq. (8), we obtain
\begin{displaymath}
x_{n+1}=x_n + v_n \Delta t + \frac{1}{2} a_n (\Delta t)^2.
\end{displaymath} (9)

Hence, the midpoint method yields second-order accuracy for the position and first-order accuracy for the velocity. Although the midpoint approximation yields exact results for constant acceleration, it usually does not yield much better results than the Euler method. In fact, both methods are equally poor, because the error increases with each time step.

A higher-order method whose error is bounded is the half-step method. In this method the average velocity during an interval is taken to be the velocity in the middle of the interval. The half-step method can be written as

$\displaystyle v_{n + \frac{1}{2}}$ $\textstyle =$ $\displaystyle v_{n-\frac{1}{2}} + a_n \Delta t,$ (10)
$\displaystyle x_{n+1}$ $\textstyle =$ $\displaystyle x_n + v_{n+\frac{1}{2}} \Delta t.$ (11)

Note that the half-step method is not self-starting, i.e., Eq. (10) does not allow us to calculate $v_{\frac{1}{2}}$. The problem can be overcome by adopting the Euler algorithm for the first half step:
\begin{displaymath}
v_{\frac{1}{2}} = v_0 + \frac{1}{2} a_0 \Delta t.
\end{displaymath} (12)

Because the half-step method is stable, it is a common textbook method.