Last updated on Nov 12, 2025
范德蒙德矩阵(Vandermonde matrix)是一种将多项式从其系数表示法转换为在一组点上的值表示法的矩阵。
对于多项式 f(x)=a0+a1x+a2x2+⋯+ak−1xk−1,其系数表示法为:
a=a0a1a2⋮ak−1
范德蒙德矩阵通过单次运算即可计算该多项式在 k 个不同点上的求值。
将多项式求值表示为矩阵乘积
为了简单起见,我们假设 k=4,那么我们有一个次数为 k−1=3 的多项式。
在单点上求值
多项式 f(x) 在点 x0 处的求值为:
f(x0)=a0+a1⋅x0+a2⋅x02+a3⋅x03
这可以写成矩阵乘积:将包含 x0 连续幂的 1×4 矩阵乘以多项式系数向量,如下所示:
[f(x0)]=[1x01x02x03]⋅a0a1a2a3
在两个点上求值
为了在 x0 和 x1 两个点上求值,我们可以将它们表示为两个独立的矩阵乘积。不过,我们可以将这些行向量堆叠成一个 2×4 矩阵:
[f(x0)f(x1)]=[11x01x11x02x12x03x13]⋅a0a1a2a3
其中每一行分别包含 x0 和 x1 的连续幂。
因此,在两个点上对多项式求值等价于将一个 2×k=2×4 矩阵乘以系数向量。
在 4 个点上求值
如果我们将点扩展到 4 个点,在假设 k=4 的情况下,所得到的方程组等价于将一个 k×k=4×4 矩阵乘以系数向量:
f(x0)f(x1)f(x2)f(x3)=1111x0x1x2x3x02x12x22x32x03x13x23x33⋅a0a1a2a3
这个矩阵被称为 4×4 的范德蒙德矩阵,记作 V。
上面的等式可以简写为以下形式:
p=V⋅a
其中 a 是多项式的系数向量,p 是其点值向量。
在 4 次单位根上将多项式求值表示为矩阵乘积
现在,考虑在 4 次单位根 {ω0,ω1,ω2,ω3} 上对多项式 f(x) 求值,而不是在任意的 4 个点上。我们得到的范德蒙德矩阵 V 如下:
V=111111ω(ω2)(ω3)12ω2(ω2)2(ω3)213ω3(ω2)3(ω3)3
我们可以利用 ω2k=ω2=−1 和 ωk=1 的性质,化简大于等于 ω2k 的每一项,如下所示:
- ω2≡−1 意味着 (ω2)2≡(−1)2=1 且 (ω2)3≡(−1)3=−1。
- ω3=ω2⋅ω≡−1⋅ω=−ω 意味着:
- (ω3)2≡(−ω)2=ω2≡−1 且
- (ω3)3≡(−ω)3=−ω3=−(−ω)=ω。
我们现在将这些化简结果代入矩阵中:
V=111111ω(ω2)≡−1(ω3)≡−ω12ω2≡−1(ω2)2≡1(ω3)2≡−113ω3≡−ω(ω2)3≡−1(ω3)3≡ω
因此,该矩阵化简为以下模式:
V=11111ω−1−ω1−11−11−ω−1ω
举个具体的例子,ω=13 是有限域 F17(其算术运算为模 17)中的本原 4 次单位根,此时范德蒙德矩阵为:
V=1111113164116116141613
结论
在一个 k−1 次多项式的 k 个点上求值,等价于将一个 k×k 范德蒙德矩阵 V 乘以系数向量 a,该过程可以用公式 V⋅a=p 进行形式化表示。