LAGRANGE_INTERP_1D
Polynomial Interpolation in 1D using Lagrange Polynomials
LAGRANGE_INTERP_1D
is a MATLAB library which
defines and evaluates the Lagrange polynomial p(x)
which interpolates a set of data, so that p(x(i)) = y(i).
LAGRANGE_INTERP_1D needs the R8LIB library.
The test uses the TEST_INTERP_1D library.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
LAGRANGE_INTERP_1D is available in
a C version and
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
BARYCENTRIC_INTERP_1D,
a MATLAB 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 MATLAB library which
determines the combination of Chebyshev polynomials which
interpolates a set of data, so that p(x(i)) = y(i).
DIVDIF,
a MATLAB library which
uses divided differences to compute the polynomial interpolant
to a given set of data.
HERMITE,
a MATLAB library which
computes the Hermite interpolant, a polynomial that matches function values
and derivatives.
LAGRANGE_APPROX_1D,
a MATLAB library which
defines and evaluates the Lagrange polynomial p(x) of degree m
which approximates a set of nd data points (x(i),y(i)).
LAGRANGE_BASIS_DISPLAY,
a MATLAB library which
displays the basis functions associated with a given set of nodes used
with the Lagrange interpolation scheme.
LAGRANGE_INTERP_2D,
a MATLAB library which
defines and evaluates the Lagrange polynomial p(x,y)
which interpolates a set of data depending on a 2D argument
that was evaluated on a product grid,
so that p(x(i),y(j)) = z(i,j).
LAGRANGE_INTERP_ND,
a MATLAB library which
defines and evaluates the Lagrange polynomial p(x)
which interpolates a set of data depending on a multidimensional argument x
that was evaluated on a product grid, so that p(x(i)) = z(i).
NEAREST_INTERP_1D,
a MATLAB library which
interpolates a set of data using a piecewise constant interpolant
defined by the nearest neighbor criterion.
PWL_INTERP_1D,
a MATLAB library which
interpolates a set of data using a piecewise linear interpolant.
R8LIB,
a MATLAB library which
contains many utility routines using double precision real (R8) arithmetic.
RBF_INTERP_1D,
a MATLAB library which
defines and evaluates radial basis function (RBF) interpolants to 1D data.
SHEPARD_INTERP_1D,
a MATLAB library which
defines and evaluates Shepard interpolants to 1D data,
which are based on inverse distance weighting.
SPLINE,
a MATLAB library which
constructs and evaluates spline interpolants and approximants.
TEST_INTERP_1D,
a MATLAB library which
defines test problems for interpolation of data y(x),
depending on a 2D argument.
VANDERMONDE_INTERP_1D,
a MATLAB library which
finds a polynomial interpolant to a function of 1D data
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:
Examples and Tests:
The test code requires the test_interp library for test01, and
test_interp_1d for test02 and test03. If these libraries are
available in a separate folder at the same "level",
then a Matlab command such as "addpath ( '../test_interp')" will make them
accessible for a run of the test program.
lagrange_interp_1d_test02() plots the data and Lagrange interpolant
for even spacing.
Images for Problem 1:
-
p01_dataeven_04.png,
a plot of the 4 node even data for problem p01;
-
p01_lageven_04.png,
a plot of the Lagrange/even 4 node
polynomial interpolant for problem p01;
-
p01_dataeven_08.png,
a plot of the 8 node even data for problem p01;
-
p01_lageven_08.png,
a plot of the Lagrange/even 8 node
polynomial interpolant for problem p01;
-
p01_dataeven_16.png,
a plot of the 16 node even data for problem p01;
-
p01_lageven_16.png,
a plot of the Lagrange/even 16 node
polynomial interpolant for problem p01;
-
p01_dataeven_32.png,
a plot of the 32 node even data for problem p01;
-
p01_lageven_32.png,
a plot of the Lagrange/even 32 node
polynomial interpolant for problem p01;
-
p01_dataeven_64.png,
a plot of the 64 node even data for problem p01;
-
p01_lageven_64.png,
a plot of the Lagrange/even 64 node
polynomial interpolant for problem p01;
Images for Problem p02:
-
p02_dataeven_04.png,
a plot of the 4 node even data for problem p02;
-
p02_lageven_04.png,
a plot of the Lagrange/even 4 node
polynomial interpolant for problem p02;
-
p02_dataeven_08.png,
a plot of the 8 node even data for problem p02;
-
p02_lageven_08.png,
a plot of the Lagrange/even 8 node
polynomial interpolant for problem p02;
-
p02_dataeven_16.png,
a plot of the 16 node even data for problem p02;
-
p02_lageven_16.png,
a plot of the Lagrange/even 16 node
polynomial interpolant for problem p02;
-
p02_dataeven_32.png,
a plot of the 32 node even data for problem p02;
-
p02_lageven_32.png,
a plot of the Lagrange/even 32 node
polynomial interpolant for problem p02;
-
p02_dataeven_64.png,
a plot of the 64 node even data for problem p02;
-
p02_lageven_64.png,
a plot of the Lagrange/even 64 node
polynomial interpolant for problem p02;
Images for problem p03:
-
p03_dataeven_04.png,
a plot of the 4 node even data for problem p03;
-
p03_lageven_04.png,
a plot of the Lagrange/even 4 node
polynomial interpolant for problem p03;
-
p03_dataeven_08.png,
a plot of the 8 node even data for problem p03;
-
p03_lageven_08.png,
a plot of the Lagrange/even 8 node
polynomial interpolant for problem p03;
-
p03_dataeven_16.png,
a plot of the 16 node even data for problem p03;
-
p03_lageven_16.png,
a plot of the Lagrange/even 16 node
polynomial interpolant for problem p03;
-
p03_dataeven_32.png,
a plot of the 32 node even data for problem p03;
-
p03_lageven_32.png,
a plot of the Lagrange/even 32 node
polynomial interpolant for problem p03;
-
p03_dataeven_64.png,
a plot of the 64 node even data for problem p03;
-
p03_lageven_64.png,
a plot of the Lagrange/even 64 node
polynomial interpolant for problem p03;
Images for problem p04:
-
p04_dataeven_04.png,
a plot of the 4 node even data for problem p04;
-
p04_lageven_04.png,
a plot of the Lagrange/even 4 node
polynomial interpolant for problem p04;
-
p04_dataeven_08.png,
a plot of the 8 node even data for problem p04;
-
p04_lageven_08.png,
a plot of the Lagrange/even 8 node
polynomial interpolant for problem p04;
-
p04_dataeven_16.png,
a plot of the 16 node even data for problem p04;
-
p04_lageven_16.png,
a plot of the Lagrange/even 16 node
polynomial interpolant for problem p04;
-
p04_dataeven_32.png,
a plot of the 32 node even data for problem p04;
-
p04_lageven_32.png,
a plot of the Lagrange/even 32 node
polynomial interpolant for problem p04;
-
p04_dataeven_64.png,
a plot of the 64 node even data for problem p04;
-
p04_lageven_64.png,
a plot of the Lagrange/even 64 node
polynomial interpolant for problem p04;
Images for problem p05:
-
p05_dataeven_04.png,
a plot of the 4 node even data for problem p05;
-
p05_lageven_04.png,
a plot of the Lagrange/even 4 node
polynomial interpolant for problem p05;
-
p05_dataeven_08.png,
a plot of the 8 node even data for problem p05;
-
p05_lageven_08.png,
a plot of the Lagrange/even 8 node
polynomial interpolant for problem p05;
-
p05_dataeven_16.png,
a plot of the 16 node even data for problem p05;
-
p05_lageven_16.png,
a plot of the Lagrange/even 16 node
polynomial interpolant for problem p05;
-
p05_dataeven_32.png,
a plot of the 32 node even data for problem p05;
-
p05_lageven_32.png,
a plot of the Lagrange/even 32 node
polynomial interpolant for problem p05;
-
p05_dataeven_64.png,
a plot of the 64 node even data for problem p05;
-
p05_lageven_64.png,
a plot of the Lagrange/even 64 node
polynomial interpolant for problem p05;
Images for problem p06:
-
p06_dataeven_04.png,
a plot of the 4 node even data for problem p06;
-
p06_lageven_04.png,
a plot of the Lagrange/even 4 node
polynomial interpolant for problem p06;
-
p06_dataeven_08.png,
a plot of the 8 node even data for problem p06;
-
p06_lageven_08.png,
a plot of the Lagrange/even 8 node
polynomial interpolant for problem p06;
-
p06_dataeven_16.png,
a plot of the 16 node even data for problem p06;
-
p06_lageven_16.png,
a plot of the Lagrange/even 16 node
polynomial interpolant for problem p06;
-
p06_dataeven_32.png,
a plot of the 32 node even data for problem p06;
-
p06_lageven_32.png,
a plot of the Lagrange/even 32 node
polynomial interpolant for problem p06;
-
p06_dataeven_64.png,
a plot of the 64 node even data for problem p06;
-
p06_lageven_64.png,
a plot of the Lagrange/even 64 node
polynomial interpolant for problem p06;
Images for problem p07:
-
p07_dataeven_04.png,
a plot of the 4 node even data for problem p07;
-
p07_lageven_04.png,
a plot of the Lagrange/even 4 node
polynomial interpolant for problem p07;
-
p07_dataeven_08.png,
a plot of the 8 node even data for problem p07;
-
p07_lageven_08.png,
a plot of the Lagrange/even 8 node
polynomial interpolant for problem p07;
-
p07_dataeven_16.png,
a plot of the 16 node even data for problem p07;
-
p07_lageven_16.png,
a plot of the Lagrange/even 16 node
polynomial interpolant for problem p07;
-
p07_dataeven_32.png,
a plot of the 32 node even data for problem p07;
-
p07_lageven_32.png,
a plot of the Lagrange/even 32 node
polynomial interpolant for problem p07;
-
p07_dataeven_64.png,
a plot of the 64 node even data for problem p07;
-
p07_lageven_64.png,
a plot of the Lagrange/even 64 node
polynomial interpolant for problem p07;
Images for problem p08:
-
p08_dataeven_04.png,
a plot of the 4 node even data for problem p08;
-
p08_lageven_04.png,
a plot of the Lagrange/even 4 node
polynomial interpolant for problem p08;
-
p08_dataeven_08.png,
a plot of the 8 node even data for problem p08;
-
p08_lageven_08.png,
a plot of the Lagrange/even 8 node
polynomial interpolant for problem p08;
-
p08_dataeven_16.png,
a plot of the 16 node even data for problem p08;
-
p08_lageven_16.png,
a plot of the Lagrange/even 16 node
polynomial interpolant for problem p08;
-
p08_dataeven_32.png,
a plot of the 32 node even data for problem p08;
-
p08_lageven_32.png,
a plot of the Lagrange/even 32 node
polynomial interpolant for problem p08;
-
p08_dataeven_64.png,
a plot of the 64 node even data for problem p08;
-
p08_lageven_64.png,
a plot of the Lagrange/even 64 node
polynomial interpolant for problem p08;
lagrange_interp_1d_test03() plots the data and Lagrange interpolant
for Chebyshev spacing.
-
p01_datacheby_04.png,
a plot of the 4 node Chebyshev data for problem p01;
-
p01_lagcheby_04.png,
a plot of the Lagrange/Chebyshev 4 node
polynomial interpolant for problem p01;
-
p01_datacheby_08.png,
a plot of the 8 node Chebyshev data for problem p01;
-
p01_lagcheby_08.png,
a plot of the Lagrange/Chebyshev 8 node
polynomial interpolant for problem p01;
-
p01_datacheby_16.png,
a plot of the 16 node Chebyshev data for problem p01;
-
p01_lagcheby_16.png,
a plot of the Lagrange/Chebyshev 16 node
polynomial interpolant for problem p01;
-
p01_datacheby_32.png,
a plot of the 32 node Chebyshev data for problem p01;
-
p01_lagcheby_32.png,
a plot of the Lagrange/Chebyshev 32 node
polynomial interpolant for problem p01;
-
p01_datacheby_64.png,
a plot of the 64 node Chebyshev data for problem p01;
-
p01_lagcheby_64.png,
a plot of the Lagrange/Chebyshev 64 node
polynomial interpolant for problem p01;
You can go up one level to
the MATLAB source codes.
Last modified on 31 July 2012.