# Problem

Approximate a higher derivative of a univariate function f(*x*) at a point
*x*_{0}. We will assume that we are given a sequence of
points (*x*_{i}, f(*x*_{i})) around
the point of interest (either before or around).
We will not look at iteration because the process of Richardson extrapolation
converges significantly faster.

# Assumptions

We need to assume the function has an *n*th derivative if we are to bound the
error on our approximation.

# Tools

We will use interpolation.

# Process

If we are to evaluate the second derivative at the point (*x*_{i}, f(*x*_{i}))
and have access to the two surrounding points, (*x*_{i − 1}, f(*x*_{i − 1}))
and (*x*_{i + 1}, f(*x*_{i + 1})), then we may find the interpolating polynomial, differentiate it twice, and evaluate that derivative at *x*_{i}:

This is simply another form of the formula

where *h* is the distance between the points, that is, *h* = *x*_{i} - *x*_{i − 1}.

If we have access to two points on either side of *x*_{i}, we can calculate

where *h* = *x*_{i} - *x*_{i − 1}.

This is another form of the formula:

We could perform the same operations with higher
derivatives, however, it should be noted that
to calculate the *n*th derivative, we require
at least *n* + 1 points.

Copyright ©2005 by Douglas Wilhelm Harder. All rights reserved.