Predictor-Corrector Methods

In Sections $ 1$ and $ 2$ , during the course of the discussion on the Euler's algorithm, the value of $ \displaystyle \int\limits_{x_k}^{x_{k+1}}$ has been approximated to $ h f(x_k, y(x_k))$ . On the other hand, we could have also considered its approximate value by $ \displaystyle \frac{h}{2} \bigl( f(x_k, y(x_k)) + f(x_{k+1}, y(x_{k+1})) \bigr)$ . We could have thought of it to solve the IVP (numerically) by defining the approximations

$\displaystyle y_{k+1} = y_k + \frac{h}{2} \bigl( f(x_k, y_k) + f(x_{k+1}, y_{k+1}) \bigr) {\mbox{ for }} k = 0,1, 2, \ldots, n-1$ (14.4.15)

with the initial value $ y(a) = y_0$ . An equation of the type ([*]) for $ y_k$ is called an implicit equation for $ y_{k+1}$ . On many occasions solving equation ([*]) could be too tough and so we resort to (numerical) approximate value for $ y_{k+1}$ . Note that we are concentrating more on computing $ y_{k+1}$ , for a fixed $ k$ integer lying between 0 and $ n-1$ . To start with, we let $ y_k^0 = 0, y_1^0 = y_0$ and for $ k = 0,1,2,\ldots, n-1$ , we define

$\displaystyle y^{k+1} = y_m + \frac{h}{2} \bigl( f(x_0, y_m) + f(x_1, y_{m+1}^k) \bigr).$ (14.4.16)

Essentially, we are trying to iterate for $ y_1$ . we need to stop this iteration at some stage and then ``find the value" of $ y_i^k$ and designate it as $ y_1$ . One method of stopping the iteration is when

$\displaystyle \frac{ y_1^{k+1} - y_1^k}{y_1^{k+1}}$

is ``small" (small have means that the absolute value of the ratio is lesser than an assigned (previously) small number). we repeat the process with $ y_1$ in place of $ y_0$ and $ x_1$ in place of $ x_0$ . In general, ([*]) allows us to recursively define

$\displaystyle y^0_{m+1} = y_m, \;\; {\mbox{ and }} y_{m+1}^{k+1} = y_m + \frac{h}{2} \bigl( f(x_m, y_m) +
f(x_{m+1}, y_{m+1}) \bigr)$

for $ k = 0, 1, 2, \ldots$ and $ m = 0,1, 2, \ldots, n$ . The iterated values $ y_{m+1}^0, y_{m+1}^1, \ldots $ are called THE INNER ITERATIONS for $ y_{m+1}$ .

Some more terminologies:
Normally, an explicit method like the Euler's method or the R-K methods are known as open type methods or algorithms. They are readily available for computation and the starters are known. On the other hand, implicit method as described by ([*]) is called closed type. Many a times, it may happen that the starters for the (approximate solution) for closed type method is obtained from the open type one. The starter $ y_{m+1}^0$ for ([*]) is also familiarly known as a Predictor whereas the value $ y_{m+1}$ (so computed) is called a corrector. In short, we predict the value $ y_{m+1}^0$ and correct it (by iteration) to obtain $ y_{m+1}$ . For this reason such methods are called PREDICTOR-CORRECTOR MEHTODS, (in short PC methods). Again, we repeat that PC methods need some condition to step the inner iterations, usually they are:

  1. the number $ M$ of iterations (called the tolerance on the number of iterations),
  2. a bound on the relative error (called the tolerance on the relative error).
As for as condition [*] is concerned, it simply says we do not wish to iterate beyond $ M$ iterations, while condition [*] says that keep iterating till the relative error is small, no matter how many iterations are needed. The number $ M$ is known as the tolerance. On occasions many use both the conditions [*] and [*] to stop the inner iterations, which even leads to early termination.

With these preliminaries, we state the Predictor-Corrector algorithm.



Subsections
A K Lal 2007-09-12