Mathematics Source Library

Implicit Central Difference Method

Implicit Central Difference Method

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

The algorithm for the implicit 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,

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, (yn + 1 - yn - 1 ) / 2h ), the procedure proceeds recursively via the implicit 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, y'(x0) ) / 2.

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

Function List

  • void Implicit_Central_Difference_Method( double f0, double (*g)(double,double,double,double), double y[], double x0, double c, double h, int number_of_steps )

    This function uses the Implicit 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 f0 is the value of the function f(x,y,y') evaluated at x0, y[0], c. The function g(x[n],y[n],y[n - 1],h) returns the implicit value of y[n + 1] so that y[n + 1] = 2 y[n] - y[n - 1] + h^2] f[n]. 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