Trapezoidal method

Update for positions:

xim+1 = xim + h/2 (vim + vim+1)
Update for velocities:
vim+1 = vim + h/2 (aim + aim+1)

Note that the unknowns xim+1 and vim+1 appear on *both* sides of the equations. The trapezoidal method is implicit: it requires us to solve a set of equations to compute the step. In our case (the gravitational problem) these equations are nonlinear.

Newton's method provides a way to solve the equations (there are other ways). Newton's method requires a good initial guess to converge properly. In our case, we have a natural choice: initialize with previous time step positions and velocities. If the time step isn't too large, this'll be a very good guess. (But if the time step is too large, this can lead to all sorts of chicanery. The difficulty, of course, is in telling when the step size is too large *before* attempting such a step.)

NB: the lowest order Adams-Moulton method is the backward Euler method. The next lowest order is the trapezoidal method.

References