14
$\begingroup$

I am solving a system of two coupled PDE's in two spatial dimensions and in time computationally. Since the function evaluations are expensive, I would like to use a multistep method (initialised using Runge-Kutta 4-5).

The Adams-Bashforth method using five previous function evaluations has a global error of $O(h^5)$ (this is the case where $s=5$ in the Wikipedia article referenced below), and requires one function evaluation (per PDE) per step.

The Adams-Moulton method on the other hand requires two function evaluations per step: one for the prediction step, and another for the corrector step. Once again, if five function evaluations are used, the global error is $O(h^5)$. ($s=4$ in the Wikipedia article)

So what is the reasoning behind using Adams-Moulton over Adams-Bashforth? It has an error of the same order, for twice the number of function evaluations. Intuitively it makes sense that a predictor-corrector method should be favourable, but can somebody explain this quantitatively?

Reference: http://en.wikipedia.org/wiki/Linear_multistep_method#Adams.E2.80.93Bashforth_methods

$\endgroup$
3
  • $\begingroup$ This question is wrong. You refer to Adams-Moulton, which is a fully implicit method, but then you discuss actually using a predictor-corrector method. They are not the same thing at all. $\endgroup$ Jun 14, 2014 at 6:40
  • $\begingroup$ @David The Adams-Moulton method to which I refer (sometimes called Adams-Bashforth-Moulton) is a predictor-corrector method. The predictor step is done using Adams-Bashforth. The result of the prediction is then used in the Adams-Moulton step, such as to make it explicit. I can give you more detail if that is unclear. $\endgroup$ Jun 15, 2014 at 17:20
  • $\begingroup$ It is clear. But it is not what is meant by Adams-Moulton. You need to use the correct names. $\endgroup$ Jun 16, 2014 at 11:12

1 Answer 1

12
$\begingroup$

Adams-Moulton method is significantly more stable. The analogy used when I was taught the difference is the same as extrapolation and interpolation. Interpolation is relatively safe numerically. Extrapolation can blow up if you happen to have an asymptote or some other odd feature.

For instance, solving the ode

$y'(t) = -y(t)$ with $y(0) = 1$

using the 3rd order Adams-Bashforth method actually becomes more unstable as the timestep is reduced. By adding the corrector step, you avoid much of this instability. A plot of the stability regions for the two methods are show here:

enter image description here

Plot taken from The Art of Scientific Computing by Gregory Baker and Edward Overman. $\lambda$ is the eigenvalue of your ODE, $h$ is the timestep. Note that $\lambda$ can be complex, so the plots are on the complex plain. If $\lambda h$ is inside the stable space, the ode will converge. If it is outside, eventually the time integration will become unstable. Note that for stability all eigenvalues of your ODE, or ODE system must be inside the stable region.

$\endgroup$
4
  • $\begingroup$ Thanks, Godric. Can you please define $\lambda$ and explain the axes of the two plots? I assume $h$ is the step size. I also don't understand "the solid line in (b), which is the imaginary axis, is not visible and the region is the left half plane." $\endgroup$ Jun 13, 2014 at 12:32
  • $\begingroup$ @SimonSciComp I added some more explanation below the plot. Let me know if anything else is unclear. $\endgroup$ Jun 13, 2014 at 12:36
  • $\begingroup$ So, to paraphrase, the second order Adams-Moulton method is stable for all $\lambda h$ s.t. $\Re(\lambda h)<0$, while the third and fourth-order methods have further stability constraints. I may have to reconsider using a fifth-order method. $\endgroup$ Jun 13, 2014 at 13:00
  • 1
    $\begingroup$ I am assuming that your math says $\lambda$ with negative real part. In that case the answer is yes. You likely want to use the highest order method you can without over constraining your time step. $\endgroup$ Jun 13, 2014 at 13:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.