Evanalysis
2.3嵌入式互動預計閱讀時間: 15 分鐘

2.3 高斯消元與最簡行階梯形

跟著一條完整的行化簡路徑,學會用 REF 與 RREF 讀方程組,而不是靠猜。

課程目錄

MATH1030:線性代數 I

線性代數筆記。

37

為甚麼要學消元

很多同學第一次接觸高斯消元時,都會覺得它像一堆死規則:

  • 換行,
  • 乘一行,
  • 減一行,
  • 一直做到矩陣看起來「整齊」為止。

這個理解太弱。

高斯消元真正的作用,是把本來難讀的方程組,逐步改寫成容易閱讀的 形式。每一步行變換都應該回答一個很清楚的問題,例如:

  • 我下一步想把哪個變量的位置弄清楚?
  • 哪個元素正在阻礙我?
  • 用哪個操作,可以在不改變解集的情況下製造更多 0?

如果你一直帶著這些問題去做,消元就不再像機械重複,而會變成一種 有方向的閱讀方法。

先講直覺:我們想得到甚麼形狀?

我們想得到的,不只是「比較簡單的矩陣」,而是方便讀出結構的矩 陣。

實際上,這表示你要不斷做以下事情:

  1. 選一個主元,
  2. 把它下面的元素清掉,
  3. 轉到右下角較小的子矩陣,
  4. 如果想要最易讀的形式,再把主元上方的元素也清掉。

所以,消元其實是在一步一步建立一條主元階梯。

定義

REF 與 RREF

矩陣屬於 行階梯形(REF),表示:

  1. 全 0 行都放在最下面;
  2. 每一個非零行的第一個非零元素,都比上一行的第一個非零元素更靠 右。

矩陣屬於 最簡行階梯形(RREF),則還要再滿足:

  1. 每個主元都等於 1
  2. 每個主元所在的列,除了那個主元之外,其餘位置全部都是 0

每一個非零行最左邊的第一個非零元素,叫做 主元。含有主元的列, 叫做 主元列。沒有主元的列,對應的是 自由變量

這些詞彙很重要,因為之後你判斷「唯一解 / 無限多解 / 無解」時,就 是靠它們。

定理

為甚麼行化簡是安全的?

如果兩個增廣矩陣是行等價的,那麼它們代表的是等價方程組,也就是說 它們有相同的解集。

所以,行化簡不是在改題目,而是在重新排列同一題的資訊

走一次完整的消元路徑

消元法的核心做法,是由增廣矩陣開始, 然後反覆利用主元去清掉它下面的元素。現在我們沿着這個思路看一個 小例子:

x+2y+2z=4,x+3y+3z=5,2x+6y+5z=6.\begin{aligned} x + 2y + 2z &= 4, \\ x + 3y + 3z &= 5, \\ 2x + 6y + 5z &= 6. \end{aligned}

它的增廣矩陣是

[122413352656].\begin{bmatrix} 1 & 2 & 2 & 4 \\ 1 & 3 & 3 & 5 \\ 2 & 6 & 5 & 6 \end{bmatrix}.

例題

把每個行變換都讀成一個目的

左上角的 1 已經是一個很方便的主元,所以第一個目標很清楚:

把這個主元下面的元素全部變成 0

R2R2R1,R3R32R1.R_2 \leftarrow R_2 - R_1, \qquad R_3 \leftarrow R_3 - 2R_1.

就得到

[122401110212].\begin{bmatrix} 1 & 2 & 2 & 4 \\ 0 & 1 & 1 & 1 \\ 0 & 2 & 1 & -2 \end{bmatrix}.

現在第 1 列已經完成。下一個主元在第 2 行第 2 列,所以用它清掉下面 的 2

R3R32R2.R_3 \leftarrow R_3 - 2R_2.

矩陣變成

[122401110014].\begin{bmatrix} 1 & 2 & 2 & 4 \\ 0 & 1 & 1 & 1 \\ 0 & 0 & -1 & -4 \end{bmatrix}.

到這一步,其實已經是 REF,可以用回代法解題。不過,如果你想得到最 方便直接閱讀的形式,就繼續做成 RREF。

先把最後一個主元改成 1

R3R3[122401110014].R_3 \leftarrow -R_3 \quad\Rightarrow\quad \begin{bmatrix} 1 & 2 & 2 & 4 \\ 0 & 1 & 1 & 1 \\ 0 & 0 & 1 & 4 \end{bmatrix}.

然後清掉這個主元上方的元素:

R1R12R3,R2R2R3,R_1 \leftarrow R_1 - 2R_3, \qquad R_2 \leftarrow R_2 - R_3,

得到

[120401030014].\begin{bmatrix} 1 & 2 & 0 & -4 \\ 0 & 1 & 0 & -3 \\ 0 & 0 & 1 & 4 \end{bmatrix}.

最後,再把第二個主元上方的 2 清掉:

R1R12R2,R_1 \leftarrow R_1 - 2R_2,

就得到 RREF

[100201030014].\begin{bmatrix} 1 & 0 & 0 & 2 \\ 0 & 1 & 0 & -3 \\ 0 & 0 & 1 & 4 \end{bmatrix}.

這時解可以直接讀出:

x=2,y=3,z=4.x = 2,\qquad y = -3,\qquad z = 4.

這個例子要你記住的,不是孤立的步驟,而是以下節奏:

  • 清主元下面的元素,建立 REF;
  • 清主元上面的元素,建立 RREF;
  • 到了 RREF,就可以直接讀解。

用互動步驟器再走一次

下面的步驟器保留同一條消元路徑,但刻意放慢節奏。每到一步,都請你 同時觀察:

  1. 正在處理哪一個主元;
  2. 正在做哪一個行變換;
  3. 做完之後,哪一部分變得更容易讀。

邊讀邊試

跟著走完一條行化簡路徑

互動步驟器會帶你走完一條完整的消元路徑,逐步顯示行變換、正在處理的主元,以及每一步得到的矩陣。

1224
1335
2656

行變換

先在第 1 列選主元。

要留意甚麼

第 1 列的第一行已經有方便的主元 1,所以暫時不用換行。

先由增廣矩陣開始。第一個主元的工作,是幫我們把它下面的元素清掉。

較長的功課式行化簡

短例子適合學基本操作,但真正的功課題通常會檢查你能不能把整段計算 保持有組織。難點不只是數字變大,而是每一步都要知道自己正在清哪一 列、建立哪一個主元。

考慮增廣矩陣

C=[120102112101232411251510324118].C= \begin{bmatrix} 1 & 2 & 0 & 1 & 0 & 2 & 1 \\ 1 & 2 & 1 & 0 & 1 & 2 & 3 \\ 2 & 4 & 1 & 1 & 2 & 5 & 1 \\ 5 & 10 & 3 & 2 & 4 & 11 & 8 \end{bmatrix}.

第一列已有可用主元。先清掉它下方的元素,得到

[1201021001110200112110033413].\begin{bmatrix} 1 & 2 & 0 & 1 & 0 & 2 & 1 \\ 0 & 0 & 1 & -1 & 1 & 0 & 2 \\ 0 & 0 & 1 & -1 & 2 & 1 & -1 \\ 0 & 0 & 3 & -3 & 4 & 1 & 3 \end{bmatrix}.

現在第 2 行提供下一個主元。用它清掉下面相同方向的元素:

R3R3R2,R4R43R2.R_3\leftarrow R_3-R_2, \qquad R_4\leftarrow R_4-3R_2.

再把之後出現的重複行清掉後,一個清楚的階梯階段是

[1201021001110200001130000000].\begin{bmatrix} 1 & 2 & 0 & 1 & 0 & 2 & 1 \\ 0 & 0 & 1 & -1 & 1 & 0 & 2 \\ 0 & 0 & 0 & 0 & 1 & 1 & -3 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}.

這裡要暫停閱讀結構:主元列是第 135 列;自由列是第 246 列。要到 RREF,只需清掉第 5 列主元上方的元素:

R2R2R3.R_2\leftarrow R_2-R_3.

最後的最簡形是

C=[1201021001101500001130000000].C'= \begin{bmatrix} 1 & 2 & 0 & 1 & 0 & 2 & 1 \\ 0 & 0 & 1 & -1 & 0 & -1 & 5 \\ 0 & 0 & 0 & 0 & 1 & 1 & -3 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}.

x2=u,x4=v,x6=w.x_2=u,\qquad x_4=v,\qquad x_6=w.

三條主元方程讀成

x1+2x2+x4+2x6=1,x3x4x6=5,x5+x6=3.\begin{aligned} x_1+2x_2+x_4+2x_6 &= 1,\\ x_3-x_4-x_6 &= 5,\\ x_5+x_6 &= -3. \end{aligned}

所以所有解可以寫成

x=[105030]+u[210000]+v[101100]+w[201011].x= \begin{bmatrix} 1\\0\\5\\0\\-3\\0 \end{bmatrix} +u \begin{bmatrix} -2\\1\\0\\0\\0\\0 \end{bmatrix} +v \begin{bmatrix} -1\\0\\1\\1\\0\\0 \end{bmatrix} +w \begin{bmatrix} -2\\0\\1\\0\\-1\\1 \end{bmatrix}.

這個例子說明,長消元的目的不只是製造 0,而是暴露主元與自由變量的 結構,然後由這個結構寫出完整解集。

怎樣讀一個 RREF 矩陣

當矩陣已經在 RREF 時,最重要的閱讀問題有三個:

  • 每個變量列都有主元嗎?
  • 有沒有自由變量?
  • 有沒有矛盾行?

例題

先讀結構,再做計算

假設你最後得到

[103501210000].\begin{bmatrix} 1 & 0 & 3 & 5 \\ 0 & 1 & -2 & 1 \\ 0 & 0 & 0 & 0 \end{bmatrix}.

這裡第 1、2 列是主元列,但第 3 列不是,所以第三個變量是自由變量。

因此,這個系統不是唯一解。它會有無限多解,因為你可以先自由選 第三個變量,再回過頭求出另外兩個主元變量。

定理

矛盾行代表甚麼?

如果行化簡後出現

[0001],\begin{bmatrix} 0 & 0 & 0 & 1 \end{bmatrix},

它對應的方程就是 0=10 = 1。這是不可能成立的,所以原方程組不相容, 也就是無解。

例題

矩陣幾乎是 RREF 時

有時矩陣已經很接近 RREF,只差某個主元列還未清乾淨。例如

[130124001101000013000000]\begin{bmatrix} 1 & 3 & 0 & 1 & 2 & 4 \\ 0 & 0 & 1 & 1 & 0 & -1 \\ 0 & 0 & 0 & 0 & 1 & 3 \\ 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}

還不是 RREF,因為第 5 列的主元上方仍有一個 2。只要做

R1R12R3R_1\leftarrow R_1-2R_3

就得到

[130102001101000013000000].\begin{bmatrix} 1 & 3 & 0 & 1 & 0 & -2 \\ 0 & 0 & 1 & 1 & 0 & -1 \\ 0 & 0 & 0 & 0 & 1 & 3 \\ 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}.

現在各主元列已經清乾淨,所以矩陣在 RREF。自由變量是 x2x_2x4x_4;若令 x2=sx_2=sx4=tx_4=t,則解為

x=[20103]+s[31000]+t[10110].x= \begin{bmatrix} -2\\0\\-1\\0\\3 \end{bmatrix} +s \begin{bmatrix} -3\\1\\0\\0\\0 \end{bmatrix} +t \begin{bmatrix} -1\\0\\-1\\1\\0 \end{bmatrix}.

常見錯誤

常見錯誤

REF 不等於 RREF

很多人只要看到主元下面全是 0 就停手。那樣可能已經足夠做回代,但 還未到 RREF。RREF 要求主元所在的列,其他位置也全部是 0

常見錯誤

做操作時沒有明確目標

不要因為「好像要減一下」就隨便做行變換。每一步之前,先把目的說清 楚:

  • 你現在用的是哪個主元?
  • 你想消去哪個元素?
  • 為甚麼這一步是最自然的下一步?

這個習慣會令你的計算更穩定,也更容易檢查符號錯誤。

快速檢查

快速檢查

甚麼情況下應該先換行,再繼續消元?

想一想目前的主元位置。如果那個位置是 0,但同一列更下面有非零元 素,會怎樣處理?

解答

答案

快速檢查

[0 0 0 | 1] 是一行無害的資料嗎?

先把它翻譯回一條方程,再決定答案。

解答

答案

快速檢查

在上面的長消元例子中,為甚麼 x2x_2x4x_4x6x_6 是自由變量?

看最後的 RREF C'。哪些變量列含有首 1?

解答

答案

練習

練習 1

[112323580112]\begin{bmatrix} 1 & 1 & 2 & 3 \\ 2 & 3 & 5 & 8 \\ 0 & 1 & 1 & 2 \end{bmatrix}

開始,如果你的目標是清掉第一個主元下面的元素,最自然的第一步行變 換是甚麼?

解答

練習 1 引導解答

練習 2

考慮矩陣

[102401130000].\begin{bmatrix} 1 & 0 & 2 & 4 \\ 0 & 1 & -1 & 3 \\ 0 & 0 & 0 & 0 \end{bmatrix}.

它代表的系統有唯一解、無限多解,還是無解?

解答

練習 2 引導解答

練習 3

[130124001101000013000000]\begin{bmatrix} 1 & 3 & 0 & 1 & 2 & 4 \\ 0 & 0 & 1 & 1 & 0 & -1 \\ 0 & 0 & 0 & 0 & 1 & 3 \\ 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix}

開始,哪一個單一步行變換可以把它化成 RREF?

解答

練習 3 引導解答

練習 4

對於 RREF

[1201021001101500001130000000],\begin{bmatrix} 1 & 2 & 0 & 1 & 0 & 2 & 1 \\ 0 & 0 & 1 & -1 & 0 & -1 & 5 \\ 0 & 0 & 0 & 0 & 1 & 1 & -3 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{bmatrix},

x2=ux_2=ux4=vx_4=vx6=wx_6=w。把 x1x_1x3x_3x5x_5 寫成 uvw 的式子。

解答

練習 4 引導解答

先讀這一頁

這一頁直接建立在 2.2 增廣矩陣與行變換 之上。如果你對「為甚麼行變換不會改變解集」仍然覺得不穩,請先回去 重讀那一頁,再練這裡的長消元路徑。

本節掌握 checkpoint

要完成這一節 checkpoint,需要把每一題答對。 答對進度: 0%.

技能點: rref, pivot-columns, row-reduction

在 RREF 中,關於矩陣 A 的樞軸列,下列哪一項必定正確?

已用嘗試次數: 0

剩餘嘗試次數: 不限嘗試次數

預覽不會消耗嘗試次數。

提交會記錄一次正式評分嘗試。

  • Preview 會顯示你即將提交的選項。

技能點: rref, pivot-columns, free-variable

在最簡行階梯係數矩陣 [[1,0,3],[0,1,2]][[1,0,3],[0,1,-2]] 中,哪個變量是自由變量?

已用嘗試次數: 0

剩餘嘗試次數: 不限嘗試次數

預覽不會消耗嘗試次數。

提交會記錄一次正式評分嘗試。

技能點: rref, row-operations, pivot-columns

某矩陣在第 3 行第 5 列有主元 1,而同一列唯一其他非零元素是第 1 行的 2。哪個行變換能清掉這個主元列?

已用嘗試次數: 0

剩餘嘗試次數: 不限嘗試次數

預覽不會消耗嘗試次數。

提交會記錄一次正式評分嘗試。

技能點: rref, parametric-solution, free-variable

對 RREF 行 x1+2x2+x4+2x6=1x_1+2x_2+x_4+2x_6=1x3x4x6=5x_3-x_4-x_6=5x5+x6=3x_5+x_6=-3,令 x2=1x_2=1x4=0x_4=0x6=2x_6=2。填空:x_5=____

已用嘗試次數: 0

剩餘嘗試次數: 不限嘗試次數

預覽不會消耗嘗試次數。

提交會記錄一次正式評分嘗試。

輸入格式提示: 請輸入一個純量。

本單元重點詞彙

Premium learning add-ons

Core notes stay free. Advanced exercises, video explanations, and premium exports are available through paid plans.