1. 程式人生 > >線性代數之——消元法

線性代數之——消元法

1. 消元的思想

針對下面的方程,我們無法直接得到方程的解。

\[\begin{alignedat}{2} &x \space- \space&2&y \space=\space 1 \\ 3&x\space+\space&2&y \space=\space 11 \end{alignedat}\]

但如果我們將第二個方程減去第一個方程的 3 倍,上面的方程組就變成了下面這樣。

\[ \begin{alignedat}{2} &x \space- \space&2&y \space=\space 1 \\ &\space\space&8&y \space=\space 8 \end{alignedat}\]

這時候,我們就可以直接得到 \(y=1\),進而從第一個方程得到 \(x=3\)

可以看到,消元之後,方程組變成了一個下三角(upper triangular)的形式,然後我們就可以用迴帶法(back substitution)來快速地解出方程組的解。

進行消元的那一行的第一個非零值稱為主元(pivot),消元時候的乘數就等於待消項的係數除以主元,在上面的例子中,乘數 \(3 = 3 / 1\)。一般地,乘數可以表示為
\[l_{ij} = \frac{第\space i\space 行待消去項的係數}{第 \space j \space行的主元}\]

\[ \begin{alignedat}{2} 4&x \space- \space&8&y \space=\space 4 \\ 3&x\space+\space&2&y \space=\space 11 \end{alignedat}\]

如果我們改變了第一個方程,那麼乘數就等於 \(3 / 4\)。消元之後,所有的主元都位於下三角的對角線上,並且主元不能是 0

\[ \begin{alignedat}{2} 4&x \space- \space&8&y \space=\space 4 \\ &\space\space&8&y \space=\space 8 \end{alignedat}\]

2. 消元的失效

  • 無解
    \[\begin{alignedat}{2} &x \space- \space&2&y \space=\space 1 \\ 3&x\space-\space&6&y \space=\space 11 \end{alignedat} \quad{消元后}\quad \begin{alignedat}{2} &x \space- \space&2&y \space=\space 1 \\ &\space\space&0&y \space=\space 8 \end{alignedat}\]

這種情況下,我們遇到了 \(0y = 8\),說明原方程組無解。從行影象中,我們也可以看到,兩條平行的直線無法相交於一點。而在列影象中,兩個在同一方向上的向量不可能線性組合出不在這個方向上的向量。

  • 無窮解
    \[\begin{alignedat}{2} &x \space- \space&2&y \space=\space 1 \\ 3&x\space-\space&6&y \space=\space 3 \end{alignedat} \quad{消元后}\quad \begin{alignedat}{2} &x \space- \space&2&y \space=\space 1 \\ &\space\space&0&y \space=\space 0 \end{alignedat}\]

這種情況下,我們遇到了 \(0y = 0\),任何的 \(y\) 值都滿足要求,此時 \(y\) 是“自由”的,確定了 \(y\) 之後 \(x\) 則由第一個方程確定。

從行影象中,我們也可以看到,兩條直線相同,因此整條直線都是交點。而在列影象中,左邊的兩個向量和右邊的向量方向都相同,有無窮多個線性組合都可以產生右邊的向量。

對於有 \(n\) 個方程的方程組,如果我們得不到 \(n\) 個主元,那麼消元就會導致 \(0\not = 0,無解\) 或者 \(0=0,無窮解\) ,只有正好有 \(n\) 個主元的時候,方程組才有解,但我們可能需要進行方程的交換。

  • 需要行交換

\[\begin{alignedat}{2} 0&x \space+ \space&2&y \space=\space 4 \\ 3&x\space-\space&2&y \space=\space 5 \end{alignedat} \quad{消元后}\quad \begin{alignedat}{2} 3&x\space-\space&2&y \space=\space 5 \\ &\space\space&2&y \space=\space 4 \end{alignedat}\]

一開始,第一行的主元為 0,行交換後,我們得到了兩個主元 3 和 2,然後,方程就有了正常的解。

3. 三個未知數

\[\begin{alignedat}{2} 2&x \space+\space&4&y \space-\space&2&z=\space 2 \\ 4&x \space+\space&9&y \space-\space&3&z=\space 8\\ -2&x \space-\space&3&y \space+\space&7&z=\space 10 \end{alignedat}\]

第一步,方程 2 減去 2 倍的方程 1,得到 \(y+z=4\)
第二步,方程 3 減去 -1 倍的方程 1,得到 \(y+5z=12\)
第一步,方程 3 減去 1 倍的方程 2,得到 \(4z=8\)

\[\begin{alignedat}{2} \boldsymbol 2&x \space+\space&4&y \space-\space&2&z=\space 2 \\ & \space\space&\boldsymbol 1&y \space+\space&1&z=\space 8\\ & \space\space&& \space\space&\boldsymbol 4&z=\space 8 \end{alignedat}\]

三個主元分別為 2, 1, 4,然後我們就可以用迴帶法求出方程組的解。

4. 用矩陣的形式來消元

\[\begin{alignedat}{2} 2&x_1 \space+\space&4&x_2 \space-\space&2&x_3=\space 2 \\ 4&x_1\space+\space&9&x_2 \space-\space&3&x_3=\space 8\\ -2&x_1 \space-\space&3&x_2 \space+\space&7&x_3=\space 10 \end{alignedat} \leftrightarrow \begin{bmatrix} 2&4&-2 \\ 4&9&-3\\-2&-3&7\end{bmatrix} \begin{bmatrix} x_1 \\ x_2\\x_3 \end{bmatrix} = \begin{bmatrix} 2 \\ 8\\10 \end{bmatrix}\]

對方程的兩邊同時進行一步消元,第 2 個方程減去第 1 個方程的 2 倍,我們可以得到:

\[\begin{bmatrix} 2&4&-2 \\ 0&1&1\\-2&-3&7\end{bmatrix} \begin{bmatrix} x_1 \\ x_2\\x_3 \end{bmatrix} = \begin{bmatrix} 2 \\ 4\\10 \end{bmatrix}\]

相當於左右兩邊都乘以了一個矩陣 \(E_{21}\)

\[E_{21} = \begin{bmatrix} 1&0&0 \\ -2&1&0\\0&0&1\end{bmatrix}\]

\[E_{21} = \begin{bmatrix} 1&0&0 \\ -2&1&0\\0&0&1\end{bmatrix} * \begin{bmatrix} row1 \\ row2\\row3\end{bmatrix} = \begin{bmatrix} row1 \\ row2-2row1\\row3\end{bmatrix}\]

\(E_{21}\) 稱為初等矩陣(elementary matrix)或者消元矩陣(elimination matrix),它可以很簡單地從單位矩陣演化而來,\(E_{ij}\) 就是將單位矩陣 \((i, j)\) 位置的 0 換成消元過程的乘數 \(-l_{ij}\)

\[I = \begin{bmatrix} 1&0&0 \\ 0&1&0\\0&0&1\end{bmatrix} \to E_{21} = \begin{bmatrix} 1&0&0 \\ \boxed{-2}&1&0\\0&0&1\end{bmatrix}\]

獲取更多精彩,請關注「seniusen」!