# VANDERMONDE Accurate Solution of Vandermonde Systems

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

### Languages:

VANDERMONDE is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version.

### Related Data and Programs:

QUADRATURE_WEIGHTS_VANDERMONDE, a C++ library which computes the weights of a quadrature rule using the Vandermonde matrix, assuming that the points have been specified.

TEST_MAT, a C++ library 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++ library 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++ library 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++ 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.

VANDERMONDE_INTERP_2D, a C++ library 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.

### Reference:

1. Ake Bjorck, Victor Pereyra,
Solution of Vandermonde Systems of Equations,
Mathematics of Computation,
Volume 24, Number 112, October 1970, pages 893-903.
2. Gustavo Galimberti, Victor Pereyra,
Numerical Differentiation and the Solution of Multidimensional Vandermonde Systems,
Mathematics of Computation,
Volume 24, Number 110, April 1970, pages 357-364.
3. Nicholas Higham,
Stability analysis of algorithms for solving confluent Vandermonde-like systems,
SIAM Journal on Matrix Analysis and Applications,
Volume 11, 1990, pages 23-41.

### Source Code:

Last revised on 09 April 2020.
{"ft_lang_label":"__label__en","ft_lang_prob":0.8077369,"math_prob":0.98664206,"size":2358,"snap":"2021-43-2021-49","text_gpt3_token_len":600,"char_repetition_ratio":0.15675446,"word_repetition_ratio":0.22535211,"special_character_ratio":0.24300255,"punctuation_ratio":0.18831168,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.9966843,"pos_list":[0],"im_url_duplicate_count":[null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2021-10-19T12:15:33Z\",\"WARC-Record-ID\":\"<urn:uuid:a88dcbb7-ad91-4013-9114-a223a8408595>\",\"Content-Length\":\"6336\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:e5ec3802-28d4-4350-910f-ed96465a0de4>\",\"WARC-Concurrent-To\":\"<urn:uuid:b626551a-b00d-4e79-83d8-d0ba2c38ed4b>\",\"WARC-IP-Address\":\"144.174.16.102\",\"WARC-Target-URI\":\"https://people.sc.fsu.edu/~jburkardt/cpp_src/vandermonde/vandermonde.html\",\"WARC-Payload-Digest\":\"sha1:X3GKHIZQSRHO75D4AHWJX3E3SFUFIJ6L\",\"WARC-Block-Digest\":\"sha1:ZDDMUDW2RUNPHMGURVNCZT3UQOJOLQNE\",\"WARC-Identified-Payload-Type\":\"text/html\",\"warc_filename\":\"/cc_download/warc_2021/CC-MAIN-2021-43/CC-MAIN-2021-43_segments_1634323585265.67_warc_CC-MAIN-20211019105138-20211019135138-00633.warc.gz\"}"}