vandermonde a C++ code which implements the Bjork-Pereyra algorithm for accurate solution of linear systems involving the Vandermonde matrix.
A univariate NxN Vandermonde matrix is defined by a parameter vector ALPHA of N distinct real values, and has the form:
1 1 ... 1 alpha1 alpha2 ... alphan alpha1^2 alpha2^2 ... alphan^2 ... ... ... ... alpha1^(n-1) alpha2^(n-1) ... alphan^(n-1)
If p(x) is a polynomial of degree N-1, which is required to interpolate a function f(x) at N distinct points ALPHA, then the coefficients C of the polynomial can be found from the interpolation equations, which can be written as a linear system involving a transposed Vandermonde matrix:
1 alpha1 alpha1^2 ... alpha1^(n-1) c0 f(alpha1) 1 alpha2 alpha2^2 ... alpha2^(n-1) c1 f(alpha2) ... ... ... ... ... ... = ... 1 alphan alphan^2 ... alphan^(n-1) c(n-1) f(alphan)
The computer code and data files made available on this web page are distributed under the MIT license
vandermonde is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version.
QUADRATURE_WEIGHTS_VANDERMONDE, a C++ code which computes the weights of a quadrature rule using the Vandermonde matrix, assuming that the points have been specified.
TEST_MAT, a C++ code which defines test matrices for which some of the determinant, eigenvalues, inverse, null vectors, P*L*U factorization or linear system solution are already known, including the Vandermonde matrix.
VANDERMONDE_APPROX_1D, a C++ 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.
VANDERMONDE_APPROX_2D, a C++ code which finds a polynomial approximant p(x,y) to data z(x,y) of a 2D argument by setting up and solving an overdetermined linear system for the polynomial coefficients involving the Vandermonde matrix.
VANDERMONDE_INTERP_1D, a C++ code 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.
VANDERMONDE_INTERP_2D, a C++ code which finds a polynomial interpolant to data z(x,y) of a 2D argument by setting up and solving a linear system for the polynomial coefficients, involving the Vandermonde matrix.