本篇為MIT公開課——線性代數 筆記。
這節課開始我們將把重點轉向如何在空間中計算出向量,由定義轉向算法。
\(Ax=0\)的求解
求解\(Ax=0\) 的算法就是消元。
舉例
\[A=\left( \begin{array}{cccc} 1 & 2 & 2 & 2 \\ 2 & 4 & 6 & 8 \\ 3 & 6 & 8 & 10 \\ \end{array} \right) \]
消元
\(E_{21}、E_{31}\) 消元:
主元是第一行第一列的"1",結果為
\[\left( \begin{array}{cccc} 1 & 2 & 2 & 2 \\ 0 & 0 & 2 & 4 \\ 0 & 0 & 2 & 4 \\ \end{array} \right) \]
發現主元2出現0,而且行交換無效,說明:第二列相關於第一列,所以我們不去管第二列,繼續找主元2:第二行第三列 "2".
繼續消元
\(E_{33}\) 消元,結果為 階梯形式矩陣 \(U\)
\[\left( \begin{array}{cccc} 1 & 2 & 2 & 2 \\ 0 & 0 & 2 & 4 \\ 0 & 0 & 0 & 0 \\ \end{array} \right)=U \]
消元完后,就變成求解 \(Ux=0\) 。
秩
這個例子中,矩陣的主元的數量只有 \(2\) ,該數字稱為矩陣的 “秩”(rank)。 它的意義就是表示主元的個數。
主列和自由列
主列:主元所在的列。其他列稱為自由列。
該例子中,主列是列 \(1\) 和列 \(3\).
自由列是 列 \(2\) 和列 \(4\) .
自由列的意思是,可以自由或任意分配數值給對應列的未知數。
我們可以對列二和列四的乘數項 \(x_{2}、x_{4}\) 任意取值。
然后只需要求解 \(x_{1}\) 和 \(x_{3}\).
取值:
\[x=\left( \begin{array}{c} \square \\ 1 \\ \square \\ 0 \\ \end{array} \right) \]
回代和特解
\[x_1+2 x_2+2 x_3+2 x_4=0 \\ 2 x_3+4 x_4=0 \]
可以求得
\[x=\left( \begin{array}{c} -2 \\ 1 \\ 0 \\ 0 \\ \end{array} \right) \]
這是零空間的一個向量,也是\(Ax=0\) 的一個解。
將她乘以任意倍數,就能得到四維空間中一條無限延申的直線。
\[x=c\left( \begin{array}{c} -2 \\ 1 \\ 0 \\ 0 \\ \end{array} \right) \]
但它不是整個零空間,因為 \(x_{2}、x_{4}\) 還可以取其他的值。
取值:
\[x=\left( \begin{array}{c} \square \\ 0 \\ \square \\ 1 \\ \end{array} \right) \]
可以求得另一個零空間中的向量:
\[x=d\left( \begin{array}{c} 2 \\ 0 \\ -2 \\ 1 \\ \end{array} \right) \]
這樣我們就得到零空間中的兩個向量,下面我們就能求出整個零空間。 \(Ax=0\) 的所有解。
這兩個解稱為特解,即特定的解。特定在於給自由變量分配特定值。給自由變量分配的是0和1. 每對自由變量都對應着一個特解。
兩個特解的所有的線性組合就是整個零空間。即
\[x=c\left( \begin{array}{c} -2 \\ 1 \\ 0 \\ 0 \\ \end{array} \right)+d\left( \begin{array}{c} 2 \\ 0 \\ -2 \\ 1 \\ \end{array} \right) \]
總結
對於\(m*n\) 矩陣,\(n\) 變量,若 秩 \(r=2\),主變量就有 r 個,自由變量 就有 \(n-r\) 。
\(r\) 個主變量,表示只有 \(r\) 個方程起作用。
剩下的 \(n-r\) 個自由變量可以任意賦值。
簡化行階梯形式
簡化行階梯形式我們稱為 \(R\).她是對階梯形式矩陣 \(U\) 的簡化。
\[\left( \begin{array}{cccc} 1 & 2 & 2 & 2 \\ 0 & 0 & 2 & 4 \\ 0 & 0 & 0 & 0 \\ \end{array} \right)=U \]
通過消元我們發現,行三全部是0的出現,是因為,行三是行一和行二的線性組合。消元會把它剔除。
簡化的方法就是"向上消元",讓主元上方都是0.
在主元二向上消元
\[\left( \begin{array}{cccc} 1 & 2 & 2 & 2 \\ 0 & 0 & 2 & 4 \\ 0 & 0 & 0 & 0 \\ \end{array} \right)\rightarrow \left( \begin{array}{cccc} 1 & 2 & 0 & -2 \\ 0 & 0 & 2 & 4 \\ 0 & 0 & 0 & 0 \\ \end{array} \right) \]
將結果再除以主元"2",解不變。
因為\(2 x_3+4 x_4=0\)和 \(x_3+2 x_4=0\) 的解是一樣的,除以某個倍數解不會變。所以我們可以再次化簡,記為矩陣 \(R\):
\[\left( \begin{array}{cccc} 1 & 2 & 0 & -2 \\ 0 & 0 & 1 & 2 \\ 0 & 0 & 0 & 0 \\ \end{array} \right)=R \]
現在所有主元都是"1"。這就是矩陣 \(A\) 的簡化行階梯形式。她可以通過matlab的 rref 函數得出來。
這樣我們就經過 \(\text{Ax}=0\rightarrow \text{Ux}=0\rightarrow \text{Rx}=0\) 的過程。
我們重新進行回代,通過 \(R\) 也可以求解兩個特解。
\[x_1+2 x_2-2 x_4=0\\ x_3+2 x_4=0\\ \]
解沒有改變。
設想:如果我們把 \(R\) 的主列和自由列各放在一邊,即列交換:
\[\left( \begin{array}{cccc} 1 & 0 & 2 & -2 \\ 0 & 1 & 0 & 2 \\ 0 & 0 & 0 & 0 \\ \end{array} \right) \]
左邊兩列是主列,右邊兩列就是自由列。
第三行因為是前兩行線性組合,不管她。
左邊得到一個單位矩陣 \(I\) ,右邊自由部分記為 \(F\) .
再看零空間:
\[x=c\left( \begin{array}{c} -2 \\ 1 \\ 0 \\ 0 \\ \end{array} \right)+d\left( \begin{array}{c} 2 \\ 0 \\ -2 \\ 1 \\ \end{array} \right) \]
由於系數矩陣進行列交換,我們需要將她的兩個特解行交換。
\[x=c\left( \begin{array}{c} -2 \\ 0 \\ 1 \\ 0 \\ \end{array} \right)+d\left( \begin{array}{c} 2 \\ -2 \\ 0 \\ 1 \\ \end{array} \right) \]
會發現:
\(x_{1}、x_{3}\) 的兩個特解上半部分正好是自由部分的相反數。
因為 \(F\) 回代后,需要移動到等式的另一側,正好就是 \(x_{1}、x_{3}\) 的兩個特解。
零空間矩陣
假設方程組已經是 \(rref\) 形式,即
\[R=\left( \begin{array}{cc} I & F \\ 0 & 0 \\ \end{array} \right) \]
\(I\) 為 \(r*r\) 矩陣,於是有 \(r\) 個主行,\(n-r\) 個自由列, 我們要解 \(Rx=0\) .
我們可以構建一個 “零空間矩陣”,記為 \(N\),她的各列由特解組成。
簡化行階梯形式的目的在於,她可以一次性給出特解,
什么 \(N\) 可以滿足\(RN=0\) ,我們將 \(I\) 放在主變量位置,\(-F\) 放在自由變量位置,通過乘法法則,我們就能知道滿足。
\[N=\left( \begin{array}{c} -F \\ I \\ \end{array} \right) \]
總結舉例
對 \(Ax=0\) 整個算法舉例
\[A=\left( \begin{array}{ccc} 1 & 2 & 3 \\ 2 & 4 & 6 \\ 2 & 6 & 8 \\ 2 & 8 & 10 \\ \end{array} \right) \]
他有兩個主元,因為第三列是前兩列的線性組合。在消元過程中就會體現出哪些是主元行/列,並把相關項剔除。
第一步:向下消元
\(E_{21}、E_{31}、E_{41}\)消元
\[\left( \begin{array}{ccc} 1 & 2 & 3 \\ 2 & 4 & 6 \\ 2 & 6 & 8 \\ 2 & 8 & 10 \\ \end{array} \right)\rightarrow \left( \begin{array}{ccc} 1 & 2 & 3 \\ 0 & 0 & 0 \\ 0 & 2 & 2 \\ 0 & 4 & 4 \\ \end{array} \right) \]
主元2為“0”,發現可以行交換解決:
\[\left( \begin{array}{ccc} 1 & 2 & 3 \\ 0 & 0 & 0 \\ 0 & 2 & 2 \\ 0 & 4 & 4 \\ \end{array} \right)\rightarrow \left( \begin{array}{ccc} 1 & 2 & 3 \\ 0 & 2 & 2 \\ 0 & 0 & 0 \\ 0 & 4 & 4 \\ \end{array} \right) \]
主元2為"2",繼續向下消元,\(E_{42}\):
\[\left( \begin{array}{ccc} 1 & 2 & 3 \\ 0 & 2 & 2 \\ 0 & 0 & 0 \\ 0 & 4 & 4 \\ \end{array} \right)\rightarrow \left( \begin{array}{ccc} 1 & 2 & 3 \\ 0 & 2 & 2 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{array} \right)=U \]
第二步:特解
秩為2.兩個主變量 \(x_{1}、x_{2}\)和一個自由變量 \(x_{3}\)。
為自由變量賦上方便計算的數值,將\(x_{3}\) 取值 為1,因為取值為0求主變量,全部變量都是0,沒有意義。
\[x=\left( \begin{array}{c} \square \\ \square \\ 1 \\ \end{array} \right) \]
回代:
\[x_{1}+2x_{2}+3x_{3}=0\\ 2x_{2}+2x_{3}=0 \]
代入,可以求得特解
\[x=\left( \begin{array}{c} -1 \\ -1 \\ 1 \\ \end{array} \right) \]
第三步:零空間
將特解乘以某個倍數,即可得到整個零空間:
\[x=c\left( \begin{array}{c} -1 \\ -1 \\ 1 \\ \end{array} \right) \]
整個零空間是一條直線。
第四步:簡化矩陣\(R\)
從最后面主元開始向上消元:
\[\left( \begin{array}{ccc} 1 & 2 & 3 \\ 0 & 2 & 2 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{array} \right)\rightarrow \left( \begin{array}{ccc} 1 & 0 & 1 \\ 0 & 2 & 2 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{array} \right) \]
行二可以除以主元2繼續化簡:
\[\left( \begin{array}{ccc} 1 & 0 & 1 \\ 0 & 2 & 2 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{array} \right)\rightarrow \left( \begin{array}{ccc} 1 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{array} \right)=R \]
\(R\) 中單位陣 \(I=\left( \begin{array}{cc} 1 & 0 \\ 0 & 1 \\ \end{array} \right)\) ,自由部分 \(F=\left( \begin{array}{c} 1 \\ 1 \\ \end{array} \right)\) .
可以看到 \(x\) 的特解也包含
\(I=\left( \begin{array}{c} 1 \\ \end{array}\right)\),
\(-F=\left( \begin{array}{c} -1 \\ -1 \\ \end{array}\right)\)
零空間矩陣 \(N\) 就是
\[N=\left( \begin{array}{c} -F \\ I \\ \end{array} \right) \]
她是將所有特解作為列的矩陣。