为什么要学消元
很多同学第一次接触高斯消元时,都会觉得它像一堆死规则:
- 换行,
- 乘一行,
- 减一行,
- 一直做到矩阵看起来“整齐”为止。
这个理解太弱。
高斯消元真正的作用,是把本来难读的方程组,逐步改写成容易阅读的 形式。每一步行变换都应该回答一个很清楚的问题,例如:
- 我下一步想把哪个变量的位置弄清楚?
- 哪个元素正在阻碍我?
- 用哪个操作,可以在不改变解集的情况下制造更多 0?
如果你一直带着这些问题去做,消元就不再像机械重复,而会变成一种 有方向的阅读方法。
先讲直觉:我们想得到什么形状?
我们想得到的,不只是“比较简单的矩阵”,而是方便读出结构的矩 阵。
实际操作时,你会不断做下面几件事:
- 选一个主元,
- 把它下面的元素清掉,
- 转到右下角更小的子矩阵,
- 如果想得到最容易直接阅读的形式,再把主元上面的元素也清掉。
所以,消元其实是在一步一步建立一条主元阶梯。
定义
REF 与 RREF
矩阵属于 行阶梯形(REF),表示:
- 全 0 行都放在最下面;
- 每一个非零行的第一个非零元素,都比上一行的第一个非零元素更靠 右。
矩阵属于 最简行阶梯形(RREF),则还要再满足:
- 每个主元都等于
1; - 每个主元所在的列,除了那个主元之外,其余位置全部都是
0。
每一个非零行最左边的第一个非零元素,叫做 主元。含有主元的列, 叫做 主元列。没有主元的列,对应的是 自由变量。
这些词汇很重要,因为后面判断“唯一解 / 无限多解 / 无解”时,就是靠 它们。
定理
为什么行化简是安全的?
如果两个增广矩阵是行等价的,那么它们代表的是等价方程组,也就是 说,它们有相同的解集。
所以,行化简不是在改题目,而是在重新排列同一题的信息。
走一次完整的消元路径
本地讲义 MATH1030-Notes.pdf §2.2 的核心做法,是由增广矩阵开始,
然后反复利用主元去清掉它下面的元素。现在我们跟着这个思路看一个
小例子:
它的增广矩阵是
例题
把每个行变换都读成一个目的
左上角的 1 已经是一个很方便的主元,所以第一个目标很清楚:
把这个主元下面的元素全部变成
0。
做
就得到
现在第 1 列已经完成。下一个主元在第 2 行第 2 列,所以用它清掉下面
的 2:
矩阵变成
到这一步,其实已经是 REF,可以用回代法解题。不过,如果你想得到最 方便直接阅读的形式,就继续做成 RREF。
先把最后一个主元改成 1:
然后清掉这个主元上方的元素:
得到
最后,再把第二个主元上方的 2 清掉:
就得到 RREF
这时解可以直接读出:
这个例子要你记住的,不是孤立的步骤,而是下面的节奏:
- 清主元下面的元素,建立 REF;
- 清主元上面的元素,建立 RREF;
- 到了 RREF,就可以直接读解。
用互动步骤器再走一次
下面的步骤器保留同一条消元路径,但刻意放慢节奏。每到一步,都请你 同时观察:
- 正在处理哪一个主元;
- 正在做哪一个行变换;
- 做完之后,哪一部分变得更容易读。
边读边试
跟着走完一条行化简路径
互动步骤器会带你走完一条完整的消元路径,逐步显示行变换、正在处理的主元,以及每一步得到的矩阵。
| 1 | 2 | 2 | 4 |
| 1 | 3 | 3 | 5 |
| 2 | 6 | 5 | 6 |
行变换
先在第 1 列选主元。
要留意什么
第 1 列的第一行已经有方便的主元 1,所以暂时不用换行。
先由增广矩阵开始。第一个主元的工作,是帮我们把它下面的元素清掉。
怎样读一个 RREF 矩阵
当矩阵已经在 RREF 时,最重要的阅读问题有三个:
- 每个变量列都有主元吗?
- 有没有自由变量?
- 有没有矛盾行?
例题
先读结构,再做计算
假设你最后得到
这里第 1、2 列是主元列,但第 3 列不是,所以第三个变量是自由变量。
因此,这个系统不是唯一解。它会有无限多解,因为你可以先自由选 第三个变量,再回头求出另外两个主元变量。
定理
矛盾行代表什么?
如果行化简后出现
它对应的方程就是 。这不可能成立,所以原方程组不相容,也就 是无解。
常见错误
常见错误
REF 不等于 RREF
很多人只要看到主元下面全是 0 就停手。那样可能已经足够做回代,但
还没有到 RREF。RREF 要求主元所在的列,其他位置也全部是 0。
常见错误
做操作时没有明确目标
不要因为“好像要减一下”就随便做行变换。每一步之前,先把目的说清 楚:
- 你现在用的是哪个主元?
- 你想消去哪一个元素?
- 为什么这一步是最自然的下一步?
这个习惯会让你的计算更稳定,也更容易检查符号错误。
快速检查
快速检查
什么情况下应该先换行,再继续消元?
想一想当前的主元位置。如果那个位置是 0,但同一列更下面有非零元
素,会怎样处理?
解答
答案
快速检查
[0 0 0 | 1] 是一行无害的数据吗?
先把它翻译回一条方程,再决定答案。
解答
答案
练习
练习 1
由
开始,如果你的目标是清掉第一个主元下面的元素,最自然的第一步行变 换是什么?
解答
练习 1 引导解答
练习 2
考虑矩阵
它代表的系统有唯一解、无限多解,还是无解?
解答
练习 2 引导解答
先读这一页
这一页直接建立在 2.2 增广矩阵与行变换 之上。如果你对“为什么行变换不会改变解集”仍然觉得不稳,请先回去 重读那一页,再练这里的长消元路径。