前言·參考資料
學完某個知識的時候似乎會進入賢者時間。
參考資料:
《信息學競賽中的線性代數》 -- 董克凡
《線性代數》 -- __debug
《OI綜合題單》 -- command_block
行列式
矩陣 \(A\) 的行列式用 \(|A|\) 或 \({\rm det}(A)\) 表示。
定義
對於一個 n*n 的矩陣 \(A\) , \(|A| = \sum\limits_{\sigma}sign(\sigma)a_{1,\sigma_1}a_{2,\sigma_2}\cdots a_{n,\sigma_n}\) , 其中 \(\sigma\) 為 n 階排列, \(sign(\sigma)\begin{cases}-1, \;\; \sigma的逆序對數是奇數 \\ +1, \;\; \sigma的逆序對數是偶數1\end{cases}\) 。
等價定義
其中, \(M_{i,j}\) 為矩陣 \(A\) 刪去第 i 行與第 j 列后的 n-1 階矩陣的行列式的值, 稱為 A 的余子式。(刪去某一行后, 要以被刪去行的前一行和后一行每列對接的方式拼接, 刪去列類似)
例子
對於二元一次方程組
其解可表示為 \(x_1 = \dfrac{b_1a_{22}-b_2a_{12}}{a_{11}a_{12}-a_{12}a_{21}}\) , \(x_2=\dfrac{b_2a_{11}-b_1a_{21}}{a_{11}a_{22}-a_{12}a_{21}}\) 。
用行列式來表示 \(a_{11}a_{12}-a_{12}a_{21}\) :
用行列式來表示解:
性質
-
\(|A| = |A^T|\)
-
\(|I| = 1\), 推廣:\(\left|\left[\begin{array}{c} \lambda_1 & & 0\\ & \ddots & \\ 0& & \lambda_n\end{array}\right]\right| = \prod\limits_{i=1}^n \lambda_i\) 。(\(I\) 是矩陣乘法的單位元, 稱為單位矩陣, 就是除了左上到右下那條對角線都為 1 之外, 其他元素都為 0 的矩陣)
-
\(|A*B| = |A| * |B|\)
-
\(\left|\left[\begin{array}{cccc} A & 0 \\ 0 & B \end{array}\right]\right| = |A|*|B|\)
-
若矩陣某一行或某一列的數都表示為兩數之和, 則可進行分解:
\(\left|\left[\begin{array}{cccc} a_{11}+b_{11} & \cdots & a_{1n}+b{1n} \\ a_{21} & \cdots & a_{2n} \\ \vdots & \ddots & \vdots \\ a_{n1} & \cdots & a_{nn}\end{array}\right]\right| = \left|\left[\begin{array}{cccc} a_{11} & \cdots & a_{1n} \\ a_{21} & \cdots & a_{2n} \\ \vdots & \ddots & \vdots \\ a_{n1} & \cdots & a_{nn}\end{array}\right]\right| + \left|\left[\begin{array}{cccc} b_{11} & \cdots & b_{1n} \\ a_{21} & \cdots & a_{2n} \\ \vdots & \ddots & \vdots \\ a_{n1} & \cdots & a_{nn}\end{array}\right]\right|\)
-
對矩陣的某一行或某一列同乘一個數 k 后, 行列式變為原矩陣行列式的 k 倍。
-
把矩陣的某一行加上另一行的若干倍或把矩陣某一列加上另一列的若干倍, 行列式不變
-
上三角矩陣 滿足當 \(i>j\) 時, \(a_{ij}=0\), 下三角矩陣 滿足當 \(i<j\) 時, \(a_{i,j}=0\) , 對於這兩種矩陣, 行列式為主對角線上元素的乘積。
-
互換矩陣的某兩行或某兩列, 行列式變成原矩陣行列式的 -1 倍, 從這個性質推出, 如果矩陣有某兩行或某兩列相等, 則其行列式為 0 .
求值
利用性質 6~9 , 可以用高斯消元求矩陣的行列式。
附錄:性質的證明
-
套第一個定義,顯然。
-
設 \(A=\{a_{ij}\}\) , \(B = \{b_{ij}\}\) , 則:
\[|A*B| = \sum\limits_{\sigma}sign(\sigma)[\sum\limits_{k=1}^n a_{1k}*b_{k\sigma_1}]*[\sum\limits_{k=1}^n a_{2k}*b_{k\sigma_2}]*\cdots*[\sum\limits_{k=1}^n a_{nk}*b_{k\sigma_n}] \\ = \cdots \\ =[\sum\limits_{\sigma}sign(\sigma)a_{1,\sigma_1}a_{2,\sigma_2}\cdots a_{n,\sigma_n}] * [\sum\limits_{\sigma}sign(\sigma)b_{1,\sigma_1}b_{2,\sigma_2}\cdots b_{n,\sigma_n}] \]我不會證了。
-
套第一個定義展開 \(|A|*|B|\) , 顯然。
-
這個是下面幾個的基礎, 證明了這個, 下面幾個證明行的情況成立就行了。這個其實比較顯然, 要證明 \(\sum\limits_{\sigma}sign(\sigma)a_{1,\sigma_1}a_{2,\sigma_2}\cdots a_{n,\sigma_n} = \sum\limits_{\sigma}sign(\sigma)a_{\sigma_1,1}a_{\sigma_2,2}\cdots a_{\sigma_n,n}\)
, 觀察 \(a_{1,\sigma_1}a_{2,\sigma_2}\cdots a_{n,\sigma_n}\) , 把這些東西按照第二個下標(即 \(\sigma_i\))從小到大排序, 就成了 \(a_{\beta_1,1}a_{\beta_2,2}\cdots a_{\beta_n,n}\) , 如果 \(\sigma_i\) 和 \(\sigma_j\) 為逆序對, 排序后它們的第一個下標 \(j\) 和 \(i\) 也必然構成逆序對。 然后就比較顯然了。
- 挺顯然的
- 依然是挺顯然的
- 根據 4. 和 8. 構造即可
- 顯然
- 按照定義式一看一看, 找找對應關系, 也很顯然