对于一个 n × n n \times n n×n 的矩阵 A A A,记它第 i i i 行第 j j j 列的元素为 a i , j a_{i, j} ai,j,以及一个 1 ∼ n 1 \sim n 1∼n 的排列 p p p,记 λ A ( p ) = ( − 1 ) τ ( p ) ∏ i = 1 n a i , p i \lambda_A(p) = (-1) ^ {\tau(p)} \prod_{i = 1}^{n} a_{i, p_i} λA(p)=(−1)τ(p)i=1∏nai,pi(其中 τ ( p ) \tau(p) τ(p) 是 p p p 的逆序对个数)则 ∣ A ∣ = det A = ∑ p λ A ( p ) = ∑ p ( ( − 1 ) τ ( p ) ∏ i = 1 n a i , p i ) |A| = \det A = \sum_{p} \lambda_A(p) = \sum_{p} \left( (-1) ^ {\tau(p)} \prod_{i = 1}^{n} a_{i, p_i} \right) ∣A∣=detA=p∑λA(p)=p∑((−1)τ(p)i=1∏nai,pi)(其中 ∣ A ∣ |A| ∣A∣ 和 det A \det A detA 都是 A A A 的行列式的意思,后文有时为了便于区分行列式和绝对值会使用 det A \det A detA,其余大部分时候使用 ∣ A ∣ |A| ∣A∣)显然行列式运算结果是数量。
简单理解一下发现这样的计算方法的时间复杂度是 O ( n ⋅ log n ⋅ n ! ) O(n \cdot \log n \cdot n!) O(n⋅logn⋅n!)。因此这个定义没什么用
除了少数几个,名字基本都是乱编的
对于一个 n × n n \times n n×n 的矩阵 A A A 和任意一个 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n,有 ∣ A ∣ = ∑ j = 1 n ( − 1 ) i + j a i , j ∣ A i , j ∣ |A| = \sum_{j = 1}^{n} (-1)^{i + j} a_{i, j} |A_{i, j}| ∣A∣=j=1∑n(−1)i+jai,j∣Ai,j∣ 其中 A i , j A_{i, j} Ai,j 指矩阵 A A A 删去第 i i i 行和第 j j j 列的所有元素后形成的一个 ( n − 1 ) × ( n − 1 ) (n - 1) \times (n - 1) (n−1)×(n−1) 的矩阵。这个计算式称为对第 i i i 行进行拉普拉斯展开。
证明: 根据定义每个 λ A ( p ) \lambda_A(p) λA(p) 一定有一个因子 x x x 满足 x ∈ { a i , 1 , a i , 2 , ⋯ , a i , n } x \in \{a_{i, 1}, a_{i, 2}, \cdots, a_{i, n}\} x∈{ai,1,ai,2,⋯,ai,n},枚举 j j j 得到这个因子 a i , j a_{i, j} ai,j 和满足 p i = j p_i = j pi=j 的排列 p p p,然后将这个 p i p_i pi 删除,并把 p p p 中所有大于 j j j 的元素减一得到 q q q( q q q 是 1 ∼ n − 1 1 \sim n-1 1∼n−1 的排列),于是在 n , i , j n, i, j n,i,j 确定时有了一个 p p p 与 q q q 之间的一一对应的函数关系。
例如,当 n = 3 , i = 1 , j = 2 n = 3, i = 1, j = 2 n=3,i=1,j=2 时,满足 p 1 = 2 p_1 = 2 p1=2 的 p p p 有 { 2 , 1 , 3 } , { 2 , 3 , 1 } \{2, 1, 3\}, \{2, 3, 1\} {2,1,3},{2,3,1},将 2 2 2 删除,得到 { 1 , 3 } , { 3 , 1 } \{1, 3\}, \{3, 1\} {1,3},{3,1},然后将 3 3 3 减一,得到 q q q 为 { 1 , 2 } \{1, 2\} {1,2} 和 { 2 , 1 } \{2, 1\} {2,1};根据 n = 3 , i = 1 , j = 2 n = 3, i = 1, j = 2 n=3,i=1,j=2,亦可将 q q q 还原为 p p p。
令 ξ ( p ) = q \xi(p) = q ξ(p)=q,那么 ∣ ∑ p λ A ( p ) ⋅ [ j = p i ] a i , j ∣ = ∣ ∑ p λ A i , j ( ξ ( p ) ) ⋅ [ j = p i ] ∣ \left| \frac{\sum_{p} \lambda_A(p) \cdot [j = p_i]}{a_{i, j}} \right| = \left|\sum_{p} \lambda_{A_{i, j}}(\xi(p)) \cdot [j = p_i] \right| ∣∣∣∣ai,j∑pλA(p)⋅[j=pi]∣∣∣∣=∣∣∣∣∣p∑λAi,j(ξ(p))⋅[j=pi]∣∣∣∣∣ 右边变为直接枚举 ξ ( p ) \xi(p) ξ(p),即 ∣ ∑ p λ A ( p ) ⋅ [ j = p i ] a i , j ∣ = ∣ ∑ q λ A i , j ( q ) ∣ = ∣ det A i , j ∣ \left| \frac{\sum_{p} \lambda_A(p) \cdot [j = p_i]}{a_{i, j}} \right| = \left|\sum_{q} \lambda_{A_{i, j}}(q) \right| = |\det A_{i, j}| ∣∣∣∣ai,j∑pλA(p)⋅[j=pi]∣∣∣∣=∣∣∣∣∣q∑λAi,j(q)∣∣∣∣∣=∣detAi,j∣ ∣ ∑ p λ A ( p ) ⋅ [ j = p i ] ∣ = ∣ a i , j ⋅ det A i , j ∣ \left| \sum_{p} \lambda_A(p) \cdot [j = p_i] \right| = |a_{i, j} \cdot \det A_{i, j}| ∣∣∣∣∣p∑λA(p)⋅[j=pi]∣∣∣∣∣=∣ai,j⋅detAi,j∣ 再考虑正负号,即 τ ( p ) \tau(p) τ(p) 与 τ ( ξ ( p ) ) \tau(\xi(p)) τ(ξ(p)) 的奇偶性的差别,这取决于 p i p_i pi 前面大于 j j j 的数量和 p i p_i pi 后面小于 j j j 的数量,即 ∑ k = 1 i − 1 [ p k > j ] + ∑ k = i + 1 n [ p k < j ] = ∑ k = 1 i − 1 [ p k > j ] + ( j − 1 − ∑ k = 1 i − 1 [ p k < j ] ) = ∑ k = 1 i − 1 [ p k > j ] + j − 1 − ( i − 1 − ∑ k = 1 i − 1 [ p k > j ] ) = 2 ∑ k = 1 i − 1 [ p k > j ] + ( i + j ) ≡ i + j m o d 2 \begin{aligned} & \sum_{k = 1}^{i - 1} [p_k > j] + \sum_{k = i + 1}^{n}[p_k < j] \\ =& \sum_{k = 1}^{i - 1} [p_k > j] + \left( j - 1 - \sum_{k = 1}^{i - 1}[p_k < j] \right) \\ =& \sum_{k = 1}^{i - 1} [p_k > j] + j - 1 - \left( i - 1 - \sum_{k = 1}^{i - 1}[p_k > j] \right) \\ =& 2\sum_{k = 1}^{i - 1} [p_k > j] + (i + j) \equiv i + j \mod 2\end{aligned} ===k=1∑i−1[pk>j]+k=i+1∑n[pk<j]k=1∑i−1[pk>j]+(j−1−k=1∑i−1[pk<j])k=1∑i−1[pk>j]+j−1−(i−1−k=1∑i−1[pk>j])2k=1∑i−1[pk>j]+(i+j)≡i+jmod2 于是 τ ( p ) = ( − 1 ) i + j τ ( ξ ( p ) ) \tau(p) = (-1)^{i + j} \tau(\xi(p)) τ(p)=(−1)i+jτ(ξ(p)),则 ∑ p λ A ( p ) ⋅ [ j = p i ] = ( − 1 ) i + j ⋅ a i , j ⋅ det A i , j \sum_{p} \lambda_A(p) \cdot [j = p_i] = (-1)^{i + j} \cdot a_{i, j} \cdot \det A_{i, j} p∑λA(p)⋅[j=pi]=(−1)i+j⋅ai,j⋅detAi,j 于是 ∣ A ∣ = ∑ p λ A ( p ) = ∑ j = 1 n ∑ p λ A ( p ) ⋅ [ j = p i ] = ∑ j = 1 n ( − 1 ) i + j a i , j ∣ A i , j ∣ |A| = \sum_{p} \lambda_A(p) = \sum_{j = 1}^{n} \sum_{p} \lambda_A(p) \cdot [j = p_i] = \sum_{j = 1}^{n} (-1)^{i + j} a_{i, j} |A_{i, j}| ∣A∣=p∑λA(p)=j=1∑np∑λA(p)⋅[j=pi]=j=1∑n(−1)i+jai,j∣Ai,j∣
(百度百科“拉普拉斯展开”中有一个看不怎么懂的高端证明,但比较简洁,emmm 感觉上跟我这个自己 yy 的证明可能差不多)
对于任意 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n 和 k k k,若 A = ( a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ k a i , 1 k a i , 2 ⋯ k a i , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ) A = \begin{pmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ ka_{i, 1} & ka_{i, 2} & \cdots & ka_{i, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{pmatrix} A=⎝⎜⎜⎜⎜⎜⎜⎛a1,1⋮kai,1⋮an,1a1,2⋮kai,2⋮an,2⋯⋱⋯⋱⋯a1,n⋮kai,n⋮an,n⎠⎟⎟⎟⎟⎟⎟⎞, B = ( a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a i , 1 a i , 2 ⋯ a i , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ) B = \begin{pmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i, 1} & a_{i, 2} & \cdots & a_{i, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{pmatrix} B=⎝⎜⎜⎜⎜⎜⎜⎛a1,1⋮ai,1⋮an,1a1,2⋮ai,2⋮an,2⋯⋱⋯⋱⋯a1,n⋮ai,n⋮an,n⎠⎟⎟⎟⎟⎟⎟⎞,则 ∣ A ∣ = k ∣ B ∣ |A| = k|B| ∣A∣=k∣B∣。
证明: 根据定义,对于每个 p p p, λ A ( p ) = k ⋅ λ B ( p ) \lambda_A(p) = k \cdot \lambda_B(p) λA(p)=k⋅λB(p),得证。
对于任意 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n 和 k k k, ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a i − 1 , 1 a i − 1 , 2 ⋯ a i − 1 , n a i , 1 + b i , 1 a i , 2 + b i , 2 ⋯ a i , n + b i , n a i + 1 , 1 a i + 1 , 2 ⋯ a i + 1 , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ = ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a i − 1 , 1 a i − 1 , 2 ⋯ a i − 1 , n a i , 1 a i , 2 ⋯ a i , n a i + 1 , 1 a i + 1 , 2 ⋯ a i + 1 , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ + ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a i − 1 , 1 a i − 1 , 2 ⋯ a i − 1 , n b i , 1 b i , 2 ⋯ b i , n a i + 1 , 1 a i + 1 , 2 ⋯ a i + 1 , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ \begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i - 1, 1} & a_{i - 1, 2} & \cdots & a_{i - 1, n} \\ a_{i, 1} + b_{i, 1} & a_{i, 2} + b_{i, 2} & \cdots & a_{i, n} + b_{i, n} \\ a_{i + 1, 1} & a_{i + 1, 2} & \cdots & a_{i + 1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} = \begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i - 1, 1} & a_{i - 1, 2} & \cdots & a_{i - 1, n} \\ a_{i, 1} & a_{i, 2} & \cdots & a_{i, n} \\ a_{i + 1, 1} & a_{i + 1, 2} & \cdots & a_{i + 1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} + \begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i - 1, 1} & a_{i - 1, 2} & \cdots & a_{i - 1, n} \\ b_{i, 1} & b_{i, 2} & \cdots & b_{i, n} \\ a_{i + 1, 1} & a_{i + 1, 2} & \cdots & a_{i + 1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} ∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮ai−1,1ai,1+bi,1ai+1,1⋮an,1a1,2⋮ai−1,2ai,2+bi,2ai+1,2⋮an,2⋯⋱⋯⋯⋯⋱⋯a1,n⋮ai−1,nai,n+bi,nai+1,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣=∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮ai−1,1ai,1ai+1,1⋮an,1a1,2⋮ai−1,2ai,2ai+1,2⋮an,2⋯⋱⋯⋯⋯⋱⋯a1,n⋮ai−1,nai,nai+1,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣+∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮ai−1,1bi,1ai+1,1⋮an,1a1,2⋮ai−1,2bi,2ai+1,2⋮an,2⋯⋱⋯⋯⋯⋱⋯a1,n⋮ai−1,nbi,nai+1,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣
证明: 对第 i i i 行拉普拉斯展开即证。
对于 n × n ( n > 1 ) n \times n (n > 1) n×n(n>1) 的矩阵 A A A,若存在 1 ≤ i ≤ n , 1 ≤ j ≤ n , j ≠ j 1 \leq i \leq n, 1 \leq j \leq n, j \neq j 1≤i≤n,1≤j≤n,j=j 使得对于任意 1 ≤ k ≤ n 1 \leq k \leq n 1≤k≤n 都有 a i , k = a j , k a_{i, k} = a_{j, k} ai,k=aj,k,即矩阵中某两行对应相等,则 ∣ A ∣ = 0 |A| = 0 ∣A∣=0。
证明: 若某排列 p p p 满足 p x = i , p y = j ( x < y ) p_x = i, p_y = j (x < y) px=i,py=j(x<y),记 q q q 为 p p p 交换第 x , y x, y x,y 个元素后得到的排列,即 q y = i , q x = j ( x < y ) q_y = i, q_x = j (x < y) qy=i,qx=j(x<y),那么 λ A ( p ) = − λ A ( q ) \lambda_A(p) = -\lambda_A(q) λA(p)=−λA(q),因为两者逆序对个数相差 1 1 1。 于是将所有 1 ∼ n 1 \sim n 1∼n 的排列这样两两配对,即可使所有 λ A ( p ) \lambda_A(p) λA(p) 抵消为 0 0 0,得证。
对于任意 1 ≤ i ≤ n , 1 ≤ j ≤ n , j ≠ j 1 \leq i \leq n, 1 \leq j \leq n, j \neq j 1≤i≤n,1≤j≤n,j=j: ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a i , 1 a i , 2 ⋯ a i , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ = ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a i , 1 + k a j , 1 a i , 2 + k a j , 2 ⋯ a i , n + k a j , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ \begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i, 1} & a_{i, 2} & \cdots & a_{i, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} = \begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i, 1} + ka_{j, 1} & a_{i, 2} + ka_{j, 2} & \cdots & a_{i, n} + ka_{j, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} ∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮ai,1⋮an,1a1,2⋮ai,2⋮an,2⋯⋱⋯⋱⋯a1,n⋮ai,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣=∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮ai,1+kaj,1⋮an,1a1,2⋮ai,2+kaj,2⋮an,2⋯⋱⋯⋱⋯a1,n⋮ai,n+kaj,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣
证明: ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a i , 1 + k a j , 1 a i , 2 + k a j , 2 ⋯ a i , n + k a j , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ = ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a i , 1 a i , 2 ⋯ a i , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ + ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ k a j , 1 k a j , 2 ⋯ k a j , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ ( 可 加 性 ) = ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a i , 1 a i , 2 ⋯ a i , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ + k ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a j , 1 a j , 2 ⋯ a j , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ ( 线 性 性 ) = ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a i , 1 a i , 2 ⋯ a i , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ + 0 ( 不 重 性 ) = ∣ a 1 , 1 a 1 , 2 ⋯ a 1 , n ⋮ ⋮ ⋱ ⋮ a i , 1 a i , 2 ⋯ a i , n ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 ⋯ a n , n ∣ \begin{aligned} & \begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i, 1} + ka_{j, 1} & a_{i, 2} + ka_{j, 2} & \cdots & a_{i, n} + ka_{j, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} \\ =& \begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i, 1} & a_{i, 2} & \cdots & a_{i, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} + \begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ ka_{j, 1} & ka_{j, 2} & \cdots & ka_{j, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} & (可加性) \\ =& \begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i, 1} & a_{i, 2} & \cdots & a_{i, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} + k\begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{j, 1} & a_{j, 2} & \cdots & a_{j, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} & (线性性) \\ =& \begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i, 1} & a_{i, 2} & \cdots & a_{i, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} + 0 & (不重性) \\ =& \begin{vmatrix} a_{1, 1} & a_{1, 2} & \cdots & a_{1, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{i, 1} & a_{i, 2} & \cdots & a_{i, n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n, 1} & a_{n, 2} & \cdots & a_{n, n} \end{vmatrix} \end{aligned} ====∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮ai,1+kaj,1⋮an,1a1,2⋮ai,2+kaj,2⋮an,2⋯⋱⋯⋱⋯a1,n⋮ai,n+kaj,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮ai,1⋮an,1a1,2⋮ai,2⋮an,2⋯⋱⋯⋱⋯a1,n⋮ai,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣+∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮kaj,1⋮an,1a1,2⋮kaj,2⋮an,2⋯⋱⋯⋱⋯a1,n⋮kaj,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮ai,1⋮an,1a1,2⋮ai,2⋮an,2⋯⋱⋯⋱⋯a1,n⋮ai,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣+k∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮aj,1⋮an,1a1,2⋮aj,2⋮an,2⋯⋱⋯⋱⋯a1,n⋮aj,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮ai,1⋮an,1a1,2⋮ai,2⋮an,2⋯⋱⋯⋱⋯a1,n⋮ai,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣+0∣∣∣∣∣∣∣∣∣∣∣∣a1,1⋮ai,1⋮an,1a1,2⋮ai,2⋮an,2⋯⋱⋯⋱⋯a1,n⋮ai,n⋮an,n∣∣∣∣∣∣∣∣∣∣∣∣(可加性)(线性性)(不重性)
任意一个 n × n n \times n n×n 的矩阵 A A A,满足 ∣ A T ∣ = ∣ A ∣ |A^T| = |A| ∣AT∣=∣A∣。 A T A^T AT 表示矩阵 A A A 的转置,即 a i , j → a j , i a_{i, j} \to a_{j, i} ai,j→aj,i(换句话说,将 A A A 沿“左上 - 右下”对角线翻折即得到 A T A^T AT),下同。
证明: 对于一个排列 p p p,根据转置的定义,令 ξ ( p ) = q ( q p i = i ) \xi(p) = q\ (q_{p_i} = i) ξ(p)=q (qpi=i),那么 λ A ( p ) = λ A T ( ξ ( p ) ) \lambda_A(p) = \lambda_{A^T}(\xi(p)) λA(p)=λAT(ξ(p))。考虑 τ ( p ) \tau(p) τ(p) 和 τ ( ξ ( p ) ) \tau(\xi(p)) τ(ξ(p)) 的关系: 把 A i , p i ( 1 ≤ i ≤ n ) A_{i, p_i}\ (1 \leq i \leq n) Ai,pi (1≤i≤n) 记做特殊点,令 T p ( i ) \Tau_p(i) Tp(i) 表示 A i , p i A_{i, p_i} Ai,pi 的左下方的特殊点数量, T p ′ ( i ) \Tau'_p(i) Tp′(i) 表示 A i , p i A_{i, p_i} Ai,pi 的右上方的特殊点数量,则 τ ( p ) = ∑ i = 1 n T p ( i ) = ∑ i = 1 n T p ′ ( i ) \tau(p) = \sum_{i = 1}^{n} \Tau_p(i) = \sum_{i = 1}^{n} \Tau'_p(i) τ(p)=∑i=1nTp(i)=∑i=1nTp′(i),由于是沿对角线翻折,所以显然 T p ( i ) = T q ′ ( i ) \Tau_p(i) = \Tau'_q(i) Tp(i)=Tq′(i)(事实上只是把“左下方”的特殊点变到“右上方”,“右上方”变到“左下方”),于是 τ ( p ) = τ ( q ) \tau(p) = \tau(q) τ(p)=τ(q)。 因此 λ A ( p ) = λ A T ( ξ ( p ) ) \lambda_A(p) = \lambda_{A^T}(\xi(p)) λA(p)=λAT(ξ(p)),得证。
矩阵两行交换,矩阵的行列式值反号。
证明: 交换 A A A 的两行 u , v u, v u,v 可视为将 v v v 行加到 u u u 行上(①)得到一个新矩阵 A ′ A' A′,再从 A ′ A' A′ 的 v v v 行上减去 A ′ A' A′ 的 u u u 行(②),再将 A ′ A' A′ 的 u u u 行全部取反(③)。根据可倍加性,① 和 ② 均不改变行列式的值,根据可乘性,③ 操作使行列式的值反号,得证。
矩阵两列交换,矩阵行列式值反号。
证明: 根据转置不变性,先转置再用行可交换性交换两行,再转置回来即证。
对矩阵 A A A 的第一行进行拉普拉斯展开可以证明:当 A A A 为一个上三角矩阵(即任意 i > j i > j i>j,满足 a i , j = 0 a_{i, j} = 0 ai,j=0)时: ∣ A ∣ = ∏ i = 1 n a i , i |A| = \prod_{i = 1}^{n} a_{i, i} ∣A∣=i=1∏nai,i 发现高斯消元用到的是可倍加性、可交换性,于是我们对 A A A 高斯消元,可以得到一个上三角矩阵,这个矩阵的对角线乘积即为 A A A 的行列式的绝对值(可交换性会使其反号)!于是我们做到了 O ( n 3 ) O(n^3) O(n3) 求行列式的值。
对于一个无向图 G = ( V , E ) G = (V, E) G=(V,E),其中 ∣ V ∣ = n |V| = n ∣V∣=n(点数), ∣ E ∣ = m |E| = m ∣E∣=m(边数):
给 G G G 的每条边任意分配一个方向,则它的关联矩阵(大小为 m × n m \times n m×n) B B B: b i , j = { 1 点 j 是 边 i 的 起 点 − 1 点 j 是 边 i 的 终 点 0 其 他 b_{i, j} = \begin{cases} 1 & 点\ j\ 是边\ i\ 的起点 \\ -1 & 点\ j\ 是边\ i\ 的终点 \\ 0 & 其他\end{cases} bi,j=⎩⎪⎨⎪⎧1−10点 j 是边 i 的起点点 j 是边 i 的终点其他 G G G 的基尔霍夫矩阵(大小为 n × n n \times n n×n) L L L: l i , j = { d i i = j − e i , j i ≠ j l_{i, j} = \begin{cases} d_i & i = j \\ -e_{i, j} & i \neq j\end{cases} li,j={di−ei,ji=ji=j (其中 d i d_i di 表示 i i i 号点的度, e i , j e_{i, j} ei,j 连接点 i , j i, j i,j 的边的数量)L = B B T L = BB^T L=BBT L , B , B T L, B, B^T L,B,BT 定义如上,乘法是矩阵乘法。
证明: 按照矩阵乘法的规则展开即证。 事实上如果定义两个序列相乘的结果是对应位置的乘积之和的话,矩阵乘法将 B B B 的列两两相乘得到了一个新矩阵,这个矩阵就是 L L L。
若 G G G 是一个连通图,那么 ∣ L ∣ = 0 |L| = 0 ∣L∣=0。
证明: 若 G G G 是连通图,那么根据定义 L L L 的每一列的元素之和都为 0 0 0,再根据可倍加性,将其他所有行加到某一行上,这一行的元素就全部为零,再对这一行进行拉普拉斯展开,得到 ∣ L ∣ = 0 |L| = 0 ∣L∣=0。
若 G G G 不连通,则对任意 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n, ∣ L i , i ∣ = 0 |L_{i, i}| = 0 ∣Li,i∣=0。
证明: 根据行列可交换性,我们将同一联通块的点换到一起,得到的新矩阵 L ′ L' L′ 满足 ∣ det L ′ ∣ = ∣ det L ∣ |\det L'| = |\det L| ∣detL′∣=∣detL∣,并且 L ′ L' L′ 长这个样子: ( A 1 0 0 ⋯ 0 0 A 2 0 ⋯ 0 0 0 A 3 ⋯ 0 ⋮ ⋮ ⋮ ⋱ ⋮ 0 0 0 ⋯ A k ) \begin{pmatrix} A_1 & \bold{0} & \bold{0} & \cdots & \bold{0} \\ \bold{0} & A_2 & \bold{0} & \cdots & \bold{0} \\ \bold{0} & \bold{0} & A_3 & \cdots & \bold{0} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \bold{0} & \bold{0} & \bold{0} & \cdots & A_k\end{pmatrix} ⎝⎜⎜⎜⎜⎜⎛A100⋮00A20⋮000A3⋮0⋯⋯⋯⋱⋯000⋮Ak⎠⎟⎟⎟⎟⎟⎞( 0 \bold{0} 0 代表零矩阵, k k k 是联通块的个数) 由于 G G G 不连通,所以 k ≥ 2 k \geq 2 k≥2,所以 L i , i L_{i, i} Li,i 至少包含一个 A x ( 1 ≤ x ≤ k ) A_x (1 \leq x \leq k) Ax(1≤x≤k)。因为 A x A_x Ax 是一个独立连通子图,所以 A x A_x Ax 可以经过适当操作使得其对角线上某个元素为 0 0 0,进而 ∣ L i , i ∣ = 0 |L_{i, i}| = 0 ∣Li,i∣=0。
若 G G G 是一个树,则对任意 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n, ∣ det L i , i ∣ = 1 |\det L_{i, i}| = 1 ∣detLi,i∣=1。
证明: 将这个树的结点拓扑排序,使得对于任意点 i i i,去除掉所有 1 ∼ i − 1 1 \sim i - 1 1∼i−1 的点后 i i i 的度数为 1 1 1,这可以通过不断“摘掉”叶子结点实现。然后以这个顺序整理矩阵 L L L 的各行得到 L ′ L' L′,我们对 L ′ L' L′ 模拟高斯消元的过程: 假设当前到了第 i i i 行。没有消元时,由于我们拓扑排序了,那么 l i , i ′ l'_{i, i} li,i′ 右边(“右边”指所有 l i , j ′ ( j > i ) l'_{i, j}\ (j > i) li,j′ (j>i),“左边”“上面”“下面”同理)和下面有且仅有 1 1 1 个 − 1 -1 −1,左边和上面有且仅有 l i , i ′ − 1 l'_{i, i} - 1 li,i′−1 个 − 1 -1 −1;由于我们用前 i − 1 i - 1 i−1 行消掉了 l i , i ′ l'_{i, i} li,i′ 前面的 l i , i ′ − 1 l'_{i, i} - 1 li,i′−1 个 − 1 -1 −1, 并且 l i , i ′ l'_{i, i} li,i′ 上面有 l i , i ′ − 1 l'_{i, i} - 1 li,i′−1 个 − 1 -1 −1,于是 l i , i ′ l'_{i, i} li,i′ 被加了 l i , i ′ − 1 l'_{i, i} - 1 li,i′−1 个 − 1 -1 −1,就变成了 1 1 1。 按这样高斯消元下去,最后一个元素( l n , n ′ l'_{n, n} ln,n′) 肯定是 0 0 0。但我们要求的是 ∣ L i , i ∣ = ∣ L i , i ′ ∣ |L_{i, i}| = |L'_{i, i}| ∣Li,i∣=∣Li,i′∣,它是 L ′ L' L′ 删去了一行一列,因此 L i , i ′ L'_{i, i} Li,i′ 消元过后的最后一个( l n − 1 , n − 1 ′ ′ l''_{n - 1, n - 1} ln−1,n−1′′)是 1 1 1。于是对角线上的元素全部是 1 1 1,得证。
设 A A A 是一个 n × m n \times m n×m 的矩阵, B B B 是一个 m × n m \times n m×n 的矩阵,有 ∣ A B ∣ = { 0 n > m ∣ A ∣ ⋅ ∣ B ∣ n = m ∑ 1 ≤ k 1 < k 2 < ⋯ < k n ≤ m ∣ A ( 1 , 2 , ⋯ , n ; k 1 , k 2 , ⋯ , k n ) ∣ ⋅ ∣ B ( k 1 , k 2 , ⋯ , k n ; 1 , 2 , ⋯ , n ) ∣ n < m |AB| = \begin{cases} 0 & n > m \\ |A| \cdot |B| & n = m\\ \sum\limits_{1 \leq k_1 < k_2 < \cdots < k_n \leq m} |A(1, 2, \cdots, n; k_1, k_2, \cdots, k_n)| \cdot |B(k_1, k_2, \cdots, k_n; 1, 2, \cdots, n)| & n < m \end{cases} ∣AB∣=⎩⎪⎪⎨⎪⎪⎧0∣A∣⋅∣B∣1≤k1<k2<⋯<kn≤m∑∣A(1,2,⋯,n;k1,k2,⋯,kn)∣⋅∣B(k1,k2,⋯,kn;1,2,⋯,n)∣n>mn=mn<m ( A ( 1 , 2 , ⋯ , n ; k 1 , k 2 , ⋯ , k n ) A(1, 2, \cdots, n; k_1, k_2, \cdots, k_n) A(1,2,⋯,n;k1,k2,⋯,kn) 表示由 A A A 的第 k 1 , k 2 , ⋯ , k n k_1, k_2, \cdots, k_n k1,k2,⋯,kn 列组成的矩阵; B ( k 1 , k 2 , ⋯ , k n ; 1 , 2 , ⋯ , n ) B(k_1, k_2, \cdots, k_n; 1, 2, \cdots, n) B(k1,k2,⋯,kn;1,2,⋯,n) 表示由 B B B 的第 k 1 , k 2 , ⋯ , k n k_1, k_2, \cdots, k_n k1,k2,⋯,kn 行组成的矩阵)
证明: 我们构造两个辅助矩阵: M = ( A 0 − I B ) , N = ( 0 A B − I B ) M = \begin{pmatrix} A & \bold{0} \\ -I & B\end{pmatrix},\ \ N = \begin{pmatrix} \bold{0} & AB \\ -I & B\end{pmatrix} M=(A−I0B), N=(0−IABB) 其中 I I I 是单位矩阵(“左上 - 右下”对角线为 1 1 1 的矩阵)可以发现 ∣ M ∣ = ∣ N ∣ |M| = |N| ∣M∣=∣N∣,证明如下: 枚举 M M M 矩阵的第 i ( n + 1 ≤ i ≤ n + m ) i\ (n + 1 \leq i \leq n + m) i (n+1≤i≤n+m) 行,然后将第 i i i 行乘以 a k 1 a_{k_1} ak1 后加到第 1 1 1 行,乘以 a k 2 a_{k_2} ak2 后加到第 2 2 2 行,……,乘以 a k n a_{k_n} akn 后加到第 n n n 行。这样操作完后,根据矩阵乘法的定义, M M M 变为了 N N N,又因为倍加不变性, ∣ M ∣ = ∣ N ∣ |M| = |N| ∣M∣=∣N∣。 用定义式计算 ∣ N ∣ |N| ∣N∣,由于只要 p p p 选到 0 \bold{0} 0 中的元素 λ N ( p ) \lambda_N(p) λN(p) 就为 0 0 0,所以只考虑 p 1 , p 2 , ⋯ , p n ∈ [ m + 1 , m + n ] p_1, p_2, \cdots, p_n \in [m + 1, m + n] p1,p2,⋯,pn∈[m+1,m+n] 的情况,又因为 A B AB AB 是个 n × n n \times n n×n 的矩阵,所以 p n + 1 , p n + 2 , ⋯ , p n + m ∈ [ 1 , m ] p_{n + 1}, p_{n + 2}, \cdots, p_{n + m} \in [1, m] pn+1,pn+2,⋯,pn+m∈[1,m],所以 ∣ N ∣ = ∣ A B ∣ ⋅ ∣ − I ∣ = ( − 1 ) m ∣ A B ∣ |N| = |AB| \cdot |-I| = (-1)^m |AB| ∣N∣=∣AB∣⋅∣−I∣=(−1)m∣AB∣ 接下来分类计算 ∣ M ∣ |M| ∣M∣,并证明该定理:
当 n > m n > m n>m 时(图中 C = A B C = AB C=AB,下同): 用定义式计算 M M M,发现排列 p p p 无论如何取都会取到 0 \bold{0} 0 中的元素(原因就是 n > m n > m n>m),因此 ∣ M ∣ = 0 |M| = 0 ∣M∣=0,即 ( − 1 ) m ∣ A B ∣ = 0 (-1)^m |AB| = 0 (−1)m∣AB∣=0,即 ∣ A B ∣ = 0 |AB| = 0 ∣AB∣=0。当 n = m n = m n=m 时: 用定义式计算 M M M,显然只有 p 1 , p 2 , ⋯ , p n ∈ [ 1 , n ] p_1, p_2, \cdots, p_n \in [1, n] p1,p2,⋯,pn∈[1,n] 且 p n + 1 , p n + 2 , ⋯ , p n + m ∈ [ n + 1 , n + m ] p_{n + 1}, p_{n + 2}, \cdots, p_{n + m} \in [n + 1, n + m] pn+1,pn+2,⋯,pn+m∈[n+1,n+m] 时 λ M ( p ) \lambda_M(p) λM(p) 不为 0 0 0,于是 ∣ M ∣ = ∣ A ∣ ⋅ ∣ B ∣ ⋅ ( − 1 ) n 2 |M| = |A| \cdot |B| \cdot (-1)^{n^2} ∣M∣=∣A∣⋅∣B∣⋅(−1)n2 其中 ( − 1 ) n 2 (-1)^{n^2} (−1)n2 即为分开计算 A , B A, B A,B 将两者的排列合起来新形成的逆序对数。因而 ∣ A ∣ ⋅ ∣ B ∣ ⋅ ( − 1 ) n 2 = ∣ A B ∣ ⋅ ( − 1 ) m |A| \cdot |B| \cdot (-1)^{n^2} = |AB| \cdot (-1)^m ∣A∣⋅∣B∣⋅(−1)n2=∣AB∣⋅(−1)m,于是 ∣ A ∣ ∣ B ∣ = ∣ A B ∣ ( − 1 ) m − n 2 = ∣ A B ∣ ( − 1 ) n − n 2 = ∣ A B ∣ |A||B| = |AB|(-1)^{m - n^2} = |AB|(-1)^{n - n^2} = |AB| ∣A∣∣B∣=∣AB∣(−1)m−n2=∣AB∣(−1)n−n2=∣AB∣当 n < m n < m n<m 时: 这时候我们枚举 k 1 , k 2 , ⋯ , k n ∈ [ 1 , m ] k_1, k_2, \cdots, k_n \in [1, m] k1,k2,⋯,kn∈[1,m](就是定理中的 k 1 , k 2 , ⋯ , k n k_1, k_2, \cdots, k_n k1,k2,⋯,kn)表示在 A A A 的各行中选的元素。为了使 λ M ( p ) ≠ 0 \lambda_M(p) \neq 0 λM(p)=0, − I -I −I 中就只能选对角线上的元素,又因为 A A A 中选的元素的正下方的那个 − 1 -1 −1 肯定不能选(因为 p p p 是排列),所以在 B B B 被选了元素的行一定和 A A A 被选了元素的列一样。举个例子,假设 n = 3 n = 3 n=3,红色是 A / B A\ /\ B A / B 中含有被选中元素的列 / / / 行。 这样一来 ∣ A ( 1 , 2 , ⋯ , n ; k 1 , k 2 , ⋯ , k n ) ∣ |A(1, 2, \cdots, n;k_1, k_2, \cdots, k_n)| ∣A(1,2,⋯,n;k1,k2,⋯,kn)∣ 的那些排列就和 ∣ B ( k 1 , k 2 , ⋯ , k n ; 1 , 2 , ⋯ , n ) ∣ |B(k_1, k_2, \cdots, k_n; 1, 2, \cdots, n)| ∣B(k1,k2,⋯,kn;1,2,⋯,n)∣ 的那些排列形成了一一对应的函数关系,于是 ∣ M ∣ = ∑ 1 ≤ k 1 < k 2 < ⋯ < k n ≤ m ∣ A ( 1 , 2 , ⋯ , n ; k 1 , k 2 , ⋯ , k n ) ∣ ⋅ ∣ B ( k 1 , k 2 , ⋯ , k n ; 1 , 2 , ⋯ , n ) ∣ ⋅ ( − 1 ) m − n + x |M| = \sum\limits_{1 \leq k_1 < k_2 < \cdots < k_n \leq m} |A(1, 2, \cdots, n; k_1, k_2, \cdots, k_n)| \cdot |B(k_1, k_2, \cdots, k_n; 1, 2, \cdots, n)| \cdot (-1)^{m - n + x} ∣M∣=1≤k1<k2<⋯<kn≤m∑∣A(1,2,⋯,n;k1,k2,⋯,kn)∣⋅∣B(k1,k2,⋯,kn;1,2,⋯,n)∣⋅(−1)m−n+x 其中 ( − 1 ) m − n (-1)^{m - n} (−1)m−n 是 − I -I −I 的贡献, x x x 是“新构成”的逆序对个数,所谓新构成,就是三部分的逆序对个数之和: − I -I −I 与 A A A、 − I -I −I 与 B B B、 A A A 与 B B B。由于枚举出的东西关于对角线对称,所以 − I -I −I 与 A A A 之间的逆序对数等于 − I -I −I 与 B B B 之间的逆序对数,于是 x x x 可以转化为 A A A 与 B B B 之间的逆序对数,即 n 2 n^2 n2。于是 ∣ M ∣ = ∑ 1 ≤ k 1 < k 2 < ⋯ < k n ≤ m ∣ A ( 1 , 2 , ⋯ , n ; k 1 , k 2 , ⋯ , k n ) ∣ ⋅ ∣ B ( k 1 , k 2 , ⋯ , k n ; 1 , 2 , ⋯ , n ) ∣ ⋅ ( − 1 ) m − n + x = ∑ 1 ≤ k 1 < k 2 < ⋯ < k n ≤ m ∣ A ( 1 , 2 , ⋯ , n ; k 1 , k 2 , ⋯ , k n ) ∣ ⋅ ∣ B ( k 1 , k 2 , ⋯ , k n ; 1 , 2 , ⋯ , n ) ∣ ⋅ ( − 1 ) m − n + n 2 = ∣ A B ∣ ( − 1 ) m \begin{aligned} |M| &= \sum\limits_{1 \leq k_1 < k_2 < \cdots < k_n \leq m} |A(1, 2, \cdots, n; k_1, k_2, \cdots, k_n)| \cdot |B(k_1, k_2, \cdots, k_n; 1, 2, \cdots, n)| \cdot (-1)^{m - n + x} \\ &= \sum\limits_{1 \leq k_1 < k_2 < \cdots < k_n \leq m} |A(1, 2, \cdots, n; k_1, k_2, \cdots, k_n)| \cdot |B(k_1, k_2, \cdots, k_n; 1, 2, \cdots, n)| \cdot (-1)^{m - n + n^2} \\ &= |AB| (-1)^m \end{aligned} ∣M∣=1≤k1<k2<⋯<kn≤m∑∣A(1,2,⋯,n;k1,k2,⋯,kn)∣⋅∣B(k1,k2,⋯,kn;1,2,⋯,n)∣⋅(−1)m−n+x=1≤k1<k2<⋯<kn≤m∑∣A(1,2,⋯,n;k1,k2,⋯,kn)∣⋅∣B(k1,k2,⋯,kn;1,2,⋯,n)∣⋅(−1)m−n+n2=∣AB∣(−1)m 于是 ∣ A B ∣ = ∑ 1 ≤ k 1 < k 2 < ⋯ < k n ≤ m ∣ A ( 1 , 2 , ⋯ , n ; k 1 , k 2 , ⋯ , k n ) ∣ ⋅ ∣ B ( k 1 , k 2 , ⋯ , k n ; 1 , 2 , ⋯ , n ) ∣ ⋅ ( − 1 ) n 2 − n = ∑ 1 ≤ k 1 < k 2 < ⋯ < k n ≤ m ∣ A ( 1 , 2 , ⋯ , n ; k 1 , k 2 , ⋯ , k n ) ∣ ⋅ ∣ B ( k 1 , k 2 , ⋯ , k n ; 1 , 2 , ⋯ , n ) ∣ \begin{aligned} |AB| &= \sum\limits_{1 \leq k_1 < k_2 < \cdots < k_n \leq m} |A(1, 2, \cdots, n; k_1, k_2, \cdots, k_n)| \cdot |B(k_1, k_2, \cdots, k_n; 1, 2, \cdots, n)| \cdot (-1)^{n^2 - n} \\ &= \sum\limits_{1 \leq k_1 < k_2 < \cdots < k_n \leq m} |A(1, 2, \cdots, n; k_1, k_2, \cdots, k_n)| \cdot |B(k_1, k_2, \cdots, k_n; 1, 2, \cdots, n)| \end{aligned} ∣AB∣=1≤k1<k2<⋯<kn≤m∑∣A(1,2,⋯,n;k1,k2,⋯,kn)∣⋅∣B(k1,k2,⋯,kn;1,2,⋯,n)∣⋅(−1)n2−n=1≤k1<k2<⋯<kn≤m∑∣A(1,2,⋯,n;k1,k2,⋯,kn)∣⋅∣B(k1,k2,⋯,kn;1,2,⋯,n)∣定理得证。
该证明参考了 Freopen 大佬的博客,详见参考资料。同样百度百科上有个很线代看不懂的证明。
对于 n n n 个点 m m m 条边的无向图 G G G 以及任意一个 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n, ∣ L i i ∣ |L_{ii}| ∣Lii∣ 即为它的生成树个数。
证明: 由转置引理 ∣ L i , i ∣ = ∣ B i , i B i , i T ∣ |L_{i, i}| = |B_{i, i} B_{i, i}^T| ∣Li,i∣=∣Bi,iBi,iT∣ 因为 B i , i , B i , i T B_{i, i}, B_{i, i}^T Bi,i,Bi,iT 分别是大小为 ( n − 1 ) × ( m − 1 ) , ( m − 1 ) × ( n − 1 ) (n - 1) \times (m - 1), (m - 1) \times (n - 1) (n−1)×(m−1),(m−1)×(n−1) 的矩阵,所以由 Binet - Cauchy 定理得 ∣ L i , i ∣ = ∣ B i , i B i , i T ∣ = ∑ 1 ≤ k 1 < k 2 < ⋯ < k n − 1 ≤ m ∣ B i , i ( 1 , 2 , ⋯ , n − 1 ; k 1 , k 2 , ⋯ , k n − 1 ) ∣ ⋅ ∣ B i , i T ( k 1 , k 2 , ⋯ , k n − 1 ; 1 , 2 , ⋯ , n − 1 ) ∣ |L_{i, i}| = |B_{i, i} B_{i, i}^T| = \sum_{1 \leq k_1 < k_2 < \cdots < k_{n - 1} \leq m} |B_{i, i}(1, 2, \cdots, n - 1; k_1, k_2, \cdots, k_{n - 1})| \cdot |B_{i, i}^T(k_1, k_2, \cdots, k_{n - 1}; 1, 2, \cdots, n - 1)| ∣Li,i∣=∣Bi,iBi,iT∣=1≤k1<k2<⋯<kn−1≤m∑∣Bi,i(1,2,⋯,n−1;k1,k2,⋯,kn−1)∣⋅∣Bi,iT(k1,k2,⋯,kn−1;1,2,⋯,n−1)∣ 由于 B i , i ( 1 , 2 , ⋯ , n − 1 ; k 1 , k 2 , ⋯ , k n − 1 ) = B i , i T ( k 1 , k 2 , ⋯ , k n − 1 ; 1 , 2 , ⋯ , n − 1 ) B_{i, i}(1, 2, \cdots, n - 1; k_1, k_2, \cdots, k_{n - 1}) = B_{i, i}^T(k_1, k_2, \cdots, k_{n - 1}; 1, 2, \cdots, n - 1) Bi,i(1,2,⋯,n−1;k1,k2,⋯,kn−1)=Bi,iT(k1,k2,⋯,kn−1;1,2,⋯,n−1),所以 ∣ L i , i ∣ = ∣ B i , i B i , i T ∣ = ∑ 1 ≤ k 1 < k 2 < ⋯ < k n − 1 ≤ m ∣ B i , i ( 1 , 2 , ⋯ , n − 1 ; k 1 , k 2 , ⋯ , k n − 1 ) ∣ ⋅ ∣ B i , i T ( k 1 , k 2 , ⋯ , k n − 1 ; 1 , 2 , ⋯ , n − 1 ) ∣ = ∑ 1 ≤ k 1 < k 2 < ⋯ < k n − 1 ≤ m ∣ B i , i ( 1 , 2 , ⋯ , n − 1 ; k 1 , k 2 , ⋯ , k n − 1 ) ∣ 2 \begin{aligned} |L_{i, i}| = |B_{i, i} B_{i, i}^T| &= \sum_{1 \leq k_1 < k_2 < \cdots < k_{n - 1} \leq m} |B_{i, i}(1, 2, \cdots, n - 1; k_1, k_2, \cdots, k_{n - 1})| \cdot |B_{i, i}^T(k_1, k_2, \cdots, k_{n - 1}; 1, 2, \cdots, n - 1)| \\ &= \sum_{1 \leq k_1 < k_2 < \cdots < k_{n - 1} \leq m} |B_{i, i}(1, 2, \cdots, n - 1; k_1, k_2, \cdots, k_{n - 1})|^2 \end{aligned} ∣Li,i∣=∣Bi,iBi,iT∣=1≤k1<k2<⋯<kn−1≤m∑∣Bi,i(1,2,⋯,n−1;k1,k2,⋯,kn−1)∣⋅∣Bi,iT(k1,k2,⋯,kn−1;1,2,⋯,n−1)∣=1≤k1<k2<⋯<kn−1≤m∑∣Bi,i(1,2,⋯,n−1;k1,k2,⋯,kn−1)∣2 由关联矩阵的定义可知, B ′ = B i , i ( 1 , 2 , ⋯ , n − 1 ; k 1 , k 2 , ⋯ , k n − 1 ) B' = B_{i, i}(1, 2, \cdots, n - 1; k_1, k_2, \cdots, k_{n - 1}) B′=Bi,i(1,2,⋯,n−1;k1,k2,⋯,kn−1) 就是由图 G G G 的边 k 1 , k 2 , ⋯ , k n − 1 k_1, k_2, \cdots, k_{n - 1} k1,k2,⋯,kn−1 构成的子图 G ′ G' G′ 的关联矩阵。由连通性引理二得,当 G ′ G' G′ 不连通时, ∣ B ′ ∣ = 0 |B'| = 0 ∣B′∣=0;由连通性引理三得,当 G ′ G' G′ 是树时, ∣ det B ′ ∣ = 1 |\det B'| = 1 ∣detB′∣=1,因此 ∣ B i , i ( 1 , 2 , ⋯ , n − 1 ; k 1 , k 2 , ⋯ , k n − 1 ) ∣ 2 = 1 |B_{i, i}(1, 2, \cdots, n - 1; k_1, k_2, \cdots, k_{n - 1})|^2 = 1 ∣Bi,i(1,2,⋯,n−1;k1,k2,⋯,kn−1)∣2=1 当且仅当由图 G G G 的边 k 1 , k 2 , ⋯ , k n − 1 k_1, k_2, \cdots, k_{n - 1} k1,k2,⋯,kn−1 构成的子图是树,得证。
Matrix - Tree 定理(生成树计数)的另类证明和简单拓展 - MoebiusMeow 矩阵树定理 - Freopen Matrix - Tree 矩阵树定理 - Lucky_Glass 拉普拉斯展开 - 百度百科 Binet - Cauchy 定理 - 百度百科