Nearest Neighbor Interpolation in 1D

**NEAREST_INTERP_1D**
is a Python library which
interpolates a set of data using a piecewise constant interpolant
defined by the nearest neighbor criterion.

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

**NEAREST_INTERP_1D** is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version and
a Python version.

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).

NEWTON_INTERP_1D, a Python library which finds a polynomial interpolant to data using Newton divided differences.

PWL_INTERP_1D, a Python library which interpolates a set of data using a piecewise linear function.

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, based on inverse distance weighting.

TEST_INTERP, a Python library which defines a number of test problems for interpolation, provided as a set of (x,y) data.

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.

- nearest_interp_1d.m, evaluates the nearest neighbor interpolant.
- p00_data.py, returns the data for any problem.
- p00_data_num.py, returns the number of data points 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.
- r8vec2_print.py, prints a pair of R8VEC's.
- timestamp.py, prints the YMDHMS date as a timestamp.

The test code requires the **test_interp** library as well.

- nearest_interp_1d.sh, runs all the tests;
- nearest_interp_1d.txt, the output file.

**nearest_interp_1d_test01()** plots a piecewise linear interpolant to
the original data, and the nearest neighbor interpolant.

- p01_pwl.png, a plot of the data and piecewise linear interpolant for problem p01;
- p01_near.png, a plot of the nearest neighbor interpolant for problem p01;
- p02_pwl.png, a plot of the data and piecewise linear interpolant for problem p02;
- p02_near.png, a plot of the nearest neighbor interpolant for problem p02;
- p03_pwl.png, a plot of the data and piecewise linear interpolant for problem p03;
- p03_near.png, a plot of the nearest neighbor interpolant for problem p03;
- p04_pwl.png, a plot of the data and piecewise linear interpolant for problem p04;
- p04_near.png, a plot of the nearest neighbor interpolant for problem p04;
- p05_pwl.png, a plot of the data and piecewise linear interpolant for problem p05;
- p05_near.png, a plot of the nearest neighbor interpolant for problem p05;
- p06_pwl.png, a plot of the data and piecewise linear interpolant for problem p06;
- p06_near.png, a plot of the nearest neighbor interpolant for problem p06;
- p07_pwl.png, a plot of the data and piecewise linear interpolant for problem p07;
- p07_near.png, a plot of the nearest neighbor interpolant for problem p07;
- p08_pwl.png, a plot of the data and piecewise linear interpolant for problem p08;
- p08_near.png, a plot of the nearest neighbor interpolant for problem p08;

You can go up one level to the Python source codes.