Stage 2 补充 — 三种初等操作、 与消元的坑 (Elementary Operations, , and Elimination Pitfalls)
这份补充要补什么
Stage 2 正文把数乘 (scaling) 和换行 (interchange) 一笔带过了,也没把”为什么这么做”讲清。这份补充专门填这些洞,并把你问过的所有 LU 疑惑一次性讲透。读完你应该能:
- 说清增广矩阵 (augmented matrix) 到底”是个什么东西”、为什么存在(不只是会算);
- 完整掌握三种初等行变换,尤其数乘和换行各自”是什么、为什么、怎么用”;
- 会做需要换行的 LU,即 (完整例题);
- 会用数乘把主元化成 1,完成主元非 1 的 Gauss–Jordan 求逆;
- 彻底搞懂”读 为什么必须用已清零的主元行""换顺序时 怎么办""为什么求逆时右边牵一发动全身,而 却能各填各的”。
0. 先回答一个根本问题:增广矩阵到底是个什么东西?
你说你”会算增广矩阵,但不知道它到底是啥、为啥存在”。这正是学线代最该问的问题。
是什么(本质):增广矩阵 就是把系数矩阵 和右端向量 并排粘在一起,中间画一条竖线区分。它不是一个新的数学对象,只是一张”记账表”——把方程组 的全部信息(每个未知数的系数 + 每个等号右边的数)压进一个矩形。
为什么存在(动机):因为消元时,每一步行变换会同时改变等号两边。比如”第二个方程减去两倍第一个方程”,左边的系数变,右边的常数也变。如果你把 和 分开写,就得手动同步两处,极易出错。增广矩阵的唯一目的,就是让一次行变换自动同时作用于系数和右端——它们被锁在同一行里,一起变。
一句话本质
增广矩阵 = 把”方程组”这件事变成”一张可以做行变换的表”。 竖线左边是”未知数的系数世界”,右边是”等号右边的常数世界”;行变换让两个世界永远同步。你消元时盯着这张表,就等于同时在操作所有方程。
一个直接的推论:求逆时用的 ,右边放的是单位矩阵而不是一个向量——那是因为求逆等价于”同时解 个方程组 ”( 是 的第 列),把这 个右端并排放,就是 。所以 本质是”一口气解 个系统”。
1. 三种初等行变换——完整版
Stage 2 正文列了三种,这里把每一种都按”是什么 / 为什么 / 怎么用 / 对应初等矩阵”讲全。
三种操作的共同灵魂:它们都 可逆
为什么只允许这三种操作?因为它们都不改变方程组的解集。而”不改变解集”的根本原因是每种操作都可逆(能撤销)——可逆意味着新旧方程组能互相推出,所以解完全一样。下面每种都会点明它的”逆操作”。
1.1 倍加 (Replacement) ★ —— 你已经很熟
是什么:某行加上另一行的倍数,()。
为什么:这是消元的主力——用一行去”抵消”另一行某个位置的数,制造出 0。
逆操作:(减回去)。所以可逆,不改变解。
初等矩阵(以 、 为例):在 的 位置放 。
1.2 数乘 (Scaling) ★ —— 正文欠你的详细版
是什么:某行整体乘以一个非零常数,()。
为什么存在:两个高频用途——
- 把主元化成 1(Gauss–Jordan 求逆、化 RREF 时必须):若主元是 ,你想让它变 ,就 。RREF 的定义要求”每个主元 = 1”,不数乘做不到。
- 约掉公因子 / 凑整,让后续运算干净。
为什么必须 :如果 ,这行直接变成全 0,信息被抹掉、无法撤销——就不可逆了,会改变解集(凭空丢掉一个方程)。所以数乘严禁乘 0。
逆操作:(除回去)。 才有 ,这也是”非零”要求的来源。
初等矩阵(以 为例):在 的 位置把 换成 。
数乘在做什么:把主元 3 化成 1
某步消元后你有一行 ,主元是 3。要化成 RREF 就得让主元为 1:
妙在哪:数乘不碰”这行和别行的关系”,只是把这一整行等比例缩放——方程 和 是同一个方程,解一模一样。所以化主元为 1 绝对安全。
1.3 换行 (Interchange) ★ —— 正文欠你的详细版
是什么:交换两行的位置,。
为什么存在:当轮到某列的主元位置是 0 时,消元卡住了——你不能用 0 当主元去消下面的行(要除以主元,除以 0 无意义)。这时往下找一个该位置非零的行,换上来当主元。换行是”救活消元”的操作。
逆操作:再交换一次 (换回去)。显然可逆,不改变解(方程的先后顺序本来就无所谓)。
初等矩阵 = 置换矩阵 (permutation matrix)(以 为例):把 的第 1、2 行交换。
换行在做什么:主元为 0,救活消元
第 1 列主元位置(左上角)是 0,没法用它清下面。往下看,第 2 行第 1 列是 1(非零)——把第 1、2 行换过来:
现在左上角是 1,消元可以继续。换行不改变解——它只是把”第一个方程”和”第二个方程”调了个先后,方程组本身没变。
2. 换行的完整应用: ★
Stage 2 正文只说了”需要换行时写成 “,没做例题。这里补一个完整的。
是什么 / 为什么:如果消元中途遇到主元为 0、必须换行,那么” 直接等于 “就不成立了(因为中间插了交换)。解决办法:先把所有要换的行一次性换好(记成置换矩阵 ),再对换好序的 做普通 LU。于是
记录”总共怎么换的”,、 还是”换好序之后”的下三角乘数 + 上三角。
完整例题:
第 1 步:左上角是 0 → 换行。第 2 行第 1 列是 1,交换 ,记 。换后:
第 2 步:对 做普通列消元。第 1 列:(乘数 ):
第 3 步:第 2 列:,即 (乘数 ):
读 (乘数就位):
验证 : 第 3 行 ,正是 的第 3 行 ✓。行列式的小彩蛋:;每交换一次行,行列式变号,这里换了 1 次,所以 ,于是 。
什么时候用换行
只在主元位置为 0(消元卡住)时换行。若主元非 0,不必换——正文那些例子就是故意构造得不用换。数值计算里还会为了稳定性主动换成绝对值最大的主元(叫”部分主元法 partial pivoting”),那是进阶话题。
3. 数乘的完整应用:主元非 1 的 Gauss–Jordan 求逆 ★
正文的求逆例子主元恰好都是 1,所以没用到数乘。真实里主元常常不是 1,这时必须用数乘把主元化成 1。补一个完整例题。
完整例题:求 的逆
起始 :
第 1 步 — 数乘把第 1 个主元化成 1():
第 2 步 — 倍加清第 1 列():
第 3 步 — 数乘把第 2 个主元化成 1():
第 4 步 — 倍加清第 2 列上方():
左边成了 ,右边就是逆:
验证: ✓。看清楚:第 1 步和第 3 步就是数乘(把主元 、 分别化成 ),没有它们你到不了 RREF、也读不出右边的逆。这正是数乘在求逆里的核心作用。
4. 彻底讲清那个 LU 的坑(你这几轮问的)
你问了三个环环相扣的问题,这里系统回答。
4.1 为什么”直接读 “必须用已清零的主元行
核心事实:想把消元乘数直接抄进 (不用算逆),前提是——你消第 列时,那个当”减数”的主元行,它自己第 列左边(前 列)必须全是 0。
为什么: 的第 元 ,定义上就是”你从第 行减掉了几倍的第 个已清零主元行”。如果你用的减数行左边还没清零(比如还带着第 1 列的数),那减这一下会顺手把第 1 列也消一部分,于是你之前记的 被悄悄改动,直接读就漏了。
你踩过的坑:用原始 去消
。若你消第 3 行时用原始 (它第 1 列还有个 4!)做 ,得到的 第 3 行是对的 ,但——把这步摊开:
因为 ,那个 里藏了 !所以真正的 (即 4),不是你以为的 。用没清干净的行去减,第一列的消元被”串味”进了第二步,乘数就读不准。
正确姿势:消第 2 列时用 (第 1 列已经是 0),这样减 只动第 2 列及右边, 不受扰动,可以放心读。这就是”从上往下、从左往右、每行等自己左边清零了才当主元”的标准顺序的意义。
4.2 你换了顺序、 对但 读错——怎么办?
结论:求 你怎么来都行(任何合法行变换都给同一个 );但只有标准列消元顺序 + 用已清主元行,才能”直接读” 。换了顺序, 照样对,但 不能直接读,要用求逆算:
把你所有行操作合成一个矩阵 (满足 ),那么
从非标准操作里恢复正确的
上面那题若你用了非标准顺序,得到的操作矩阵是 。直接读会给出错的 ;但求逆:
所以你的方法里 是对的,只是要”求逆”才能拿到,不能白读。 标准顺序的全部好处,就是让 里的数恰好等于你消元时用的乘数,于是省掉求逆、直接抄。
4.3 为什么求逆时右边”牵一发动全身”, 却能”各填各的”?(你的第二个大问题)
这两者存的东西结构完全不同:
= 把乘数”各就各位”摆进去(加法拼装):
每个 占一个独立格子,写进去就冻结。为什么能冻结?——正是 §4.1 那件事:你用已清零的主元行去消,只影响当前列及右边,绝不回头碰已经填好的 。所以各乘数互不干涉,可独立填。
Gauss–Jordan 右边 = 所有操作的”连乘积”(乘法连锁):设操作依次是 ,
每做一步就是拿 去左乘当前右边,而矩阵乘法本来就是把各行重新组合——加上求逆还要向上消元 + 数乘(为了把左边彻底变成 ),这些都作用在整行上,所以已写好的数被反复搅。右边根本不是”独立乘数”,而是一个越乘越混的矩阵积 。
亲眼看右边被反复改( )
\xrightarrow{R_1\to\frac12R_1} \left[\begin{array}{cc|cc}1&\tfrac12&\boxed{\tfrac12}&0\\1&1&0&1\end{array}\right] $$ 右边 $(1,1)$ 位从 $1$ 变成了 $\tfrac12$。继续消到最后: $$ \cdots\longrightarrow \left[\begin{array}{cc|cc}1&0&\boxed{1}&-1\\0&1&-1&2\end{array}\right] $$ 那个 $(1,1)$ 位**又从 $\tfrac12$ 被改回 $1$**(因为最后 $R_1-\frac12R_2$ 用到了第 2 行已被改过的右边)。**这就是"右边已有的地方还要跟着变"——后面的操作不断回头重组前面的结果。** 对照 $L$:乘数 $\ell_{21}=\frac12$ 写一次就再没被碰过。
一句话收口
存的是”下消元乘数”,标准顺序下各占独立格子、写完冻结(因为用的是清干净的主元行);Gauss–Jordan 右边存的是”全部操作的连乘积 “,每步左乘 + 上消元 + 数乘,所以反复搅拌。 前者是加法拼装,后者是乘法连锁——这就是差别的根。
5. 速记 + 检查清单
补充速记卡
- 增广矩阵 = “把方程组变成一张能做行变换的表”;行变换让系数和右端同步变。求逆的 = 一口气解 个系统。
- 三种初等操作(都可逆 → 不改解):倍加 (消元主力)、数乘 (化主元为 1;禁乘 0)、换行 (主元为 0 时救场)。
- :主元为 0 就换行,先换好()再普通 LU。(换一次行 )。
- Gauss–Jordan 主元非 1:必须数乘把主元化成 1,才能到 RREF、读出逆。
- 读 的铁律:消第 列时,减数主元行左边(前 列)必须全 0,乘数才能直接抄。
- 换了顺序: 仍对,但 不能读,用 ()算。
- 为什么 独立填、逆矩阵右边乱搅: 是加法拼装(乘数各占格子、冻结); 是乘法连锁(操作连乘、反复重组)。
确认你现在能:
- 用自己的话说出”增广矩阵是什么、为什么存在”;
- 分别举例说明数乘(化主元为 1)和换行(主元为 0 救场)在干什么;
- 独立做一个需要换行的 ;
- 做一个主元非 1 的 Gauss–Jordan 求逆(用到数乘);
- 解释”为什么读 必须用已清零的主元行”,并说清换顺序时该用 ;
- 说清” 加法拼装 vs 逆矩阵乘法连锁”的区别。
一句话收尾
Stage 2 正文教了”骨架”,这份补充补上了”关节”——数乘和换行不是可有可无的边角,它们分别负责”化主元”和”救场”,是消元真正跑起来必需的两块。而那个 LU 的坑,本质是一句话:能白读乘数,靠的是”每次只用清干净的行去消”;一旦这个前提破了,该老实求逆就别硬读。