Skip to main content
Try out the RareSkills ZK AI Tutor!
Last updated on Nov 12, 2025

A Vandermonde matrix is a matrix that converts a polynomial from its coefficient representation into its value representation at a set of points.

For a polynomial f(x)=a0+a1x+a2x2+⋯+ak−1xk−1 with its coefficient representation:

𝐚=[a0a1a2⋮ak−1]

The Vandermonde matrix evaluates it at k distinct points as a single operation.

Evaluating a polynomial as a matrix product

For simplicity, we assume k=4, then we have a polynomial of degree k−1=3.

Evaluation at single point

The evaluation of polynomial f(x) at the point x0 is:

f(x0)=a0+a1⋅x0+a2⋅x02+a3⋅x03

This can be written as matrix product: multiplying a 1×4 matrix containing the successive powers of x0 by the vector of polynomial coefficients, as follows:

[f(x0)]=[1x01x02x03]⋅[a0a1a2a3]

Evaluation at two points

To evaluate at two points, x0 and x1, we could express these as two separate matrix products. Instead, we stack these row vectors into a 2×4 matrix:

[f(x0)f(x1)]=[1x01x02x031x11x12x13]⋅[a0a1a2a3]

Where each row contains the successive powers of x0 and x1, respectively.

Therefore, evaluating the polynomial at two points is equivalent to multiplying a 2×k=2×4 matrix by the coefficient vector.

Evaluation at 4 points

If we extend our points to 4 points, then with k=4 (already assumed), the resulting system of equations is equivalent to multiplying a k×k=4×4 matrix by the vector of coefficients:

[f(x0)f(x1)f(x2)f(x3)]=[1x0x02x031x1x12x131x2x22x231x3x32x33]⋅[a0a1a2a3]

This matrix is called a 4×4 Vandermonde matrix and is denoted by 𝐕.

The equation above is compactly written below as

𝐩=𝐕⋅𝐚

where 𝐚 is the vector of the polynomial’s coefficients and 𝐩 is the vector of its point values.

Evaluating the polynomial at the 4th roots of unity as a matrix product

Now, consider evaluating the polynomial f(x) at the 4th roots of unity, {ω0,ω1,ω2,ω3}, instead of at arbitrary 4 points. We get the Vandermonde matrix 𝐕 as:

𝐕=[11112131ωω2ω31(ω2)(ω2)2(ω2)31(ω3)(ω3)2(ω3)3]

We can simplify every term that is ωk2 or greater, by leveraging the properties that ωk2=ω2=−1 and ωk=1 as follows:

  • ω2≡−1 imply that (ω2)2≡(−1)2=1 and (ω2)3≡(−1)3=−1.
  • ω3=ω2⋅ω≡−1⋅ω=−ω imply that:
    • (ω3)2≡(−ω)2=ω2≡−1 and
    • (ω3)3≡(−ω)3=−ω3=−(−ω)=ω.

We now substitute these simplifications into the matrix:

𝐕=[11112131ωω2≡−1ω3≡−ω1(ω2)≡−1(ω2)2≡1(ω2)3≡−11(ω3)≡−ω(ω3)2≡−1(ω3)3≡ω]

Therefore, the matrix simplifies to the following pattern:

𝐕=[11111ω−1−ω1−11−11−ω−1ω]

For a concrete example, ω=13 is a primitive 4th root of unity in the finite field 𝔽17 (where arithmetic is modulo 17), and the Vandermonde matrix is:

𝐕=[1111113164116116141613]

Conclusion

Evaluating a polynomial of degree k−1 at k points is equivalent to multiplying a k×k Vandermonde 𝐕 matrix by the coefficient vector 𝐚, formalized by the equation 𝐕⋅𝐚=𝐩.