第4课-a-的-lu-分解

Course: 线性代数 MIT 18.06 Linear Algebra Date: October 21, 2025 4:00 PM (GMT+8)

🎮 课程概览 · 本节目标

  • 👤 主讲:吉尔伯特(MIT 18.06)
  • 📝 本节主题:把高斯消元的步骤用矩阵因式分解表示,得到 (A=LU) 的结构;理解初等消去矩阵 (E)、下三角矩阵 (L)、上三角矩阵 (U)、以及置换矩阵 (P) 的角色;估算计算代价与多右端向量的优势。
  • 🎯 学习目标:
    • 看懂消元步骤如何对应一系列初等矩阵,及如何把它们合并成 (L) 与 (U);
    • 理解当不需行交换时 (A=LU) 的成立与构造方法;
    • 认识置换矩阵 (P)(行交换)出现的情形以及 (PA=LU) 的常见形式;
    • 估算作法的运算量(复杂度)与对多右端向量(多个 (b))的益处。

📚 基本事实回顾(逆与转置的简短提醒)

  • 🔁 乘积的逆:若 (A) 与 (B) 都可逆,则 ((AB)^{-1} = B^{-1} A^{-1})。顺序“反过来”。

  • 🔄 转置与逆:((A^T)^{-1} = (A^{-1})^T)(转置与取逆可以按任意顺序进行,结果一致)。

    (这些事实在后面推导 LU、消除矩阵与逆时会用到。)


🏛 消元矩阵(初等矩阵)与 (L,U) 的直观来源

  • 🔧 每一步“用第 (i) 行消第 (j) 行的某列项”都等价于左乘一个初等消除矩阵 (E)。例如把第2行减去 4×第1行,对应:

    [

    E=\begin{pmatrix}1&0-4&1\end{pmatrix},\quad E\cdot A\ \text{就完成了对应的行操作}.

    ]

  • 🔗 把消元的所有步骤按顺序表示为矩阵乘法:若做了 (k) 步消元,有若干初等矩阵 [E_1,E_2,\dots,E_k],则

    [

    E_k\cdots E_2 E_1 A = U,

    ]

    其中 (U) 是消元得到的上三角矩阵(或阶梯形)。

  • ✅ 因为每个初等矩阵都可逆(逆矩阵很容易得到:把减法改为加法),我们可以把上式两边同时左乘这些逆矩阵的乘积,得到:

    [

    A = [E_1^{-1} E_2^{-1} \cdots E_k^{-1}], U.

    ]

    把 [L:=E_1^{-1} E_2^{-1} \cdots E_k^{-1}],于是得到经典分解

    [

    \boxed{A = L,U},

    ]

    其中 (L) 是下三角(对角一般为 1)的矩阵,(U) 是上三角矩阵。


🧩 直接 2×2 示例(课堂演示,便于理解)

  • [

    A=\begin{pmatrix}2 & 1[4pt]8 & 7\end{pmatrix}.

    ]

    • 第一步:用第1行消去第2行的首项。倍数 (=8/2=4)。

    • 执行:第2行 ← 第2行 − 4×第1行,得到上三角

      [

      U=\begin{pmatrix}2 & 1[4pt]0 & 3\end{pmatrix}.

      ]

    • 那么对应的初等矩阵是 [E=\begin{pmatrix}1&0-4&1\end{pmatrix}],满足 (E A = U)。

    • 于是 (A = E^{-1} U),而 [E^{-1}=\begin{pmatrix}1&0\4&1\end{pmatrix}](把 −4 变为 +4)。定义 (L=E^{-1}),得到

      [

      A = L,U,\qquad L=\begin{pmatrix}1&0\4&1\end{pmatrix},\ U=\begin{pmatrix}2&1\0&3\end{pmatrix}.

      ]

    • ✅ 这正是 LU 分解的标准构造:下三角 (L) 的下三角元素正好是消元时用到的倍数(乘数)。


⚙️ 为什么 (L) 的下三角就是消元乘数(直观)

  • 当做消元时,你用第一行乘以某系数去减第二、第三行 —— 这些系数正是 (L) 的下三角元素(不含对角的 1)。
  • 初等矩阵的逆把减法改回加法(符号反向),因此把这些逆矩阵连乘起来便得到 (L)。
  • 重要:这个构造需要“在枢轴位置不为 0 的情况下且没有行交换”的简单情形;若需要交换行,则要引入置换矩阵 (P)(见下)。

🔁 含置换的通用形式(当出现行交换时)

  • 在实际消元中,若枢轴为 0 或为数值不稳小值,常需做行交换(pivoting)。每次行交换也对应一个置换矩阵 (P)(单位矩阵的行重排)。

  • 通常形式写作

    [

    P,A = L,U

    ]

    或有时写成 (A = P^T L U)。置换矩阵保证每一步可以找到合适的(非零、稳定的)枢轴。

  • ⚠️ 注意:行交换是乘在左边(左乘 (P)),而列交换则是乘在右边(右乘某个置换)。行与列操作不能随便互换顺序。


🔗 初等矩阵的逆很简单(符号翻转)

  • 每个消元初等矩阵 (E)(如在第 j 行第 i 列放置 −m 以表示“减去 m×第 i 行”)都有显而易见的逆:把 −m 改成 +m(就是把减法改回加法)。因此构造 (L)(初等矩阵逆的连乘)很直接。

📦 LU 的优点(尤其对多个右端向量)

  • 若要解 (A x = b) 且 (A = L U),分两步解:
    1. 解 (L y = b)(向前替代,成本 [O(n^2)]);
    2. 解 (U x = y)(向后替代,成本 [O(n^2)])。
  • 若有多个右端列(例如多个 (b):矩阵 (B)),只需做一次 LU(约 [O(n^3)] 的成本),随后每个右端解成本约 [O(n^2)]。因此对多 RHS 场景非常划算。

⚡ 运算量(复杂度)估算 — 为什么是约 [\tfrac{1}{3}n^3]?

  • 消元的核心工作是把第1列下面变为 0(约 [(n-1)\times n] 次乘加),然后第2列下面(约 [(n-2)\times n]),……,总计等价于求和

    [

    \sum_{k=1}^{n} k^2 \sim \frac{n^3}{3}\quad[\text{主阶项}],

    ]

    因此总的乘加次数主阶为 [\displaystyle \tfrac{1}{3}n^3]。

  • 精确讲:Gaussian elimination(不含 pivoting 的理想估算)主成本是 [\tfrac{1}{3}n^3 + O(n^2)]。

  • 右端向量每一个 RHS 的额外成本约为 [O(n^2)](前向+后向替代)。因此当有很多 RHS 时,先做 LU 再回代很划算。


🪂 数值实现须知(实务/鲁棒性)

  • ✅ 若枢轴接近 0 或太小,需行交换(partial pivoting)以避免数值不稳定。实践中常用 partial pivoting(在当前列在下面行中选最大绝对值的元素与当前行交换)。
  • ✅ 带置换的分解通常报告为 (PA=LU)((P) 为置换矩阵)。实际软件(MATLAB/NumPy)返回 (L,U,P) 或以其他相容格式给出。
  • ✅ 当矩阵奇异或近奇异时(行列式为 0 或接近 0),LU 分解会失败或产生数值不准的结果。

🔎 小结(将课堂要点浓缩)

  • 📌 高斯消元的每一步对应一个初等矩阵 (E)。这些 (E) 的逆连乘给出 (L),消元结果就是 (U)。因此(无行交换时)(A=LU)。
  • 📌 若有必要进行行交换,则使用置换矩阵 (P),一般写作 (PA=LU)。
  • 📌 LU 的实际价值:一次分解(约 [\tfrac{1}{3}n^3])+ 每个右端向量 [O(n^2)];适合解多个 RHS。
  • 📌 初等矩阵可逆且逆易得; (L) 的下三角元素恰为消元时的乘数(倍数),对理解与实现非常直观。

📝 推荐练习(可直接放在 Notion 复习卡)

  • 🔁 练习 1:按课堂 2×2 示例([A=\begin{pmatrix}2&1\8&7\end{pmatrix}])手算并写出对应的 (E, E^{-1}, L, U)。验证 (A=LU)。
  • 🔁 练习 2:用增广矩阵形式做一次有行交换的 3×3 消元,记录置换矩阵 (P),验证 (PA=LU)。
  • 🔁 练习 3:编程(MATLAB/NumPy)实现简单 LU 分解(不带 pivot),并与内置 lunumpy.linalg.lu(含 pivot)比较结果与误差。
  • 🔁 练习 4:估算并比较直接用高斯(每个 RHS 重新消元)与先 LU 再回代在多个 RHS 下的总运算量(以 (n) 和 (m)(RHS 个数)表示)。