范德蒙德行列式
范德蒙德行列式Vandermonde determinant,是考研热门,但是不会直接考范德蒙德行列式,一般都是对其进行一些变形再拿出来考。要说实际应用的话,在工程中确实没什么用,因为实际工作中哪有这么理想这么优雅的矩阵呢?
好了,闲话少说,范德蒙德行列式是以下矩阵的行列式,另外它还有个德尔塔符号:
Δ
(
x
1
,
x
2
,
⋯
,
x
n
)
=
∣
1
1
⋯
1
1
x
1
x
2
⋯
x
n
−
1
x
n
x
1
2
x
2
2
⋯
x
n
−
1
2
x
n
2
⋮
⋮
⋱
⋮
⋮
x
1
n
−
1
x
2
n
−
1
⋯
x
n
−
1
n
−
1
x
n
n
−
1
∣
\Delta(x_1,x_2,\cdots,x_n)= \begin{vmatrix} 1 & 1 & \cdots & 1 & 1\\ x_1 & x_2 & \cdots & x_{n-1} & x_n\\ x_1^2 & x_2^2 & \cdots & x_{n-1}^2 & x_n^2\\ \vdots & \vdots & \ddots & \vdots & \vdots \\ x_1^{n-1} & x_2^{n-1} & \cdots & x_{n-1}^{n-1} & x_n^{n-1}\\ \end{vmatrix}
Δ(x1,x2,⋯,xn)=
1x1x12⋮x1n−11x2x22⋮x2n−1⋯⋯⋯⋱⋯1xn−1xn−12⋮xn−1n−11xnxn2⋮xnn−1
这个行列式的结果是什么呢?结果是所有组合的差(右边元素减去左边元素)的乘积,用数学语言就是:
∏
1
≤
i
<
j
≤
n
(
a
j
−
a
i
)
\prod_{1\le i \lt j \le n}(a_j-a_i)
1≤i<j≤n∏(aj−ai)
怎么证明呢?我们可以学习了五种计算行列式的算法啊!难道这五种都不行吗?先按顺序来说吧。先想想定义法行不行呢?硬要说行,那肯定行,按照定义,穷举所有组合,然后因式分解,但是工作量太大了。那么Chió算法行不行呢?可以,非常合适!那么我讲讲思路。
Chió算法证明
比如n阶的范德蒙德行列式缩小一阶后变成了这样:
Δ
(
x
1
,
x
2
,
⋯
,
x
n
)
=
1
1
n
−
2
∣
∣
1
x
1
1
x
2
∣
∣
1
x
1
2
1
x
2
2
∣
⋯
∣
1
x
1
n
−
1
1
x
2
n
−
1
∣
∣
1
x
1
1
x
3
∣
∣
1
x
1
2
1
x
3
2
∣
⋯
∣
1
x
1
n
−
1
1
x
n
n
−
1
∣
⋮
⋮
⋱
⋮
∣
1
x
1
1
x
n
∣
∣
1
x
1
2
1
x
n
2
∣
⋯
∣
1
x
1
n
−
1
1
x
n
n
−
1
∣
∣
=
∣
−
x
1
+
x
2
−
x
1
2
+
x
2
2
⋯
−
x
1
n
−
1
+
x
2
n
−
1
−
x
1
+
x
3
−
x
1
2
+
x
3
2
⋯
−
x
1
n
−
1
+
x
3
n
−
1
⋮
⋮
⋱
⋮
−
x
1
+
x
n
−
x
1
2
+
x
n
2
⋯
−
x
1
n
−
1
+
x
n
n
−
1
∣
=
∣
x
2
−
x
1
x
2
2
−
x
1
2
⋯
x
2
n
−
1
−
x
1
n
−
1
x
3
−
x
1
x
3
2
−
x
1
2
⋯
x
3
n
−
1
−
x
1
n
−
1
⋮
⋮
⋱
⋮
x
n
−
x
1
x
n
2
−
x
1
2
⋯
x
n
n
−
1
−
x
1
n
−
1
∣
\Delta(x_1,x_2,\cdots,x_n)=\frac{1}{ 1 ^{n-2}} \begin{vmatrix} \begin{vmatrix}1 & x_1\\ 1 & x_2 \end{vmatrix} & \begin{vmatrix}1 & x_1^2\\ 1&x_2^2\end{vmatrix}& \cdots & \begin{vmatrix}1 & x_1^{n-1}\\ 1&x_2^{n-1}\end{vmatrix}\\ \begin{vmatrix}1 & x_1\\ 1&x_3\end{vmatrix} & \begin{vmatrix}1 & x_1^2\\ 1&x_3^2\end{vmatrix} & \cdots & \begin{vmatrix}1 & x_1^{n-1}\\ 1&x_n^{n-1}\end{vmatrix}\\ \vdots & \vdots & \ddots & \vdots &\\ \begin{vmatrix}1 & x_1\\ 1&x_{n}\end{vmatrix} & \begin{vmatrix}1 & x_1^2\\ 1&x_{n}^2\end{vmatrix} & \cdots & \begin{vmatrix}1 & x_1^{n-1}\\ 1&x_{n}^{n-1}\end{vmatrix}\\ \end{vmatrix}\\= \begin{vmatrix} -x_1 + x_2 & -x_1^2 + x_2^2 &\cdots & -x_1^{n-1} + x_2^{n-1}\\ -x_1 + x_3 & -x_1^2 + x_3^2 & \cdots &-x_1^{n-1} + x_3^{n-1}\\ \vdots & \vdots & \ddots & \vdots \\ -x_1 + x_n & -x_1^2 + x_n^2 &\cdots & -x_1^{n-1} + x_n^{n-1}\\ \end{vmatrix}\\= \begin{vmatrix} x_2-x_1 & x_2^2 -x_1^2 &\cdots &x_2^{n-1} -x_1^{n-1} \\ x_3-x_1 & x_3^2-x_1^2 &\cdots & x_3^{n-1}-x_1^{n-1} \\ \vdots & \vdots & \ddots & \vdots \\ x_n-x_1 & x_n^ 2-x_1^2 & \cdots & x_n^{n-1}-x_1^{n-1} \\ \end{vmatrix}
Δ(x1,x2,⋯,xn)=1n−21
11x1x2
11x1x3
⋮
11x1xn
11x12x22
11x12x32
⋮
11x12xn2
⋯⋯⋱⋯
11x1n−1x2n−1
11x1n−1xnn−1
⋮
11x1n−1xnn−1
=
−x1+x2−x1+x3⋮−x1+xn−x12+x22−x12+x32⋮−x12+xn2⋯⋯⋱⋯−x1n−1+x2n−1−x1n−1+x3n−1⋮−x1n−1+xnn−1
=
x2−x1x3−x1⋮xn−x1x22−x12x32−x12⋮xn2−x12⋯⋯⋱⋯x2n−1−x1n−1x3n−1−x1n−1⋮xnn−1−x1n−1
这个时候别再傻不啦叽地继续Chio了,该用高斯消元提取公共元素了,所以上面就可以变成:
∣
x
2
−
x
1
x
2
2
−
x
1
2
⋯
x
2
n
−
1
−
x
1
n
−
1
x
3
−
x
1
x
3
2
−
x
1
2
⋯
x
3
n
−
1
−
x
1
n
−
1
⋮
⋮
⋱
⋮
x
n
−
x
1
x
n
2
−
x
1
2
⋯
x
n
n
−
1
−
x
1
n
−
1
∣
=
(
x
2
−
x
1
)
(
x
3
−
x
1
)
⋯
(
x
n
−
x
1
)
∣
1
x
2
+
x
1
⋯
x
2
n
−
2
+
x
2
n
−
3
x
1
+
⋯
+
x
2
x
1
n
−
3
+
x
1
n
−
2
1
x
3
+
x
1
⋯
x
3
n
−
2
+
x
3
n
−
3
x
1
+
⋯
+
x
3
x
1
n
−
3
+
x
1
n
−
2
⋮
⋮
⋱
⋮
1
x
n
+
x
1
⋯
x
n
n
−
2
+
x
n
n
−
3
x
1
+
⋯
+
x
n
x
1
n
−
3
+
x
1
n
−
2
∣
=
∏
i
=
2
n
(
x
i
−
x
1
)
∣
1
x
2
+
x
1
⋯
∑
k
=
0
n
−
2
x
2
n
−
2
−
k
x
i
k
1
x
3
+
x
1
⋯
∑
k
=
0
n
−
2
x
3
n
−
2
−
k
x
i
k
⋮
⋮
⋱
⋮
1
x
n
+
x
1
⋯
∑
k
=
0
n
−
2
x
n
n
−
2
−
k
x
i
k
∣
\begin{vmatrix} x_2-x_1 & x_2^2 -x_1^2 &\cdots &x_2^{n-1} -x_1^{n-1} \\ x_3-x_1 & x_3^2-x_1^2 & \cdots & x_3^{n-1}-x_1^{n-1} \\ \vdots & \vdots & \ddots & \vdots \\ x_n-x_1 & x_n^ 2-x_1^2 & \cdots & x_n^{n-1}-x_1^{n-1} \\ \end{vmatrix}\\=(x_2-x_1)(x_3-x_1)\cdots(x_n-x_1) \begin{vmatrix} 1 & x_2+x_1 & \cdots & x_2^{n-2} +x_2^{n-3}x_1+\cdots +x_2x_1^{n-3}+x_1^{n-2}\\ 1 & x_3+x_1 & \cdots & x_3^{n-2} +x_3^{n-3}x_1+\cdots +x_3x_1^{n-3}+x_1^{n-2} \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_n+x_1 & \cdots & x_n^{n-2} +x_n^{n-3}x_1+\cdots +x_nx_1^{n-3}+x_1^{n-2} \\ \end{vmatrix}\\=\prod_{i=2}^n(x_i-x_1) \begin{vmatrix} 1 & x_2+x_1 & \cdots & \sum_{k=0}^{n-2}{x_2^{n-2-k}x_i^k}\\ 1 & x_3+x_1 & \cdots & \sum_{k=0}^{n-2}{x_3^{n-2-k}x_i^k} \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_n+x_1 & \cdots & \sum_{k=0}^{n-2}{x_n^{n-2-k}x_i^k} \\ \end{vmatrix}
x2−x1x3−x1⋮xn−x1x22−x12x32−x12⋮xn2−x12⋯⋯⋱⋯x2n−1−x1n−1x3n−1−x1n−1⋮xnn−1−x1n−1
=(x2−x1)(x3−x1)⋯(xn−x1)
11⋮1x2+x1x3+x1⋮xn+x1⋯⋯⋱⋯x2n−2+x2n−3x1+⋯+x2x1n−3+x1n−2x3n−2+x3n−3x1+⋯+x3x1n−3+x1n−2⋮xnn−2+xnn−3x1+⋯+xnx1n−3+x1n−2
=i=2∏n(xi−x1)
11⋮1x2+x1x3+x1⋮xn+x1⋯⋯⋱⋯∑k=0n−2x2n−2−kxik∑k=0n−2x3n−2−kxik⋮∑k=0n−2xnn−2−kxik
这个时候,就需要用到行列式转置后行列式不变的的性质了。将右边改一下:
∣
1
x
2
+
x
1
⋯
∑
k
=
0
n
−
2
x
2
n
−
2
−
k
x
i
k
1
x
3
+
x
1
⋯
∑
k
=
0
n
−
2
x
3
n
−
2
−
k
x
i
k
⋮
⋮
⋱
⋮
1
x
n
+
x
1
⋯
∑
k
=
0
n
−
2
x
n
n
−
2
−
k
x
i
k
∣
=
∣
1
1
⋯
1
x
2
+
x
1
x
3
+
x
1
⋯
x
n
+
x
1
⋮
⋮
⋱
⋮
∑
k
=
0
n
−
2
x
2
n
−
2
−
k
x
i
k
∑
k
=
0
n
−
2
x
3
n
−
2
−
k
x
i
k
⋯
∑
k
=
0
n
−
2
x
n
n
−
2
−
k
x
i
k
∣
\begin{vmatrix} 1 & x_2+x_1 & \cdots & \sum_{k=0}^{n-2}{x_2^{n-2-k}x_i^k}\\ 1 & x_3+x_1 & \cdots & \sum_{k=0}^{n-2}{x_3^{n-2-k}x_i^k} \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_n+x_1 & \cdots & \sum_{k=0}^{n-2}{x_n^{n-2-k}x_i^k} \\ \end{vmatrix}\\= \begin{vmatrix} 1 & 1 & \cdots &1 \\ x_2+x_1& x_3+x_1 & \cdots & x_n+x_1\\ \vdots & \vdots & \ddots & \vdots \\ \sum_{k=0}^{n-2}{x_2^{n-2-k}x_i^k} &\sum_{k=0}^{n-2}{x_3^{n-2-k}x_i^k} & \cdots & \sum_{k=0}^{n-2}{x_n^{n-2-k}x_i^k} \end{vmatrix}
11⋮1x2+x1x3+x1⋮xn+x1⋯⋯⋱⋯∑k=0n−2x2n−2−kxik∑k=0n−2x3n−2−kxik⋮∑k=0n−2xnn−2−kxik
=
1x2+x1⋮∑k=0n−2x2n−2−kxik1x3+x1⋮∑k=0n−2x3n−2−kxik⋯⋯⋱⋯1xn+x1⋮∑k=0n−2xnn−2−kxik
再使用初等行变换,就是第一行乘以
−
x
1
-x_1
−x1加到第二行,所以就变成了:
∣
1
1
⋯
1
x
2
x
3
⋯
x
n
⋮
⋮
⋱
⋮
∑
k
=
0
n
−
2
x
2
n
−
2
−
k
x
i
k
∑
k
=
0
n
−
2
x
3
n
−
2
−
k
x
i
k
⋯
∑
k
=
0
n
−
2
x
n
n
−
2
−
k
x
i
k
∣
\begin{vmatrix} 1 & 1 & \cdots &1 \\ x_2& x_3 & \cdots & x_n\\ \vdots & \vdots & \ddots & \vdots \\ \sum_{k=0}^{n-2}{x_2^{n-2-k}x_i^k} &\sum_{k=0}^{n-2}{x_3^{n-2-k}x_i^k} & \cdots & \sum_{k=0}^{n-2}{x_n^{n-2-k}x_i^k} \end{vmatrix}
1x2⋮∑k=0n−2x2n−2−kxik1x3⋮∑k=0n−2x3n−2−kxik⋯⋯⋱⋯1xn⋮∑k=0n−2xnn−2−kxik
第一行乘以
−
x
1
2
-x_1^2
−x12加到第3行,第一行乘以
−
x
1
3
-x_1^3
−x13加到第4行,以此类推,就变成了:
∣
1
1
⋯
1
x
2
x
3
⋯
x
n
⋮
⋮
⋱
⋮
∑
k
=
0
n
−
3
x
2
n
−
2
−
k
x
i
k
∑
k
=
0
n
−
3
x
3
n
−
2
−
k
x
i
k
⋯
∑
k
=
0
n
−
3
x
n
n
−
2
−
k
x
i
k
∣
\begin{vmatrix} 1 & 1 & \cdots &1 \\ x_2& x_3 & \cdots & x_n\\ \vdots & \vdots & \ddots & \vdots \\ \sum_{k=0}^{n-3}{x_2^{n-2-k}x_i^k} &\sum_{k=0}^{n-3}{x_3^{n-2-k}x_i^k} & \cdots & \sum_{k=0}^{n-3}{x_n^{n-2-k}x_i^k} \end{vmatrix}
1x2⋮∑k=0n−3x2n−2−kxik1x3⋮∑k=0n−3x3n−2−kxik⋯⋯⋱⋯1xn⋮∑k=0n−3xnn−2−kxik
然后第二行乘以
−
x
1
-x_1
−x1加到第三行,第二行乘以
−
x
1
2
-x_1^2
−x12加到第四行就变成了:
∣
1
1
1
x
2
x
3
⋯
x
n
x
2
2
x
3
2
⋯
x
n
2
⋮
⋮
⋱
⋮
∑
k
=
0
n
−
4
x
2
n
−
2
−
k
x
i
k
∑
k
=
0
n
−
4
x
3
n
−
2
−
k
x
i
k
⋯
∑
k
=
0
n
−
4
x
n
n
−
2
−
k
x
i
k
∣
\begin{vmatrix} 1 & 1 & 1 \\ x_2& x_3 & \cdots & x_n\\ x_2^2& x_3^2 & \cdots & x_n^2\\ \vdots & \vdots & \ddots & \vdots \\ \sum_{k=0}^{n-4}{x_2^{n-2-k}x_i^k} &\sum_{k=0}^{n-4}{x_3^{n-2-k}x_i^k} & \cdots & \sum_{k=0}^{n-4}{x_n^{n-2-k}x_i^k} \end{vmatrix}\\
1x2x22⋮∑k=0n−4x2n−2−kxik1x3x32⋮∑k=0n−4x3n−2−kxik1⋯⋯⋱⋯xnxn2⋮∑k=0n−4xnn−2−kxik
如此循环下去这就不就是
x
2
,
x
3
,
⋯
,
x
n
x_2,x_3,\cdots,x_n
x2,x3,⋯,xn形成的范德蒙德行列式吗?所以我们得出了一个结论:
Δ
(
x
1
,
x
2
,
⋯
,
x
n
)
=
∏
i
=
2
n
(
x
i
−
x
1
)
Δ
(
x
2
,
⋯
,
x
n
)
\Delta(x_1,x_2,\cdots,x_n)=\prod_{i=2}^n(x_i-x_1)\Delta(x_2,\cdots,x_n)
Δ(x1,x2,⋯,xn)=i=2∏n(xi−x1)Δ(x2,⋯,xn)
然后递归下去就有了,结果就证明出来了。同样是递归算法,那么Dodgson算法行不行呢?很麻烦,因为它要除于中心块,这样会带来大量的分式运算。所以直接放弃。那再想想按一行展开行不行呢?完全可以,因为第一行全部是1嘛。
按第一行展开证明
按第一行展开的话,不要急着直接展开,可以先进行初等列变换,将第一列乘以
−
1
-1
−1加到第其他列,整个行列式就变成了这样:
∣
1
0
⋯
0
0
x
1
x
2
−
x
1
⋯
x
n
−
1
−
x
1
x
n
−
x
1
x
1
2
x
2
2
−
x
1
2
⋯
x
n
−
1
2
−
x
1
2
x
n
2
−
x
1
2
⋮
⋮
⋱
⋮
⋮
x
1
n
−
1
x
2
n
−
1
−
x
1
n
−
1
⋯
x
n
−
1
n
−
1
−
x
1
n
−
1
x
n
n
−
1
−
x
1
n
−
1
∣
\begin{vmatrix} 1 & 0 & \cdots & 0 & 0\\ x_1 & x_2-x_1 & \cdots & x_{n-1}-x_1 & x_n-x_1\\ x_1^2 & x_2^2-x_1^2 & \cdots & x_{n-1}^2-x_1^2 & x_n^2-x_1^2 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ x_1^{n-1} & x_2^{n-1} -x_1^{n-1} & \cdots & x_{n-1}^{n-1} -x_1^{n-1} & x_n^{n-1} -x_1^{n-1} \\ \end{vmatrix}
1x1x12⋮x1n−10x2−x1x22−x12⋮x2n−1−x1n−1⋯⋯⋯⋱⋯0xn−1−x1xn−12−x12⋮xn−1n−1−x1n−10xn−x1xn2−x12⋮xnn−1−x1n−1
然后按第一行展开,因为其他位置是0,所以就直接变成了
n
−
1
n-1
n−1阶的行列式,再转置下,就变成了我用Chió算法证明出现过的行列式:
∣
x
2
−
x
1
⋯
x
n
−
1
−
x
1
x
n
−
x
1
x
2
2
−
x
1
2
⋯
x
n
−
1
2
−
x
1
2
x
n
2
−
x
1
2
⋮
⋱
⋮
⋮
x
2
n
−
1
−
x
1
n
−
1
⋯
x
n
−
1
n
−
1
−
x
1
n
−
1
x
n
n
−
1
−
x
1
n
−
1
∣
=
∣
x
2
−
x
1
x
2
2
−
x
1
2
⋯
x
2
n
−
1
−
x
1
n
−
1
x
3
−
x
1
x
3
2
−
x
1
2
⋯
x
3
n
−
1
−
x
1
n
−
1
⋮
⋮
⋱
⋮
x
n
−
x
1
x
n
2
−
x
1
2
⋯
x
n
n
−
1
−
x
1
n
−
1
∣
\begin{vmatrix} x_2-x_1 & \cdots & x_{n-1}-x_1 & x_n-x_1\\ x_2^2-x_1^2 & \cdots & x_{n-1}^2-x_1^2 & x_n^2-x_1^2 \\ \vdots & \ddots & \vdots & \vdots \\ x_2^{n-1} -x_1^{n-1} & \cdots & x_{n-1}^{n-1} -x_1^{n-1} & x_n^{n-1} -x_1^{n-1} \\ \end{vmatrix}\\= \begin{vmatrix} x_2-x_1 & x_2^2 -x_1^2 &\cdots &x_2^{n-1} -x_1^{n-1} \\ x_3-x_1 & x_3^2-x_1^2 &\cdots & x_3^{n-1}-x_1^{n-1} \\ \vdots & \vdots & \ddots & \vdots \\ x_n-x_1 & x_n^ 2-x_1^2 & \cdots & x_n^{n-1}-x_1^{n-1} \\ \end{vmatrix}
x2−x1x22−x12⋮x2n−1−x1n−1⋯⋯⋱⋯xn−1−x1xn−12−x12⋮xn−1n−1−x1n−1xn−x1xn2−x12⋮xnn−1−x1n−1
=
x2−x1x3−x1⋮xn−x1x22−x12x32−x12⋮xn2−x12⋯⋯⋱⋯x2n−1−x1n−1x3n−1−x1n−1⋮xnn−1−x1n−1
剩下的就和Chió算法证明过程一样,我就不再叙述了。因为按一行展开其实是按k行展开的
k
=
1
k=1
k=1时的特殊情况。最后一种算法高斯消元,怎么说呢?单纯用高斯消元也行,但是那样涉及大量的因式分解运算,非常麻烦。所以还是和行列式按1行展开进行配合才最好计算。
结语
范德蒙德行列式这就介绍完了,接下来我要介绍朗斯基行列式,说完朗斯基行列式,整个行列式我就说完了。