Predictor-Corrector Methods

4.5. Predictor-Corrector Methods#

Implicit methods are useful for so-called stiff equations, to be discussed later. However, another use of implicit methods is to combine an explicit with an implicit formula to form a predictor-corrector method. A commonly used predictor-corrector` method is the combination of the fourth–order Adams methods:

\[\begin{split}\begin{aligned} y^{(p)}_{j+1} ~&=~ y_j + \frac{{h}}{24}\bigl[ 55f_j - 59f_{j-1} + 37f_{j-2} - 9f_{j-3} \bigr]\\[4pt] y_{j+1} ~&=~ y_j + \frac{{h}}{24}\bigl[ 9f^{(p)}_{j+1} + 19f_j - 5f_{j-1} + f_{j-2} \bigr] \end{aligned}\end{split}\]

First a predicted value \(y^{(p)}_{j+1}\) of \(y_{j+1}\) is computed by the Adams–Bashforth formula, then \(y^{(p)}_{j+1}\) is used to give \(f_{j+1}\) (i.e can be denoted as \(f^{(p)}_{j+1}\)). The evaluated value of \(f^{(p)}_{j+1}\) is used in the Adams–Moulton formula to correct the approximation given by the Adams–Bashforth formula, and to evaluate an improved value of \(f_{j+1}\). This is the most common procedure for applying predictor-corrector method used and is denoted by PECE; P for computing the Predictor value of \(y_{j+1}\), E for Evaluating the function \(f^{(p)}_{j+1}\), C for applying the Corrector formula and E for a new evaluation of the function.

It is common to take additional corrector steps in order to improve the solution. For example, one possibility is PECECE (or PE(CE)\(^2\)) procedure (i.e. two fixed point iteration per step). Alternatively, corrector iterations can be carried out until the difference between two successive iterations is less than a pre-specified tolerance.

Example 4.2

Consider the initial–value problem

\[\begin{aligned} y' &= -y + x + 1, & 0 \leq x \leq 1,\quad y(0) &= 1. \end{aligned}\]

Find approximate solutions using the Adams–Bashforth–Moulton fourth–order predictor-corrector method, with \(\,h=0.1\,\). Find solution in the interval \([0,~~1]\) and apply only one corrector iteration for each step.

Hint

  • Step 1 - find the starting values

    First, we calculate the starting values from the exact solution \(\,y(x) = e^{-x} + x\,\) using \(\,h = 0.1\,\) (we could use any one–step method to find the starting values, see Matlab programs attached).

  • Step 2 - calculate the predictor solution

    Second, we use the \(4^\text{th}\)–order Adams–Bashforth method to predict a value for \(y_{j+1}\):

    \[\begin{aligned} y_{j+1} ~&=~ y_j + \frac{h}{24}\bigl[ 55f_j - 59f_{j-1} + 37f_{j-2} - 9f_{j-3} \bigr] \end{aligned}\]
  • Step 3 - calculate the corrector solution and then use the \(4^\text{th}\)–order Adams–Moulton method:

    \[\begin{aligned} y_{j+1} ~&=~ y_j + \frac{h}{24}\bigl[ 9f_{j+1} + 19f_j - 5f_{j-1} + f_{j-2} \bigr], \end{aligned}\]

    to correct the estimated value of \(y_{j+1}\), using one corrector evaluation only.