Mathematics Source Library
C & ASM

 Home Differential Equations Home Second Order Diff Eq Home Backward Difference Correction Method Explicit Central Difference Method Numerov's Method Implicit Central Difference Method Runge-Kutta Method for Second Order Diff Eq

## Explicit Central Difference Method

The explicit central difference method is an explicit second 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'.

The algorithm for the explicit central difference method is derived by using the central difference approximations for y'(x) and y''(x):

y'(x) = (y(x+h) - y(x-h) ) / 2h,

and
y''(x) = (y(x+h) - 2y(x) + y(x-h)) / h2.

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:
yn + 1 = 2 yn - yn - 1 + h2 fn.

In order to begin the recursion, two successive starting values of y are required, one of which is y0 and the other starting value y1 is approximated by
y1 = h y'(x0) + h2 f(x0, y0) / 2.

Particular classes of problems may have a more accurate estimate for y1.

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

### Function List

• void Explicit_Central_Difference_Method( double (*f)(double, double), double y[], double x0, double c, double h, int max_columns, int number_of_steps )

This function uses the explicit central difference method to estimate the solution of the initial value problem, y'' = f(x,y); y(x0) = y[0] and y'(x0) = c, at x0 + nh where for
n =1, …, number_of_steps and h is the step size. The argument max_columns is the number of step size halving + 1 used in Richardson extrapolation so that if richardson_columns = 1 then no extrapolation to the limit is performed. On input, y[0] is the value of y(x) at x = x0. On output y[n] is the value of y(x) at x = x0 + n h for
n = 0, …, number_of_steps.