Beeman's algorithm

From SklogWiki
Revision as of 15:07, 17 April 2010 by Dduque (talk | contribs) (common factor)
Jump to: navigation, search

Beeman's algorithm is is a method for numerically integrating ordinary differential equations, generally position and velocity, which is closely related to Verlet integration.


x(t+\Delta t) = x(t) + v(t) \Delta t + (\frac{2}{3}a(t)  - \frac{1}{6} a(t - \Delta t) )\Delta t^2 + O( \Delta t^4)
v(t + \Delta t) = v(t) + (\frac{1}{3}a(t + \Delta t)  + \frac{5}{6}a(t)  - \frac{1}{6}a(t - \Delta t)) \Delta t + O(\Delta t^3)

where x is the position, v is the velocity, a is the acceleration, t is time, and \Delta t is the time-step.

A predictor-corrector variant is useful when the forces are velocity-dependent:

    x(t+\Delta t) = x(t) + v(t) \Delta t + \frac{2}{3}a(t) \Delta t^2 - \frac{1}{6} a(t - \Delta t) \Delta t^2 + O( \Delta t^4).

The velocities at time t =t + \Delta t are then calculated from the positions.

    v(t + \Delta t) (predicted) = v(t) + \frac{3}{2}a(t) \Delta t - \frac{1}{2}a(t - \Delta t) \Delta t + O( \Delta t^3)

The accelerations at time t =t + \Delta t are then calculated from the positions and predicted velocities.

    v(t + \Delta t) (corrected) = v(t) + \frac{1}{3}a(t + \Delta t) \Delta t + \frac{5}{6}a(t) \Delta t - \frac{1}{6}a(t - \Delta t) \Delta t + O( \Delta t^3)

See also