代数余子式和伴随矩阵
代數余子式
給定 $n$ 階方陣 $A=(a_{ij})$, 定義 $a_{ij}$ 的余子式 $M_{ij}$ 為 $A$ 劃去第 $i$ 行第 $j$ 列后的行列式,$a_{ij}$ 的代數余子式 $A_{ij}=(-1)^{i+j}M_{ij}$.
代數余子式可以用于行列式的求值,比如按第 $r$ 行展開:
$$egin{equation}det A=sum_{c=1}^na_{rc}A_{rc}end{equation}$$
按第 $c$ 列展開是同理的。
伴隨矩陣
定義
在 $(1)$ 式中,如果把 $a_{rc}$ 中的 $r$ 替換成 $i
e r$, 則該乘積對應了將 $A$ 的第 $i$ 行替換成第 $r$ 行后的行列式——該行列式有兩行相等,所以它等于 $0$.
所以我們有 $sum_{c=1}^na_{ic}A_{jc}=det A cdot [i=j]$, 把它寫成矩陣乘法就是:
$$A(A_{ij})^{mathrm T}=det A cdot I_n$$
我們定義 $A^*=(A_{ij})^{mathrm T}$ 是 $A$ 的伴隨矩陣。
同樣的結論對列也成立,所以 $AA^*=A^*A=det A cdot I_n$.
計算
如果 $mathrmr(A)=n$, 用高斯消元法分別求出 $det A$ 和 $A^{-1}$,$A^*=det A cdot A^{-1}$.
如果 $mathrmr(A) le n-2$, $A$ 的任意 $n-1$ 階子式都為 $0$, 所以 $A^*=O$.
如果 $mathrmr(A)=n-1$:
20200628更新:更正了一些細節,感謝Rose_Max指出錯誤。
假設 $A$ 的列向量組為 $vec c_1, vec c_2, ldots, vec c_n$.
由它們線性相關,可知存在不全為 $0$ 的實數 $q_1, q_2, ldots, q_n$ 滿足 $sum_{i=1}^nq_ivec c_i=vec 0$. 不妨設 $q_c
e 0$.
考慮同行兩余子式 $M_{ri}$ 和 $M_{rc}$ 的關系,不妨討論 $i<c$ 的情況,$i>c$ 類似。不難發現,如果我們將 $M_{ri}$ 的第 $i$ 至 $c-2$ 列向右推移,而第 $c-1$ 列移動到第 $i$ 列,唯一的不同點是 $M_{ri}$ 的第 $i$ 列為 $vec c_c$ 刪去第 $r$ 行,$M_{rc}$ 的第 $i$ 列為 $vec c_i$ 刪去第 $r$ 行。
聯系上述線性相關式,可設 $M'$ 表示在 $M_{ri}$ 進行推移的基礎上,把第 $i$ 列乘以 $q_c$, 并與 $M_{rc}$ 的第 $i$ 列的 $q_i$ 倍相加,所得到的 $n-1$ 階行列式。
那么 $M'=q_c(-1)^{c-i}M_{ri}+q_iM_{rc}$.
最后,將 $M'$ 的第 $i$ 列依次加上其對應“原行列式的第 $j
otin{i, c}$ 列”的列的 $q_j$ 倍。
這樣,$M'$ 的值不變,而第 $i$ 列全為 $0$. 這說明了$q_c(-1)^{c-i}M_{ri}+q_iM_{rc}=M'=0$.
上述過程比較抽象,舉一例說明。
例如,原矩陣為
$$egin{pmatrix}1&5&5\-3&3&6\0&6&7end{pmatrix}$$
其列向量組為
$$vec c_1=egin{pmatrix}1\-3\0end{pmatrix}, vec c_2=egin{pmatrix}5\3\6end{pmatrix},vec c_3=egin{pmatrix}5\6\7end{pmatrix}$$
它們滿足關系式 $5vec c_1-7vec c_2+6vec c_3=vec 0$.
考慮其余子式 $M_{11}$ 與 $M_{12}$:
$$M_{11}=egin{vmatrix}3&6\6&7end{vmatrix}, M_{12}=egin{vmatrix}-3&6\0&7end{vmatrix}$$
把 $M_{11}$ 的第 $1$ 列翻 $-7$ 倍,與 $M_{12}$ 的第 $1$ 列的 $5$ 倍相加:
$$-7M_{11}=egin{vmatrix}-21&6\-42&7end{vmatrix}$$
$$5M_{12}=egin{vmatrix}-15&6\0&7end{vmatrix}$$
$$-7M_{11}+5M_{12}=M'=egin{vmatrix}-36&6\-42&7end{vmatrix}$$
把 $M'$ 的第 $2$ 列翻 $6$ 倍加到第 $1$ 列得:
$$M'=egin{vmatrix}0&6\0&7end{vmatrix}=0$$
所以
$$q_cA_{ri}-q_iA_{rc}=(-1)^{r+c}left(q_c(-1)^{c-i}M_{ri}-q_iM_{rc}ight)=0$$
即
$$A_{ri}=frac{q_i}{q_c}A_{rc}$$
同樣的結論對列也成立。
于是對于列向量 $vec p=(p_1p_2 cdots p_n)^{mathrm T}$ 和行向量 $vec q=(q_1q_2 cdots q_n)$ 使得 $Avec p=vec 0$, $vec qA=vec 0$, 不妨設 $p_r, q_c
e 0$, 就有 $A_{ij}=frac{p_iq_j}{p_rq_c}A_{rc}$.
$vec p$ 與 $vec q$ 都可以通過高斯消元法解方程組解出,而代數余子式 $A_{rc}$ 也可以通過高斯消元法求出。
綜上所述,求一個矩陣的伴隨矩陣,時間復雜度為 $O(n^3)$.
應用
通過伴隨矩陣,可以求出矩陣所有元素的余子式。
例 給定有向圖,求每條邊各含于多少棵以 $R$ 為根的所有生成內向樹。
解生成樹計數的方法見這篇文章。
計算含有 $left<u, vight>$ 的生成內向樹個數,相當于把 $u$ 的出邊除了 $left<u, vight>$ 外全部刪去后的生成內向樹計數。
這就是把拉普拉斯矩陣的第 $u$ 行替換成僅有第 $u$ 項為 $1$, 第 $v$ 項為 $-1$ 的行,然后劃去第 $R$ 行第 $R$ 列求余子式。
這等價于,拉普拉斯矩陣去掉第 $u, R$ 行、第 $u, R$ 列的余子式,減去去掉第 $u, R$ 行、第 $v, R$ 列的余子式。
將拉普拉斯矩陣去掉第 $R$ 行、第 $R$ 列作為矩陣 $A$, 那么就轉化為求 $A$ 的所有余子式。
這里不用討論那么多情況,因為 $mathrm r(A)<n$ 意味著不存在生成內向樹。
總結
以上是生活随笔為你收集整理的代数余子式和伴随矩阵的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle Golden Gate 系
- 下一篇: 恼人的函数指针(一)