Midpoint method

From Wikipedia, the free encyclopedia

Illustration of the midpoint method assuming that yn equals the exact value y(tn). The midpoint method computes yn + 1 so that the red chord is approximately parallel to the tangent line at the midpoint (the green line).
Illustration of the midpoint method assuming that yn equals the exact value y(tn). The midpoint method computes yn + 1 so that the red chord is approximately parallel to the tangent line at the midpoint (the green line).

In numerical analysis, a branch of applied mathematics, the midpoint method is a one-step method for solving the differential equation

 y'(t) = f(t, y(t)), \quad y(t_0) = y_0

numerically, and is given by the formula

 y_{n+1} = y_n + hf\left(t_n+\frac{h}{2},y_n+\frac{h}{2}f(t_n, y_n)\right),  \qquad\qquad (1)

for n=0, 1, 2, \dots Here, h is the step size — a small positive number, tn = t0 + nh, and yn is the computed approximate value of y(tn).

The name of the method comes from the fact that in the formula above the function f is evaluated at t = tn + h / 2, which is the midpoint between tn at which the value of y(t) is known and tn + 1 at which the value of y(t) needs to be found.

The error at each step of the midpoint method is of order O\left(h^3\right). Thus, while more computationally intensive than Euler's method, the midpoint method generally gives more accurate results.

The method is an example of a class of higher-order methods known as Runge-Kutta methods.

[edit] Derivation of the midpoint method

Illustration of numerical integration for the equation y' = y,y(0) = 1. Blue: the Euler method, green: the midpoint method, red: the exact solution, y = et. The step size is h = 1.0.
Illustration of numerical integration for the equation y' = y,y(0) = 1. Blue: the Euler method, green: the midpoint method, red: the exact solution, y = et. The step size is h = 1.0.
The same illustration for h = 0.25. It is seen that the midpoint method converges faster than the Euler method.
The same illustration for h = 0.25. It is seen that the midpoint method converges faster than the Euler method.

The midpoint method is a refinement of the Euler's method

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

and is derived in a similar manner. The key to deriving Euler's method is the approximate equality

 y(t+h) \approx y(t) + hf(t,y(t)) \qquad\qquad (2)

which is obtained from the slope formula

 y'(t) \approx \frac{y(t+h) - y(t)}{h} \qquad\qquad (3)

and keeping in mind that y' = f(t,y).

For the midpoint method, one replaces (3) with the more accurate

 y'\left(t+\frac{h}{2}\right) \approx \frac{y(t+h) - y(t)}{h}

when instead of (2) we find

 y(t+h) \approx y(t) + hf\left(t+\frac{h}{2},y\left(t+\frac{h}{2}\right)\right). \qquad\qquad (4)

One cannot use this equation to find y(t + h) as one does not know y at t + h / 2. The solution is then to use a Taylor series expansion exactly as if using the Euler method to solve for y(t + h / 2):

y\left(t + \frac{h}{2}\right) \approx y(t) + \frac{h}{2}y'(t)=y(t) + \frac{h}{2}f(t, y(t)),

which, when plugged in (4), gives us

y(t + h) \approx y(t) + hf\left(t + \frac{h}{2}, y(t) + \frac{h}{2}f(t, y(t))\right)

and the midpoint method (1).

[edit] See also

[edit] References

  • Griffiths,D. V.; Smith, I. M. (1991). Numerical methods for engineers: a programming approach. Boca Raton: CRC Press, page 218. ISBN 0-8493-8610-1. 
Languages