Backward Difference Correction Method

Description

The backward difference correction method is an explicit third order method for approximating the solution of the second order differential equation y''(x) = f(x, y) with initial conditions y(x0) = y0, y'(x0) = y'0.

Note that the integrand f(x,y) does not depend upon y'.

Let xn = x0 + nh, yn be the approximation to y(xn), and fn = f(xn, yn), the procedure proceeds recursively via the explicit equation for yn + 1 as follows:

y(xn + 1) = 2 y(xn) - y(xn - 1) + h2 [ fn   +   ( fn - 2 fn - 1 + fn - 2 ) / 12 ].

In order to begin the recursion, three successive starting values of y are required, one of which is y0 and the other two starting values y1 and y2 need a different approximation method. The routine, Backward_Start, in the source code below, uses the Runge-Kutta method to approximate y1 and y2. Particular classes of problems may have more accurate estimates for both y1 and y2.

Richardson extrapolation may be used to increase to increase both the order and accuracy.

Function List

C Source