Vandermonde matrix #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines the vandermonde
matrix and gives its determinant.
Main definitions #
vandermonde v
: a square matrix with thei, j
th entry equal tov i ^ j
.
Main results #
det_vandermonde
:det (vandermonde v)
is the product ofv i - v j
, where(i, j)
ranges over the unordered pairs.
theorem
matrix.vandermonde_mul_vandermonde_transpose
{R : Type u_1}
[comm_ring R]
{n : ℕ}
(v w : fin n → R)
(i j : fin n) :
(matrix.vandermonde v).mul (matrix.vandermonde w).transpose i j = finset.univ.sum (λ (k : fin n), (v i * w j) ^ ↑k)
theorem
matrix.vandermonde_transpose_mul_vandermonde
{R : Type u_1}
[comm_ring R]
{n : ℕ}
(v : fin n → R)
(i j : fin n) :
(matrix.vandermonde v).transpose.mul (matrix.vandermonde v) i j = finset.univ.sum (λ (k : fin n), v k ^ (↑i + ↑j))
theorem
matrix.det_vandermonde
{R : Type u_1}
[comm_ring R]
{n : ℕ}
(v : fin n → R) :
(matrix.vandermonde v).det = finset.univ.prod (λ (i : fin n), (finset.Ioi i).prod (λ (j : fin n), v j - v i))
theorem
matrix.det_vandermonde_ne_zero_iff
{R : Type u_1}
[comm_ring R]
[is_domain R]
{n : ℕ}
{v : fin n → R} :
(matrix.vandermonde v).det ≠ 0 ↔ function.injective v