## 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(x*,

_{0}) = y_{0}*y'(x*.

_{0}) = 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)) / h*.

^{2}Let

*x*,

_{n}= x_{0}+ nh*y*be the approximation to

_{n}*y(x*, and

_{n})*f*, the procedure proceeds recursively via the explicit equation for y

_{n}= f(x_{n}, y_{n})_{n + 1}as follows:

*y*.

_{n + 1}= 2 y_{n}- y_{n - 1}+ h^{2}f_{n}In order to begin the recursion, two successive starting values of

*y*are required, one of which is

*y*and the other starting value

_{0}*y*is approximated by

_{1}y

_{1}= h y'(x_{0}) + h^{2}f(x_{0}, y_{0}) / 2.Particular classes of problems may have a more accurate estimate for

*y*.

_{1}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*.

*C* Source Code

- The file, explicit_central_difference.c, contains a version of Explicit_Central_Difference_Method( ) written in
*C*.