MATH/APPM 4650
Class notes, April 1

More on Adams-Moulton

How do the various methods compare? Let's just consider second order.
The actual solution of the differential equation:
or using the differential equation y'(t) = f(t, y(t)):

Of course, all the second-order methods agree up to the h2 term. They disagree at the h3 term, and thus they have local truncation error O(h2). We want to know what the coefficient is though.

We compute all errors using the formula E(h) = y(t+h) - wi+1, assuming that y(t) = wi.

If we wanted the local truncation error, we would divide all of these through by h.

Second-order method errors:
Things to remember:



Predictor-corrector method:
If we're going to use a multistep method, we'd prefer to use the Adams-Moulton method.

However, we don't want to have to solve that nonlinear equation.

A good compromise is using the Adams-Bashforth method of the same order (i.e., with one more step) to get a "predictor" value wP.

Then plug that predictor value into the right side of the Adams-Moulton method to get a "corrector" value wnew = wC.

Example for second-order:
  1. Use two-step Adams-Bashforth to get
    wP = wcurr + h/2 ( 3f(tcurr, wcurr) - f(tprev, wprev) ).
  2. Plug this wP into the one-step Adams-Moulton.
    wC = wcurr + h/2 ( f(tcurr, wcurr) + f(tnew, wP) ).
  3. Then wnew = wC is the best estimate of the new value.

In fact we could use any second-order method as a predictor for the one-step Adams-Moulton method. Adams-Bashforth is preferred since it only requires one function evaluation (rather than two, like a Runge-Kutta method would.)

The total number of function evaluations for the Adams-Bashforth-Moulton predictor-corrector method is always two, no matter what the order is.

This is in contrast to a Runge-Kutta method, where the number of function evaluations is always at least as large as the order (and sometimes larger).




What's nice about a predictor-corrector method, like any method that generates two approximations at each step, is that we can use it to estimate the error. Hence we can change the step size if the error is too large. In this way we get an adaptive predictor-corrector method

Basic idea: we have y - wP ≈ -5 (y - wC), using the formula above. We can get an estimate for y from this, and then (more importantly) an estimate for the error y - wC.

It's easy to see that
y - wC ≈ 1/6 (wP - wC).

So the adaptive method goes as follows:
If we want the local truncation error to be ε, then we want (y-w)/h ≤ ε and thus (wP-wC) ≤ 6hε.
  1. If this condition is satisfied, we accept the value of wC and move on.
  2. If it's not satisfied, we'll want to choose a new value h~. To get the local truncation error to be ε, we should choose h~2 = 6εh3/|wP-wC|.