TEST_INTERP\
Interpolation Test Data {#test_interp-interpolation-test-data align=”center”}
=======================
TEST_INTERP is a C++ library which defines data that may be used to
test interpolation algorithms.
The following sets of data are available:
- p01_plot.png, 18 data points, 2 dimensions. This
example is due to Hans-Joerg Wenz. It is an example of good data,
which is dense enough in areas where the expected curvature of the
interpolant is large. Good results can be expected with almost any
reasonable interpolation method.
- p02_plot.png, 18 data points, 2 dimensions. This
example is due to ETY Lee of Boeing. Data near the corners is more
dense than in regions of small curvature. A local interpolation
method will produce a more plausible interpolant than a nonlocal
interpolation method, such as cubic splines.
- p03_plot.png, 11 data points, 2 dimensions. This
example is due to Fred Fritsch and Ralph Carlson. This data can
cause problems for interpolation methods. There are sudden changes
in direction, and at the same time, sparsely-placed data. This can
cause an interpolant to overshoot the data in a way that seems
implausible.
- p04_plot.png, 8 data points, 2 dimensions. This
example is due to Larry Irvine, Samuel Marin and Philip Smith. This
data can cause problems for interpolation methods. There are sudden
changes in direction, and at the same time, sparsely-placed data.
This can cause an interpolant to overshoot the data in a way that
seems implausible.
- p05_plot.png, 9 data points, 2 dimensions. This
example is due to Larry Irvine, Samuel Marin and Philip Smith. This
data can cause problems for interpolation methods. There are sudden
changes in direction, and at the same time, sparsely-placed data.
This can cause an interpolant to overshoot the data in a way that
seems implausible.
- p06_plot.png, 49 data points, 2 dimensions. The
data is due to deBoor and Rice. The data represents a temperature
dependent property of titanium. The data has been used extensively
as an example in spline approximation with variably-spaced knots.
DeBoor considers two sets of knots: (595,675,755,835,915,995,1075)
and (595,725,850,910,975,1040,1075).
- p07_plot.png, 4 data points, 2 dimensions. The data
is a simple symmetric set of 4 points, for which it is interesting
to develop the Shepard interpolants for varying values of the
exponent p.
- p08_plot.png, 12 data points, 2 dimensions. This is
equally spaced data for y = x\^2, except for one extra point whose x
value is close to another, but whose y value is not so close. A
small disagreement in nearby data can become a disaster.
TEST_INTERP requires access to a compiled copy of the R8LIB
library.
Licensing: {#licensing align=”center”}
The computer code and data files described and made available on this
web page are distributed under the GNU LGPL
license.
Languages: {#languages align=”center”}
TEST_INTERP is available in a C
version and a C++
version and a FORTRAN77
version and a FORTRAN90
version and a MATLAB
version and a Python
version.
DIVDIF, a C++ library which includes
many routines to construct and evaluate divided difference interpolants.
HERMITE, a C++ library which
computes the Hermite interpolant, a polynomial that matches function
values and derivatives.
INTERPOLATION, a
dataset directory which contains datasets to be interpolated.
LAGRANGE_INTERP_1D,
a C++ library which defines and evaluates the Lagrange polynomial p(x)
which interpolates a set of data, so that p(x(i)) = y(i).
NEAREST_INTERP_1D,
a C++ library which interpolates a set of data using a piecewise
constant interpolant defined by the nearest neighbor criterion.
NEWTON_INTERP_1D,
a C++ library which finds a polynomial interpolant to data using Newton
divided differences.
PWL_INTERP_1D, a C++
library which interpolates a set of data using a piecewise linear
function.
R8LIB, a C++ library which contains
many utility routines using double precision real (R8) arithmetic.
RBF_INTERP, a C++ library
which defines and evaluates radial basis function (RBF) interpolants to
multidimensional data.
SPLINE, a C++ library which includes
many routines to construct and evaluate spline interpolants and
approximants.
TEST_APPROX, a C++
library which defines test problems for approximation, provided as a set
of (x,y) data.
TEST_INTERP_ND, a
C++ library which defines test problems for interpolation of data z(x),
depending on an M-dimensional argument.
Reference: {#reference align=”center”}
- Carl DeBoor, John Rice,\
Least-squares cubic spline approximation II - variable knots.\
Technical Report CSD TR 21,\
Purdue University, Lafayette, Indiana, 1968.
- Carl DeBoor,\
A Practical Guide to Splines,\
Springer, 2001,\
ISBN: 0387953663,\
LC: QA1.A647.v27.
- Fred Fritsch, Ralph Carlson,\
Monotone Piecewise Cubic Interpolation,\
SIAM Journal on Numerical Analysis,\
Volume 17, Number 2, April 1980, pages 238-246.
- Larry Irvine, Samuel Marin, Philip Smith,\
Constrained Interpolation and Smoothing,\
Constructive Approximation,\
Volume 2, Number 1, December 1986, pages 129-151.
- ETY Lee,\
Choosing Nodes in Parametric Curve Interpolation,\
Computer-Aided Design,\
Volume 21, Number 6, July/August 1989, pages 363-370.
- Hans-Joerg Wenz,\
Interpolation of Curve Data by Blended Generalized Circles,\
Computer Aided Geometric Design,\
Volume 13, Number 8, November 1996, pages 673-680.
Source Code: {#source-code align=”center”}
Examples and Tests: {#examples-and-tests align=”center”}
List of Routines: {#list-of-routines align=”center”}
- P00_DATA returns the data for any problem.
- P00_DATA_NUM returns the number of data points for any
problem.
- P00_DIM_NUM returns the spatial dimension for any problem.
- P00_PROB_NUM returns the number of test problems.
- P00_STORY prints the “story” for any problem.
- P01_DATA returns the data for problem 01.
- P01_DATA_NUM returns the number of data points for problem 01.
- P01_DIM_NUM returns the spatial dimension for problem 01.
- P01_STORY prints the “story” for problem 01.
- P02_DATA returns the data for problem 02.
- P02_DATA_NUM returns the number of data points for problem 02.
- P02_DIM_NUM returns the spatial dimension for problem 02.
- P02_STORY prints the “story” for problem 02.
- P03_DATA returns the data for problem 03.
- P03_DATA_NUM returns the number of data points for problem 03.
- P03_DIM_NUM returns the spatial dimension for problem 03.
- P03_STORY prints the “story” for problem 03.
- P04_DATA returns the data for problem 04.
- P04_DATA_NUM returns the number of data points for problem 04.
- P04_DIM_NUM returns the spatial dimension for problem 04.
- P04_STORY prints the “story” for problem 04.
- P05_DATA returns the data for problem 05.
- P05_DATA_NUM returns the number of data points for problem 05.
- P05_DIM_NUM returns the spatial dimension for problem 05.
- P05_STORY prints the “story” for problem 05.
- P06_DATA returns the data for problem 06.
- P06_DATA_NUM returns the number of data points for problem 06.
- P06_DIM_NUM returns the spatial dimension for problem 06.
- P06_STORY prints the “story” for problem 06.
- P07_DATA returns the data for problem 07.
- P07_DATA_NUM returns the number of data points for problem 07.
- P07_DIM_NUM returns the spatial dimension for problem 07.
- P07_STORY prints the “story” for problem 07.
- P08_DATA returns the data for problem 08.
- P08_DATA_NUM returns the number of data points for problem 08.
- P08_DIM_NUM returns the spatial dimension for problem 08.
- P08_STORY prints the “story” for problem 08.
You can go up one level to the C++ source codes.
Last revised on 04 October 2012.