第2课-矩阵消元
Course: 线性代数 MIT 18.06 Linear Algebra Date: October 21, 2025 4:00 PM (GMT+8)
🎓 第2课 矩阵消元 — 课程笔记
🎮 课程概览
- 👤 主讲:吉尔伯特(MIT 18.06 线性代数)
- 📝 本节主题:矩阵消元(Gaussian elimination)——消元步骤、枢轴(pivot)、增广矩阵、背代(back-substitution)、初等/消除矩阵、行交换(排列矩阵)、失败情形与逆矩阵直观。
- 🎯 目标:理解消元如何把线性方程组 (Ax=b) 转成上三角(或阶梯)形式,并借此判断解的存在性与唯一性;把“行操作”用矩阵语言表述;理解如何把一系列消元步骤合并成一个矩阵。
🏛 问题设置与总体思路
- 问题:给定线性系统 (Ax=b),以 [3\times3] 为示例(3 个方程、3 个未知数)说明消元过程。
- 思路:逐步消掉第一列下面的元素(前向消元),取得上三角矩阵;然后用背代从最后一行向上解出未知数。
- 关键问题:消元什么时候会失败?失败时能否通过行交换(pivoting)解决?失败又如何与矩阵的可逆性联系起来?
🛠️ 消元(Elimination)步骤详解 —— 前向消元(forward elimination)
- 🔎 选取第一个枢轴(pivot):通常是第一行第一列的元素,把它称为第 1 个枢轴。
- ✖️ 用第一行的枢轴消掉下面每一行在同一列的元素:
- 对于第 (i) 行,要用“第 (i) 行减去(第 (i,1) 元素 ÷ 枢轴)× 第 1 行”,使得第 (i,1) 位置变为 0。
- 这个操作会同时改变该行其他列与右端向量 (b) 的对应项。
- 🔁 重复步骤:把第二行第二列选为第二枢轴(如果第二枢轴为 0,则尝试行交换以找非零枢轴),用第二行消掉第 3 行、第 4 行……同列下方元素。
- 🎯 最终目标:把矩阵变为上三角(或阶梯)形式(即每一行的第一个非零元素在右移),为背代做准备。
⚙️ 枢轴(Pivot)与索引约定
- 🏷 枢轴是用于消去同列下方元素的关键数字;在板书中常用方框标出枢轴。
- 👀 若枢轴为 0:尝试与下面某行交换(row swap)以获取非零枢轴;如果无法找到非零枢轴,说明该列无法作为枢轴(可能导致矩阵奇异 / 无法得到完整的上三角)。
- ✅ 好情况:每一步都能找到非零枢轴,最终得到 (n) 个枢轴(对 [n\times n] 矩阵),说明矩阵可逆,消元可得唯一解。
📚 增广矩阵(Augmented matrix)与右端更新
- 增广矩阵记作 ([A\ |\ b]),把右端向量 (b) 当作额外的一列加到系数矩阵右侧。
- 在每一次行操作(包括乘法、加减、行交换)中,对增广矩阵的右端列执行相同操作,保证等式两边同步变化。
- 增广矩阵方便直观看到消元过程对 (b) 的影响,也便于在计算机(MATLAB 等)中实现。
✅ 背代(Back-substitution)
- 条件:消元后得到的矩阵为上三角形式(或阶梯形),并且出现了形如 (5z = -10) 这样只含一个未知数的行。
- 步骤:
- 从最后一行解出最后一个未知数(例如 (z))。
- 将已知变量代入上一行,解出倒数第二个未知数(例如 (y))。
- 继续往上,直到解出所有变量(例如最后解出 (x))。
- 直观:背代就是反向按顺序“把三角系统逐步拆开”。
🔗 行操作的矩阵表示 —— 初等(消除)矩阵
思路:每一次“把某行减去倍数的另一行”的操作其实等价于左乘一个特殊的矩阵(称为初等矩阵或消除矩阵)于原矩阵: $E \cdot A$。
结构:例如把第 2 行减去 3 倍第 1 行,对应的 $3\times3$ 初等矩阵 (E) 与单位矩阵 (I) 的差别只在 $E_{2,1}=-3$ 位置:
作用:(E) 左乘任意矩阵,都只改变第二行(使第二行减去 3 倍第一行)。
关键点:每一步消元对应一个初等矩阵;把所有初等矩阵依次左乘到 (A),可以把 (A) 变成上三角:
其中 (U) 为上三角矩阵。
🎇 初等矩阵的组合与结合律 $Associativity$
- 因为矩阵乘法满足结合律,可以把多步消元的初等矩阵相乘,得到一个合成矩阵 $E = E_k\cdots E_1$,使得 $E A = U$。
- 这说明:所有的前向消元步骤可以合并为一次矩阵乘法(先把初等矩阵相乘得到总体消元矩阵,再左乘原矩阵)。
- 实用意义:在数值线性代数里,把消元步骤以矩阵形式组织,有助于分析误差与复杂度,也能用于构造逆矩阵(见下)。
🤖 行交换(排列矩阵 / Permutation matrix)与枢轴策略
若枢轴为 0 或非常小(数值不稳定),可以通过行交换得到更好的枢轴。行交换也可表示为左乘一个排列矩阵 (P),例如交换第 1 行与第 2 行的 [3\times3] 矩阵:
左乘 (P A) 会把 (A) 的行 1 和行 2 交换。
列操作(交换矩阵列)对应右乘一个排列矩阵(对列进行操作时右侧乘)。
注意:矩阵乘法不交换,即 [PA \neq AP];行操作与列操作要放在不同边乘。
❌ 失败情形(何时消元失败)
- 暂时性失败(可修复)
- 当某一枢轴为 0,但下面存在非零元素,可通过与下方某行交换获得非零枢轴(行交换)。
- 绝对失败(不可修复)
- 若枢轴及其下面所有候选位置均为 0(某列全部为 0),且无法通过交换获得非零枢轴,说明该列无法作为枢轴 —— 对于 [n\times n] 系统,会导致无法得到 (n) 个枢轴,矩阵奇异(不可逆)。
- 直观:列向量线性相关(例如三列在一个平面内),列的张成空间维度低于 (n),并不能表示所有 (b)。
- 数值问题:在数值计算中,枢轴虽非零但很小也可能造成不稳定,需要 **主元选择(partial/complete pivoting)**策略(课程在后续或实现中提及)。
📦 将消元步骤用于求逆矩阵(概念直观)
若矩阵 (A) 可逆,消元能把 (A) 化为单位矩阵 (I):存在一系列初等矩阵 $E_k \cdots E_1$ 使得 $E_k\cdots E_1 A = I$。
把相同的操作同时施加在 (I) 上:
因此,通过把 (A) 与 (I) 并排写成增广矩阵 ([A\ |\ I]) 并对左侧做消元,右侧同时变换,最终右侧变为 (A^{-1})。
这给出了求逆矩阵的实际算法(Gauss-Jordan 消元或变体)。
🎵 课堂示例(数值步骤范例,便于复现)
- 初始矩阵(示例口述)与增广 $[A\ |\ b]$。
- Step 1:用第 1 行消第 2、3 行的第 1 列,使第 2、3 行该列为 0 画出对应初等矩阵 $E_{21}, E_{31}$。
- Step 2:若第 2 行第 2 列非零,则用它做第 2 枢轴,消去第 3 行第 2 列(乘以合适倍数并相减)。
- Step 3:得到上三角形式,进行背代:由第三行先解出 (z),代入第二行求 (y),最后代入第一行求 (x)。
- 课堂示例给出的最终数值:如 $5z=-10 \Rightarrow z=-2$,代回得到 (y=2),再得到 (x=2)。
⚡ 实用提示(MATLAB / 数值实现 & 好行为)
- 在编程实现(MATLAB / NumPy)中:
- 使用增广矩阵 $[A\ |\ b]$ 实现消元,注意同步修改右端。
- 若检测到枢轴为 0(或小于某容忍阈值),进行行交换$partial pivoting$。
- 对数值敏感问题使用主元 $partial/complete pivoting$ 以提高稳定性。
- 在手算时:优先寻找整数或易计算的枢轴可以减少计算误差(但要保证不引入错误的行交换逻辑)。
🏊 小结(核心记忆点)
- 消元 = 前向消元(把矩阵变为上三角) + 背代(从上到下反向求解)。
- 每一步行操作都可由左乘一个初等矩阵表示;把这些初等矩阵连乘可得到“总消元矩阵”。
- 行交换用排列矩阵表示;列交换需右乘排列矩阵。
- 失败情形与矩阵可逆性密切相关:若某一步无法找到非零枢轴且无法通过交换修正,矩阵可能奇异(不可逆)。
- 增广矩阵 $[A\ |\ b]$ 能直观展示 (b) 的变化;$[A\ |\ I]$ 可用于求逆。
📝 拓展练习(建议直接放在 Notion 中作为练习卡)
手工对下面矩阵做一次完整消元并背代:
写出把第 2 行减去 3 倍第 1 行所对应的初等矩阵 (E),并验证 (E A) 的效果。
给出一个 $3\times3$奇异矩阵示例(列线性相关),并说明为何消元会失败。
在 MATLAB / Octave 中实现增广矩阵消元并尝试主元选择(partial pivoting)。