范德蒙德行列式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ó算法行不行呢?可以,非常合适!那么我讲讲思路。
比如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行展开进行配合才最好计算。
范德蒙德行列式这就介绍完了,接下来我要介绍朗斯基行列式,说完朗斯基行列式,整个行列式我就说完了。