Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第 4 讲(09-16):LU 分解与迭代法引论

课堂实录精编。开头复习高斯消去的矩阵形式,随后三大块:LU 分解的存在性与构造 (Doolittle 直接三角分解 + 完整板书例题)、三对角方程组的追赶法、迭代法引论与收敛定理。 对应原书 2.2 节(Doolittle 分解 2.2.1、追赶法 2.2.4)与 2.4.1(迭代法的一般形式与收敛性); 为本书第 2 章 线性方程组的解法(直接法 + 迭代法)的先导—— 本讲内容暂无正文小节承载,讲座页即当前最完整的表述,后续成章后回填链接。 对应学习目标:K1.7 的直接应用(∥G∥<1\lVert G\rVert&lt;1 收敛判据);其余属第 2 章目标。

10 分钟复习版 · 第 4 讲

一句话:高斯消去的矩阵形式给出 LU 分解;稀疏结构用追赶法降到 O(n)O(n);迭代法引论用矩阵分裂统一描述。

必记结论

内容 要点
消去的矩阵形式 第 kk 步 = 左乘初等矩阵 PkP_k;P=Pn−1⋯P1P=P_{n-1}\cdots P_1 是单位下三角,L:=P−1L:=P^{-1} 也是
LU 存在性 前 n−1n-1 个顺序主子式非零 ⇒A=LU\Rightarrow A=LU(LL 单位下三角、UU 上三角)
解方程组 Ly=bLy=b 前代 + Ux=yUx=y 回代;一次分解,反复使用
Doolittle 逐圈公式 ukj=akj−∑s<klksusju_{kj}=a_{kj}-\sum_{s\lt k}l_{ks}u_{sj};lik=aik−∑s<klisuskukkl_{ik}=\dfrac{a_{ik}-\sum_{s\lt k}l_{is}u_{sk}}{u_{kk}}——关键是安排顺序使每步只含一个未知数
三对角追赶法 分解不产生填充;计算量约 3n3n,即 O(n)O(n)(对比 O(n3)O(n^3))
矩阵分裂 A=N−P⇒x(k+1)=Gx(k)+dA=N-P\Rightarrow x^{(k+1)}=Gx^{(k)}+d,G=N−1PG=N^{-1}P;∥G∥<1⇒\|G\|&lt;1\Rightarrow 解存在唯一(本讲证到唯一性)

老师强调的考点:随机矩阵几乎必然非奇异,可放心用分解算法;稀疏 / 三对角 O(n)O(n) 方法是工程主流,实际中没人用朴素高斯消去;迭代法收敛判定的钥匙是「找一个矩阵范数使 ∥G∥<1\|G\|&lt;1」。编程练习要求自己动手实现 Doolittle,不要全让 AI 代劳。

对应正文:为第 2 章 线性方程组的解法先导;收敛判据的理论依据见 1.3.5 定理 1.3.6

课堂时间线

时间内容
02:09–13:10复习:高斯消去的矩阵形式,每步消去 = 左乘初等矩阵 PkP_k
13:10–19:20LU 分解定义与存在条件;题外话:随机矩阵几乎必然非奇异
19:20–29:00为什么需要 LU:Ly=bLy=b 前代 + Ux=yUx=y 回代
29:00–46:30直接三角分解(Doolittle,待定系数法逐圈求解)
46:35–59:00板书例题:3×33\times3 矩阵的 LU 分解完整演算
59:00–60:30编程提示
60:27–78:40稀疏矩阵:一维两点边值问题 u′′=fu&#x27;&#x27;=f 差分离散 → 三对角;三对角 LU 保持稀疏,计算量约 3n3n
78:43–90:10迭代法引论:矩阵分裂 A=N−PA=N-P 与迭代格式
90:11–97:10收敛定理及证明前半(唯一性);录音在下课音乐中结束

下面按这条时间线,依次展开各段内容。

一、复习:高斯消去的矩阵形式(板书)

第 kk 步消去,相当于左乘一个初等矩阵 PkP_k——它是主对角线为 1 的下三角阵,第 kk 列 对角线以下的元素依次为消元乘数:

Pk=(1⋱lk+1,k1lk+2,k⋱lnk1),lik=−aikakk (i>k),P_k=\begin{pmatrix}1&amp;&amp;&amp;&amp;\&amp;\ddots&amp;&amp;&amp;\&amp;l_{k+1,k}&amp;1&amp;&amp;\&amp;l_{k+2,k}&amp;&amp;\ddots&amp;\&amp;l_{nk}&amp;&amp;&amp;1\end{pmatrix}, \qquad l_{ik}=-\frac{a_{ik}}{a_{kk}}\ (i&gt;k),

P1P_1 的显式形式(板书)是:第 1 列对角线以下依次为 −a21a11,−a31a11,…-\frac{a_{21}}{a_{11}},-\frac{a_{31}}{a_{11}},\dots。 消去 n−1n-1 步之后

(Pn−1⋯P1)A=U,记 P=Pn−1⋯P1 ⇒ A=P−1U.(P_{n-1}\cdots P_1)A=U,\qquad\text{记 } P=P_{n-1}\cdots P_1\ \Rightarrow\ A=P^{-1}U .

关键引理:单位下三角阵的乘积与逆仍是单位下三角阵,因此 PP 可逆,且 L:=P−1L:=P^{-1} 也是单位下三角阵(对角线为 1,元素恰为消元乘数的相反数)。

二、LU 分解与两个三角方程组

定理(存在性):若方阵 AA 的前 n−1n-1 个顺序主子式不为 0,则

A=LU,L 为单位下三角阵,U 为上三角阵.A=LU,\qquad L\ \text{为单位下三角阵},\quad U\ \text{为上三角阵}.

(板书注意:高斯消去定理用的是“  ⟺  \iff“——能消成上三角   ⟺  \iff 前 n−1n-1 个顺序主子式非零; LU 存在性定理用的是”⇒\Rightarrow“。)

用 LU 分解解 Ax=bAx=b:

  1. 代入 A=LUA=LU,得 LUx=bLUx=b;
  2. 拆成两个三角方程组:
    • 前代 (forward substitution) Ly=bLy=b:自上而下逐个解出 y1,…,yny_1,\dots,y_n;

    • 回代 (backward substitution) Ux=yUx=y:自下而上逐个解出。

      xn=ynunn,xi=yi−∑j=i+1nuijxjuii (i=n−1,…,1).x_n=\frac{y_n}{u_{nn}},\qquad x_{i}=\frac{y_i-\sum_{j=i+1}^nu_{ij}x_j}{u_{ii}}\ (i=n-1,\dots,1).

老师口中的“追赶法“在这里泛指前代(“追”)与回代(“赶”)这一对过程; 狭义的追赶法专指求解三对角方程组的 Thomas 算法(见本讲第四节)。一次分解,反复使用: 多组右端 b(1),b(2),…b^{(1)},b^{(2)},\dots 共享同一组 L,UL,U,对每组右端只需做一次前代和一次回代。

三、直接三角分解(Doolittle 分解,待定系数法)

不做高斯消去,而是直接比较 A=LUA=LU 两端的元素,把 L,UL,U 的未知元素逐圈解出 (第 1 行 U → 第 1 列 L → 第 2 行 U → 第 2 列 L → …)。关键在于安排计算顺序, 使每个方程只含一个未知数,从而避开未知数相乘带来的非线性项。板书逐圈公式为:

u1j=a1j;li1=ai1u11;u_{1j}=a_{1j};\qquad l_{i1}=\frac{a_{i1}}{u_{11}};

ukj=akj−∑s=1k−1lksusj;lik=aik−∑s=1k−1lisuskukk.u_{kj}=a_{kj}-\sum_{s=1}^{k-1}l_{ks}u_{sj};\qquad l_{ik}=\frac{a_{ik}-\sum_{s=1}^{k-1}l_{is}u_{sk}}{u_{kk}} .

板书例题(完整演算)

分解 A=(123252315)A=\begin{pmatrix}1&amp;2&amp;3\2&amp;5&amp;2\3&amp;1&amp;5\end{pmatrix}(前两个顺序主子式 1,1≠01,1\neq0,可分解)。

(123252315)=(100l2110l31l321)(u11u12u130u22u2300u33)\begin{pmatrix}1&amp;2&amp;3\2&amp;5&amp;2\3&amp;1&amp;5\end{pmatrix} =\begin{pmatrix}1&amp;0&amp;0\l_{21}&amp;1&amp;0\l_{31}&amp;l_{32}&amp;1\end{pmatrix} \begin{pmatrix}u_{11}&amp;u_{12}&amp;u_{13}\0&amp;u_{22}&amp;u_{23}\0&amp;0&amp;u_{33}\end{pmatrix}

按圈求解(板书原始等式):

  • 第一行:1=1⋅u11, 2=1⋅u12, 3=1⋅u13⇒u11=1, u12=2, u13=31=1\cdot u_{11},\ 2=1\cdot u_{12},\ 3=1\cdot u_{13}\Rightarrow u_{11}=1,\ u_{12}=2,\ u_{13}=3;
  • 第一列:2=l21⋅1, 3=l31⋅1⇒l21=2, l31=32=l_{21}\cdot1,\ 3=l_{31}\cdot1\Rightarrow l_{21}=2,\ l_{31}=3;
  • 第二圈:
    • 5=2×2+1×u22⇒u22=15=2\times2+1\times u_{22}\Rightarrow u_{22}=1;
    • 2=2×3+1×u23⇒u23=−42=2\times3+1\times u_{23}\Rightarrow u_{23}=-4;
    • 1=3×2+l32×1⇒l32=−51=3\times2+l_{32}\times1\Rightarrow l_{32}=-5;
  • 最后:5=3×3+(−5)×(−4)+1×u33⇒u33=−245=3\times3+(-5)\times(-4)+1\times u_{33}\Rightarrow u_{33}=-24。

L=(1002103−51),U=(12301−400−24).L=\begin{pmatrix}1&amp;0&amp;0\2&amp;1&amp;0\3&amp;-5&amp;1\end{pmatrix},\qquad U=\begin{pmatrix}1&amp;2&amp;3\0&amp;1&amp;-4\0&amp;0&amp;-24\end{pmatrix}.

编程提示:算法本身“不难,难在编程时别把顺序搞乱“——解出的元素要及时更新存储; 整个程序“充其量两个循环“。建议自己动手写,不要全让 AI 代劳。

四、稀疏矩阵与三对角方程组(工程主流方法)

来源:对一维两点边值问题(Poisson 型方程)u′′=fu&#x27;&#x27;=f 做二阶差分离散, 得 uj+1−2uj+uj−1h2=fj\dfrac{u_{j+1}-2u_j+u_{j-1}}{h^2}=f_j(边界 u0=un+1=0u_0=u_{n+1}=0),即三对角方程组 1h2tridiag⁡(1,−2,1) u=f\frac{1}{h^2}\operatorname{tridiag}(1,-2,1),u=f。

三对角 LU 保持稀疏(板书逐条验证):对 T=tridiag⁡(1,−2,1)T=\operatorname{tridiag}(1,-2,1) 按待定系数法分解:

  • u11=−2, u12=1, u1j=0 (j≥3)u_{11}=-2,\ u_{12}=1,\ u_{1j}=0\ (j\ge3);
  • 1=l21(−2)⇒l21=−121=l_{21}(-2)\Rightarrow l_{21}=-\frac12;
  • 0=l31(−2)⇒l31=00=l_{31}(-2)\Rightarrow l_{31}=0,以下全为零;u24=0u_{24}=0 …

结论:LL 为下双对角(主对角 + 次对角)、UU 为上双对角—— 分解不产生填充 (fill-in)。

一般三对角追赶法记号(板书形式): A=(下双对角 di,bi)⋅(上双对角 ui,ei)A=(\text{下双对角 } d_i,b_i)\cdot(\text{上双对角 } u_i,e_i), 其中主对角 a1,…,ana_1,\dots,a_n、次对角 b2,…,bnb_2,\dots,b_n、上对角 c1,…,cn−1c_1,\dots,c_{n-1}。 分解时只需对每行的“三个系数“做待定计算,计算量约 3n3n,即 O(n)O(n) (对比高斯消去法的 O(n3)O(n^3))。

老师强调:稀疏计算是数值计算中最常见的场景;对三对角和稀疏矩阵的分解 “是当前工程主流、真正在用的方法;直接用高斯消去没人用”。

五、迭代法引论

动机:矩阵求逆困难,矩阵相乘却容易(可并行、可分块,MATLAB 内置优化)。 主流的大规模求解器是 Krylov 子空间方法(GMRES)。

矩阵分裂与迭代格式(板书):把 AA 分裂为 A=N−PA=N-P,其中 NN 取“好求逆“的矩阵 (对角阵、三角阵等):

Ax=b ⟺ Nx=b+Px ⟺ x=N−1Px+N−1b,Ax=b\ \Longleftrightarrow\ Nx=b+Px\ \Longleftrightarrow\ x=N^{-1}Px+N^{-1}b ,

得迭代格式(记 G=N−1P, d=N−1bG=N^{-1}P,\ d=N^{-1}b):

x(k+1)=Gx(k)+d,k=0,1,2,…x^{(k+1)}=Gx^{(k)}+d,\qquad k=0,1,2,\dots

收敛定理(板书):若存在某个矩阵范数使 ∥G∥<1&#124;G&#124;&lt;1,则方程 x=Gx+d (∗)x=Gx+d\ ( *) 有唯一解 x∗x_*;且对任意初值 x(0)x^{(0)},迭代格式都收敛到 x∗x_*。

证明(课上完成唯一性部分):∥G∥<1⇒I±G&#124;G&#124;&lt;1\Rightarrow I\pm G 可逆(第 3 讲的定理, 取 B=−GB=-G);由 (∗)  ⟺  (I−G)x=d( *)\iff(I-G)x=d 知解存在唯一。收敛性部分 (x(k)→x∗x^{(k)}\to x_* 的误差估计)留到下节课继续。

选法的艺术:核心是选好分裂 A=N−PA=N-P,让迭代矩阵 GG 满足 ∥G∥<1&#124;G&#124;&lt;1 且收敛快—— “找到一个矩阵范数使 ∥G∥<1&#124;G&#124;&lt;1“是收敛判定的钥匙。

六、老师强调

  • 随机矩阵几乎必然非奇异(三个随机向量几乎不可能共面)——非奇异矩阵占绝对多数,放心用分解算法。
  • LU 分解的价值:一次分解、反复使用,后续只剩两个便宜的三角回代。
  • 三对角方程组:O(n)O(n) 方法是工程主流;朴素高斯消去 O(n3)O(n^3) 在实际中没人用。
  • 迭代法收敛判定:找一个矩阵范数使 ∥G∥<1&#124;G&#124;&lt;1。
  • 编程练习:自己动手实现 Doolittle 分解,不要全让 AI 代劳。

七、课堂口述与标准术语对照(节选)

老师口述/转写标准术语
高级消息法 / 高速销券 / 俄罗斯消息高斯消去(法)
顺序主此事 / 顺序竹子顺序主子式
代理系统 / 代孕器术待定系数(法)
追杆 / 微钢棒 / 阳阻推干追赶法
吸收矩阵 / 西湖矩阵稀疏矩阵
齐翼 / 其一奇异
别再打 / 叠代迭代(法)
GIMRES / 金布莱斯法GMRES
Curve of SpoonKrylov 子空间
变形 / 并形并行