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.