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 FORTRAN90 version and
a MATLAB version and
a Python version.
Related Data and Programs:
BARYCENTRIC_INTERP_1D,
a Python library which
defines and evaluates the barycentric Lagrange polynomial p(x)
which interpolates a set of data, so that p(x(i)) = y(i).
The barycentric approach means that very high degree polynomials can
safely be used.
CHEBYSHEV_INTERP_1D,
a Python library which
determines the combination of Chebyshev polynomials which
interpolates a set of data, so that p(x(i)) = y(i).
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.
RBF_INTERP_1D,
a Python library which
defines and evaluates radial basis function (RBF) interpolants
to 1D data.
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: 0-486-62495-1,
LC: QA221.D33
-
David Kahaner, Cleve Moler, Steven Nash,
Numerical Methods and Software,
Prentice Hall, 1989,
ISBN: 0-13-627258-4,
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.