NEWTON_INTERP_1D
Polynomial Interpolation with Newton Divided Differences
NEWTON_INTERP_1D
is a Python library which
finds a polynomial interpolant to data using Newton divided differences.
NEWTON_INTERP_1D needs access to the R8LIB libraries.
The test code also needs access to the TEST_INTERP library.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
NEWTON_INTERP_1D 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.
Related Data and Programs:
LAGRANGE_INTERP_1D,
a Python 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 Python library which
interpolates a set of data using a piecewise constant interpolant
defined by the nearest neighbor criterion.
PWL_INTERP_1D,
a Python library which
interpolates a set of data using a piecewise linear interpolant.
SHEPARD_INTERP_1D,
a Python library which
defines and evaluates Shepard interpolants to 1D data,
which are based on inverse distance weighting.
TEST_INTERP_1D,
a Python library which
defines test problems for interpolation of data y(x),
depending on a 2D argument.
VANDERMONDE_INTERP_1D,
a Python library which
finds a polynomial interpolant to data y(x) of a 1D argument
by setting up and solving a linear system for the polynomial coefficients,
involving the Vandermonde matrix.
Reference:

Kendall Atkinson,
An Introduction to Numerical Analysis,
Prentice Hall, 1989,
ISBN: 0471624896,
LC: QA297.A94.1989.

Philip Davis,
Interpolation and Approximation,
Dover, 1975,
ISBN: 0486624951,
LC: QA221.D33

David Kahaner, Cleve Moler, Steven Nash,
Numerical Methods and Software,
Prentice Hall, 1989,
ISBN: 0136272584,
LC: TA345.K34.
Source Code:

newton_coef_1d.py,
solves the Vandermonde system of equations for the coefficients of the
polynomial that interpolates a given set of (x,y) data.

newton_value_1d.py,
evaluates a Vandermonde interpolant.

p00_data.py,
returns the data for any problem.

p00_data_num.py,
returns the number of data points for any problem.

p00_dim_num.py,
returns the spatial dimension for any problem.

p00_prob_num.py,
returns the number of test problems.

r8mat_transpose_print.py,
prints an R8MAT, transposed.

r8mat_transpose_print_some.py,
prints some of an R8MAT, transposed.

r8vec_norm.py,
computes the L2 norm of an R8VEC.

r8vec_norm_affine.py,
computes the L2 norm of the difference of two R8VEC's.

r8vec_print.py,
prints an R8VEC.

r8vec_uniform_ab.py,
returns a scaled pseudorandom R8VEC.

r8vec2_print.py,
prints a pair of R8VEC's.

timestamp.py,
prints the YMDHMS date as a timestamp.
Examples and Tests:
The code generates some plots of the data and approximants.

p01_data.png,
a plot of the data and piecewise linear interpolant for problem p01;

p01_newton.png,
a plot of the polynomial interpolant for problem p01;

p02_data.png,
a plot of the data and piecewise linear interpolant for problem p02;

p02_newton.png,
a plot of the polynomial interpolant for problem p02;

p03_data.png,
a plot of the data and piecewise linear interpolant for problem p03;

p03_newton.png,
a plot of the polynomial interpolant for problem p03;

p04_data.png,
a plot of the data and piecewise linear interpolant for problem p04;

p04_newton.png,
a plot of the polynomial interpolant for problem p04;

p05_data.png,
a plot of the data and piecewise linear interpolant for problem p05;

p05_newton.png,
a plot of the polynomial interpolant for problem p05;

p06_data.png,
a plot of the data and piecewise linear interpolant for problem p06;

p06_newton.png,
a plot of the polynomial interpolant for problem p06;

p07_data.png,
a plot of the data and piecewise linear interpolant for problem p07;

p07_newton.png,
a plot of the polynomial interpolant for problem p07;

p08_data.png,
a plot of the data and piecewise linear interpolant for problem p08;

p08_newton.png,
a plot of the polynomial interpolant for problem p08;
You can go up one level to
the Python source codes.
Last modified on 11 July 2015.