Interpolation and Extrapolation:
Introduction
[this page | pdf | references | back links]
Suppose we know the value that a function
takes at a
set of points
say, where
we have ordered the
so that
. However we
do not have an analytic expression for
that allows
us to calculate it at an arbitrary point. Often the
’s are
equally spaced, but not necessarily. How might we best estimate
for
arbitrary
by in some
sense drawing a smooth curve through and potentially beyond the
? If
, i.e.
within the range spanned by the
then this
problem is called interpolation, otherwise it is called extrapolation.
To do this we need to model
, between or
beyond the known points, by some plausible functional form. It is relatively
easy to find pathological functions that invalidate any given interpolation
scheme, so there is no single ‘right’ answer to this problem. Approaches that
are often used in practice involve modelling
using
polynomials or rational functions (i.e. quotients of polynomials). Trigonometric
functions, i.e. sines and cosines, can also be used, giving rise to so-called
Fourier methods.
The approach used can be ‘global’, in the sense that we fit
to all points simultaneously (giving each in some sense ‘equal’ weight in the
computation). More commonly, the approach adopted is ‘local’, in the sense that
we give greater weight in the curve fitting to points ‘close’ to the value of
in
which we are interested.
A simple example of a ‘local’ interpolation approach would
be linear interpolation, implemented in the Nematrian website via the
function MnLinearInterpolation.
This involves finding the two points straddling the value of
in
which we are interested, say
and
and
identifying as the interpolated value the
for which
lies along
the straight line joining
and
. In such an
approach we give no weight at all to any of the
other than
the two corresponding to the two
straddling
the value of
in
question. More generally, we might use an approach that incorporates only the
nearest
neighbours to the value of
in
question. The number
of points
used, minus 1, is called the order of the interpolation scheme, so linear
interpolation is a first order scheme. Increasing the order does not
necessarily increase accuracy, especially with polynomial interpolation.
Higher-order polynomials can often oscillate wildly between the tabulated
points.
Simple nearest-neighbour arrangements in which we give no
weight to any points beyond the
nearest
ones have a potentially significant weakness. The first and higher order
derivatives of the resulting answers are discontinuous wherever the set of
points deemed ‘local’ changes. To overcome this problem, practitioners often
use spline functions, in which non-locality is introduced in a way that
guarantees global smoothness in the interpolated function up to some given
order of derivative.
Interpolation can be done in more than one dimension. Often
this is accomplished by a sequence of one-dimensional interpolations, but there
are other techniques applicable to scattered data, see e.g. Press et
al. (2007).