行列式入門與矩陣樹定理完整證明

前置技能

行列式

定義

對於一個 n×nn \times n 的矩陣 AA,記它第 ii 行第 jj 列的元素爲 ai,ja_{i, j},以及一個 1n1 \sim n 的排列 pp,記 λA(p)=(1)τ(p)i=1nai,pi\lambda_A(p) = (-1) ^ {\tau(p)} \prod_{i = 1}^{n} a_{i, p_i}(其中 τ(p)\tau(p)pp 的逆序對個數)則 A=detA=pλA(p)=p((1)τ(p)i=1nai,pi)|A| = \det A = \sum_{p} \lambda_A(p) = \sum_{p} \left( (-1) ^ {\tau(p)} \prod_{i = 1}^{n} a_{i, p_i} \right)(其中 A|A|detA\det A 都是 AA 的行列式的意思,後文有時爲了便於區分行列式和絕對值會使用 detA\det A,其餘大部分時候使用 A|A|)顯然行列式運算結果是數量。

簡單理解一下發現這樣的計算方法的時間複雜度是 O(nlognn!)O(n \cdot \log n \cdot n!)因此這個定義沒什麼用

性質

除了少數幾個,名字基本都是亂編的

拉普拉斯展開

對於一個 n×nn \times n 的矩陣 AA 和任意一個 1in1 \leq i \leq n,有 A=j=1n(1)i+jai,jAi,j|A| = \sum_{j = 1}^{n} (-1)^{i + j} a_{i, j} |A_{i, j}| 其中 Ai,jA_{i, j} 指矩陣 AA 刪去第 ii 行和第 jj 列的所有元素後形成的一個 (n1)×(n1)(n - 1) \times (n - 1) 的矩陣。這個計算式稱爲對第 ii 行進行拉普拉斯展開。

證明:
根據定義每個 λA(p)\lambda_A(p) 一定有一個因子 xx 滿足 x{ai,1,ai,2,,ai,n}x \in \{a_{i, 1}, a_{i, 2}, \cdots, a_{i, n}\},枚舉 jj 得到這個因子 ai,ja_{i, j} 和滿足 pi=jp_i = j 的排列 pp,然後將這個 pip_i 刪除,並把 pp 中所有大於 jj 的元素減一得到 qqqq1n11 \sim n-1 的排列),於是在 n,i,jn, i, j 確定時有了一個 ppqq 之間的一一對應的函數關係。

例如,當 n=3,i=1,j=2n = 3, i = 1, j = 2 時,滿足 p1=2p_1 = 2pp{2,1,3},{2,3,1}\{2, 1, 3\}, \{2, 3, 1\},將 22 刪除,得到{1,3},{3,1}\{1, 3\}, \{3, 1\},然後將 33 減一,得到 qq{1,2}\{1, 2\}{2,1}\{2, 1\};根據 n=3,i=1,j=2n = 3, i = 1, j = 2,亦可將 qq 還原爲 pp

ξ(p)=q\xi(p) = q,那麼 pλA(p)[j=pi]ai,j=pλAi,j(ξ(p))[j=pi]\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| 右邊變爲直接枚舉 ξ(p)\xi(p),即 pλA(p)[j=pi]ai,j=qλAi,j(q)=detAi,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}| pλA(p)[j=pi]=ai,jdetAi,j\left| \sum_{p} \lambda_A(p) \cdot [j = p_i] \right| = |a_{i, j} \cdot \det A_{i, j}| 再考慮正負號,即 τ(p)\tau(p)τ(ξ(p))\tau(\xi(p)) 的奇偶性的差別,這取決於 pip_i 前面大於 jj 的數量和 pip_i 後面小於 jj 的數量,即 k=1i1[pk>j]+k=i+1n[pk<j]=k=1i1[pk>j]+(j1k=1i1[pk<j])=k=1i1[pk>j]+j1(i1k=1i1[pk>j])=2k=1i1[pk>j]+(i+j)i+jmod  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} 於是 τ(p)=(1)i+jτ(ξ(p))\tau(p) = (-1)^{i + j} \tau(\xi(p)),則pλA(p)[j=pi]=(1)i+jai,jdetAi,j\sum_{p} \lambda_A(p) \cdot [j = p_i] = (-1)^{i + j} \cdot a_{i, j} \cdot \det A_{i, j}
於是 A=pλA(p)=j=1npλA(p)[j=pi]=j=1n(1)i+jai,jAi,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}|

(百度百科“拉普拉斯展開”中有一個看不怎麼懂的高端證明,但比較簡潔,emmm 感覺上跟我這個自己 yy 的證明可能差不多)

線性性

可乘性

對於任意 1in1 \leq i \leq nkk,若 A=(a1,1a1,2a1,nkai,1kai,2kai,nan,1an,2an,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}B=(a1,1a1,2a1,nai,1ai,2ai,nan,1an,2an,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},則 A=kB|A| = k|B|

證明:
根據定義,對於每個 ppλA(p)=kλB(p)\lambda_A(p) = k \cdot \lambda_B(p),得證。

可加性

對於任意 1in1 \leq i \leq nkka1,1a1,2a1,nai1,1ai1,2ai1,nai,1+bi,1ai,2+bi,2ai,n+bi,nai+1,1ai+1,2ai+1,nan,1an,2an,n=a1,1a1,2a1,nai1,1ai1,2ai1,nai,1ai,2ai,nai+1,1ai+1,2ai+1,nan,1an,2an,n+a1,1a1,2a1,nai1,1ai1,2ai1,nbi,1bi,2bi,nai+1,1ai+1,2ai+1,nan,1an,2an,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}

證明:
對第 ii 行拉普拉斯展開即證。

不重性

對於 n×n(n>1)n \times n (n > 1) 的矩陣 AA,若存在 1in,1jn,jj1 \leq i \leq n, 1 \leq j \leq n, j \neq j 使得對於任意 1kn1 \leq k \leq n 都有 ai,k=aj,ka_{i, k} = a_{j, k},即矩陣中某兩行對應相等,則 A=0|A| = 0

證明:
若某排列 pp 滿足 px=i,py=j(x<y)p_x = i, p_y = j (x < y),記 qqpp 交換第 x,yx, y 個元素後得到的排列,即 qy=i,qx=j(x<y)q_y = i, q_x = j (x < y),那麼 λA(p)=λA(q)\lambda_A(p) = -\lambda_A(q),因爲兩者逆序對個數相差 11
於是將所有 1n1 \sim n 的排列這樣兩兩配對,即可使所有 λA(p)\lambda_A(p) 抵消爲 00,得證。

可倍加性

對於任意 1in,1jn,jj1 \leq i \leq n, 1 \leq j \leq n, j \neq j
a1,1a1,2a1,nai,1ai,2ai,nan,1an,2an,n=a1,1a1,2a1,nai,1+kaj,1ai,2+kaj,2ai,n+kaj,nan,1an,2an,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,1a1,2a1,nai,1+kaj,1ai,2+kaj,2ai,n+kaj,nan,1an,2an,n=a1,1a1,2a1,nai,1ai,2ai,nan,1an,2an,n+a1,1a1,2a1,nkaj,1kaj,2kaj,nan,1an,2an,n()=a1,1a1,2a1,nai,1ai,2ai,nan,1an,2an,n+ka1,1a1,2a1,naj,1aj,2aj,nan,1an,2an,n()=a1,1a1,2a1,nai,1ai,2ai,nan,1an,2an,n+0()=a1,1a1,2a1,nai,1ai,2ai,nan,1an,2an,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}

轉置不變性

任意一個 n×nn \times n 的矩陣 AA,滿足 AT=A|A^T| = |A|ATA^T 表示矩陣 AA 的轉置,即 ai,jaj,ia_{i, j} \to a_{j, i}(換句話說,將 AA 沿“左上 - 右下”對角線翻折即得到 ATA^T),下同。

證明:
對於一個排列 pp,根據轉置的定義,令 ξ(p)=q (qpi=i)\xi(p) = q\ (q_{p_i} = i),那麼 λA(p)=λAT(ξ(p))\lambda_A(p) = \lambda_{A^T}(\xi(p))。考慮 τ(p)\tau(p)τ(ξ(p))\tau(\xi(p)) 的關係:
Ai,pi (1in)A_{i, p_i}\ (1 \leq i \leq n) 記做特殊點,令 Tp(i)\Tau_p(i) 表示 Ai,piA_{i, p_i} 的左下方的特殊點數量,Tp(i)\Tau'_p(i) 表示Ai,piA_{i, p_i} 的右上方的特殊點數量,則 τ(p)=i=1nTp(i)=i=1nTp(i)\tau(p) = \sum_{i = 1}^{n} \Tau_p(i) = \sum_{i = 1}^{n} \Tau'_p(i),由於是沿對角線翻折,所以顯然 Tp(i)=Tq(i)\Tau_p(i) = \Tau'_q(i)(事實上只是把“左下方”的特殊點變到“右上方”,“右上方”變到“左下方”),於是 τ(p)=τ(q)\tau(p) = \tau(q)
因此 λA(p)=λAT(ξ(p))\lambda_A(p) = \lambda_{A^T}(\xi(p)),得證。

可交換性

行可交換性

矩陣兩行交換,矩陣的行列式值反號。

證明:
交換 AA 的兩行 u,vu, v 可視爲將 vv 行加到 uu 行上(①)得到一個新矩陣 AA',再從 AA'vv 行上減去 AA'uu 行(②),再將 AA'uu 行全部取反(③)。根據可倍加性,① 和 ② 均不改變行列式的值,根據可乘性,③ 操作使行列式的值反號,得證。

列可交換性

矩陣兩列交換,矩陣行列式值反號。

證明:
根據轉置不變性,先轉置再用行可交換性交換兩行,再轉置回來即證。

優化行列式的計算

對矩陣 AA 的第一行進行拉普拉斯展開可以證明:當 AA 爲一個上三角矩陣(即任意 i>ji > j,滿足 ai,j=0a_{i, j} = 0)時:A=i=1nai,i|A| = \prod_{i = 1}^{n} a_{i, i} 發現高斯消元用到的是可倍加性、可交換性,於是我們對 AA 高斯消元,可以得到一個上三角矩陣,這個矩陣的對角線乘積即爲 AA 的行列式的絕對值(可交換性會使其反號)!於是我們做到了 O(n3)O(n^3) 求行列式的值。

矩陣樹定理

前置定義

對於一個無向圖 G=(V,E)G = (V, E),其中 V=n|V| = n(點數),E=m|E| = m(邊數):

  • GG 的每條邊任意分配一個方向,則它的關聯矩陣(大小爲 m×nm \times nBBbi,j={1 j  i 1 j  i 0b_{i, j} = \begin{cases} 1 & 點\ j\ 是邊\ i\ 的起點 \\ -1 & 點\ j\ 是邊\ i\ 的終點 \\ 0 & 其他\end{cases}
  • GG 的基爾霍夫矩陣(大小爲 n×nn \times nLLli,j={dii=jei,jijl_{i, j} = \begin{cases} d_i & i = j \\ -e_{i, j} & i \neq j\end{cases} (其中 did_i 表示 ii 號點的度,ei,je_{i, j} 連接點 i,ji, j 的邊的數量)

一些引理

轉置引理

L=BBTL = BB^T L,B,BTL, B, B^T 定義如上,乘法是矩陣乘法。

證明:
按照矩陣乘法的規則展開即證。
事實上如果定義兩個序列相乘的結果是對應位置的乘積之和的話,矩陣乘法將 BB 的列兩兩相乘得到了一個新矩陣,這個矩陣就是 LL

連通性引理

引理 1

GG 是一個連通圖,那麼 L=0|L| = 0

證明:
GG 是連通圖,那麼根據定義 LL 的每一列的元素之和都爲 00,再根據可倍加性,將其他所有行加到某一行上,這一行的元素就全部爲零,再對這一行進行拉普拉斯展開,得到 L=0|L| = 0

引理 2

GG 不連通,則對任意 1in1 \leq i \leq nLi,i=0|L_{i, i}| = 0

證明:
根據行列可交換性,我們將同一聯通塊的點換到一起,得到的新矩陣 LL' 滿足 detL=detL|\det L'| = |\det L|,並且 LL' 長這個樣子:(A10000A20000A30000Ak)\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}0\bold{0} 代表零矩陣,kk 是聯通塊的個數)
由於 GG 不連通,所以 k2k \geq 2,所以 Li,iL_{i, i} 至少包含一個 Ax(1xk)A_x (1 \leq x \leq k)。因爲 AxA_x 是一個獨立連通子圖,所以 AxA_x 可以經過適當操作使得其對角線上某個元素爲 00,進而 Li,i=0|L_{i, i}| = 0

引理 3

GG 是一個樹,則對任意 1in1 \leq i \leq ndetLi,i=1|\det L_{i, i}| = 1

證明:
將這個樹的結點拓撲排序,使得對於任意點 ii,去除掉所有 1i11 \sim i - 1 的點後 ii 的度數爲 11,這可以通過不斷“摘掉”葉子結點實現。然後以這個順序整理矩陣 LL 的各行得到 LL',我們對 LL' 模擬高斯消元的過程:
假設當前到了第 ii 行。沒有消元時,由於我們拓撲排序了,那麼 li,il'_{i, i} 右邊(“右邊”指所有 li,j (j>i)l'_{i, j}\ (j > i),“左邊”“上面”“下面”同理)和下面有且僅有 111-1,左邊和上面有且僅有 li,i1l'_{i, i} - 11-1;由於我們用前 i1i - 1 行消掉了 li,il'_{i, i} 前面的 li,i1l'_{i, i} - 11-1, 並且 li,il'_{i, i} 上面有 li,i1l'_{i, i} - 11-1,於是 li,il'_{i, i} 被加了 li,i1l'_{i, i} - 11-1,就變成了 11
按這樣高斯消元下去,最後一個元素(ln,nl'_{n, n}) 肯定是 00。但我們要求的是 Li,i=Li,i|L_{i, i}| = |L'_{i, i}|,它是 LL' 刪去了一行一列,因此 Li,iL'_{i, i} 消元過後的最後一個(ln1,n1l''_{n - 1, n - 1})是 11。於是對角線上的元素全部是 11,得證。

Binet - Cauchy 定理

AA 是一個 n×mn \times m 的矩陣,BB 是一個 m×nm \times n 的矩陣,有 AB={0n>mABn=m1k1<k2<<knmA(1,2,,n;k1,k2,,kn)B(k1,k2,,kn;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}A(1,2,,n;k1,k2,,kn)A(1, 2, \cdots, n; k_1, k_2, \cdots, k_n) 表示由 AA 的第 k1,k2,,knk_1, k_2, \cdots, k_n 列組成的矩陣;B(k1,k2,,kn;1,2,,n)B(k_1, k_2, \cdots, k_n; 1, 2, \cdots, n) 表示由 BB 的第 k1,k2,,knk_1, k_2, \cdots, k_n 行組成的矩陣)

證明:
我們構造兩個輔助矩陣:M=(A0IB),  N=(0ABIB)M = \begin{pmatrix} A & \bold{0} \\ -I & B\end{pmatrix},\ \ N = \begin{pmatrix} \bold{0} & AB \\ -I & B\end{pmatrix} 其中 II 是單位矩陣(“左上 - 右下”對角線爲 11 的矩陣)可以發現 M=N|M| = |N|,證明如下:
枚舉 MM 矩陣的第 i (n+1in+m)i\ (n + 1 \leq i \leq n + m) 行,然後將第 ii 行乘以 ak1a_{k_1} 後加到第 11 行,乘以 ak2a_{k_2} 後加到第 22 行,……,乘以 akna_{k_n} 後加到第 nn 行。這樣操作完後,根據矩陣乘法的定義,MM 變爲了 NN,又因爲倍加不變性,M=N|M| = |N|
用定義式計算 N|N|,由於只要 pp 選到 0\bold{0} 中的元素 λN(p)\lambda_N(p) 就爲 00,所以只考慮 p1,p2,,pn[m+1,m+n]p_1, p_2, \cdots, p_n \in [m + 1, m + n] 的情況,又因爲 ABAB 是個 n×nn \times n 的矩陣,所以 pn+1,pn+2,,pn+m[1,m]p_{n + 1}, p_{n + 2}, \cdots, p_{n + m} \in [1, m],所以 N=ABI=(1)mAB|N| = |AB| \cdot |-I| = (-1)^m |AB|
接下來分類計算 M|M|,並證明該定理:

  • n>mn > m 時(圖中 C=ABC = AB,下同):
    n > m
    用定義式計算 MM,發現排列 pp 無論如何取都會取到 0\bold{0} 中的元素(原因就是 n>mn > m),因此 M=0|M| = 0,即 (1)mAB=0(-1)^m |AB| = 0,即 AB=0|AB| = 0
  • n=mn = m 時:
    n = m
    用定義式計算 MM,顯然只有 p1,p2,,pn[1,n]p_1, p_2, \cdots, p_n \in [1, n]pn+1,pn+2,,pn+m[n+1,n+m]p_{n + 1}, p_{n + 2}, \cdots, p_{n + m} \in [n + 1, n + m]λM(p)\lambda_M(p) 不爲 00,於是 M=AB(1)n2|M| = |A| \cdot |B| \cdot (-1)^{n^2} 其中 (1)n2(-1)^{n^2} 即爲分開計算 A,BA, B 將兩者的排列合起來新形成的逆序對數。因而 AB(1)n2=AB(1)m|A| \cdot |B| \cdot (-1)^{n^2} = |AB| \cdot (-1)^m,於是 AB=AB(1)mn2=AB(1)nn2=AB|A||B| = |AB|(-1)^{m - n^2} = |AB|(-1)^{n - n^2} = |AB|
  • n<mn < m 時:
    n < m
    這時候我們枚舉 k1,k2,,kn[1,m]k_1, k_2, \cdots, k_n \in [1, m](就是定理中的 k1,k2,,knk_1, k_2, \cdots, k_n)表示在 AA 的各行中選的元素。爲了使 λM(p)0\lambda_M(p) \neq 0I-I 中就只能選對角線上的元素,又因爲 AA 中選的元素的正下方的那個 1-1 肯定不能選(因爲pp 是排列),所以在 BB 被選了元素的行一定和 AA 被選了元素的列一樣。舉個例子,假設 n=3n = 3,紅色是 A / BA\ /\ B 中含有被選中元素的列 // 行。
    例子
    這樣一來 A(1,2,,n;k1,k2,,kn)|A(1, 2, \cdots, n;k_1, k_2, \cdots, k_n)| 的那些排列就和 B(k1,k2,,kn;1,2,,n)|B(k_1, k_2, \cdots, k_n; 1, 2, \cdots, n)| 的那些排列形成了一一對應的函數關係,於是M=1k1<k2<<knmA(1,2,,n;k1,k2,,kn)B(k1,k2,,kn;1,2,,n)(1)mn+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} 其中 (1)mn(-1)^{m - n}I-I 的貢獻, xx 是“新構成”的逆序對個數,所謂新構成,就是三部分的逆序對個數之和:I-IAAI-IBBAABB。由於枚舉出的東西關於對角線對稱,所以I-IAA 之間的逆序對數等於 I-IBB 之間的逆序對數,於是 xx 可以轉化爲 AABB 之間的逆序對數,即 n2n^2。於是 M=1k1<k2<<knmA(1,2,,n;k1,k2,,kn)B(k1,k2,,kn;1,2,,n)(1)mn+x=1k1<k2<<knmA(1,2,,n;k1,k2,,kn)B(k1,k2,,kn;1,2,,n)(1)mn+n2=AB(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} 於是 AB=1k1<k2<<knmA(1,2,,n;k1,k2,,kn)B(k1,k2,,kn;1,2,,n)(1)n2n=1k1<k2<<knmA(1,2,,n;k1,k2,,kn)B(k1,k2,,kn;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}

定理得證。

該證明參考了 Freopen 大佬的博客,詳見參考資料。同樣百度百科上有個很線代看不懂的證明。

矩陣樹定理

對於 nn 個點 mm 條邊的無向圖 GG 以及任意一個 1in1 \leq i \leq nLii|L_{ii}| 即爲它的生成樹個數。

證明:
由轉置引理 Li,i=Bi,iBi,iT|L_{i, i}| = |B_{i, i} B_{i, i}^T| 因爲 Bi,i,Bi,iTB_{i, i}, B_{i, i}^T 分別是大小爲 (n1)×(m1),(m1)×(n1)(n - 1) \times (m - 1), (m - 1) \times (n - 1) 的矩陣,所以由 Binet - Cauchy 定理得 Li,i=Bi,iBi,iT=1k1<k2<<kn1mBi,i(1,2,,n1;k1,k2,,kn1)Bi,iT(k1,k2,,kn1;1,2,,n1)|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)| 由於 Bi,i(1,2,,n1;k1,k2,,kn1)=Bi,iT(k1,k2,,kn1;1,2,,n1)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),所以 Li,i=Bi,iBi,iT=1k1<k2<<kn1mBi,i(1,2,,n1;k1,k2,,kn1)Bi,iT(k1,k2,,kn1;1,2,,n1)=1k1<k2<<kn1mBi,i(1,2,,n1;k1,k2,,kn1)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} 由關聯矩陣的定義可知,B=Bi,i(1,2,,n1;k1,k2,,kn1)B' = B_{i, i}(1, 2, \cdots, n - 1; k_1, k_2, \cdots, k_{n - 1}) 就是由圖 GG 的邊 k1,k2,,kn1k_1, k_2, \cdots, k_{n - 1} 構成的子圖 GG' 的關聯矩陣。由連通性引理二得,當 GG' 不連通時,B=0|B'| = 0;由連通性引理三得,當 GG' 是樹時,detB=1|\det B'| = 1,因此 Bi,i(1,2,,n1;k1,k2,,kn1)2=1|B_{i, i}(1, 2, \cdots, n - 1; k_1, k_2, \cdots, k_{n - 1})|^2 = 1 當且僅當由圖 GG 的邊 k1,k2,,kn1k_1, k_2, \cdots, k_{n - 1} 構成的子圖是樹,得證。

參考資料

Matrix - Tree 定理(生成樹計數)的另類證明和簡單拓展 - MoebiusMeow
矩陣樹定理 - Freopen
Matrix - Tree 矩陣樹定理 - Lucky_Glass
拉普拉斯展開 - 百度百科
Binet - Cauchy 定理 - 百度百科

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章