pwl_approx_1d, a FORTRAN90 code which defines and evaluates a piecewise linear function, using NC "control points", which approximates a set of ND data points (x(i),y(i)).
The code needs access to the QR_SOLVE and R8LIB libraries. The test code also needs access to the TEST_INTERP_1D library.
The computer code and data files described and made available on this web page are distributed under the MIT license
pwl_approx_1d is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version.
LAGRANGE_APPROX_1D, a FORTRAN90 code which defines and evaluates the Lagrange polynomial p(x) of degree m which approximates a set of nd data points (x(i),y(i)).
PWL_INTERP_1D, a FORTRAN90 code which interpolates a set of data using a piecewise linear function.
QR_SOLVE, a FORTRAN90 code which computes the least squares solution of a linear system A*x=b.
R8LIB, a FORTRAN90 code which contains many utility routines using double precision real (R8) arithmetic.
SPLINE, a FORTRAN90 code which constructs and evaluates spline interpolants and approximants.
TEST_APPROX, a FORTRAN90 code which defines test problems for approximation, provided as a set of (x,y) data.
TEST_INTERP_1D, a FORTRAN90 code which defines test problems for interpolation of data y(x), depending on a 2D argument.
VANDERMONDE_APPROX_1D, a FORTRAN90 code which finds a polynomial approximant to data of a 1D argument by setting up and solving an overdetermined linear system for the polynomial coefficients, involving the Vandermonde matrix.