数值线性代数进阶:条件数、迭代法与特征值算法
【章首引子】矩阵一万阶,高斯消元要 O(n³),慢到不可用。数值线性代数的答案是:迭代法(反复改进近似解)和矩阵无关算法(只借矩阵乘向量)。本章讲条件数(系统有多病态)、雅可比/高斯-赛德尔/SOR、共轭梯度 CG、GMRES,以及 QR 算法怎么求特征值。
① 是什么:条件数与迭代法
啥为什么直接法不够
① 条件数:κ(A)=‖A‖·‖A⁻¹‖(2-范数下=σ_max/σ_min)。κ≫1 时右端 b 的微小扰动被放大成解 x 的巨大误差——病态矩阵。深度学习里权重矩阵条件数大 = 梯度易爆炸/消失。
② 古典迭代法:把 A 拆成 A=D+L+U(对角、严格下三角、严格上三角)。雅可比:x^{(k+1)}=D⁻¹(b−(L+U)x^{(k)})。高斯-赛德尔:立刻用新值,x^{(k+1)}=(D+L)⁻¹(b−Ux^{(k)})。SOR:带松弛因子 ω 加速:x^{(k+1)}=(D+ωL)⁻¹[(1−ω)D−ωU]x^{(k)}+ω(D+ωL)⁻¹b。
③ 收敛判据:写成 x^{(k+1)}=B x^{(k)}+c,收敛 ⟺ 谱半径 ρ(B)<1(B 的最大特征值绝对值 <1)。ρ 越小收敛越快。
② 现代 Krylov 子空间方法
证CG、GMRES 与预条件
CG 为什么快:CG 误差范数满足 ‖eₖ‖_A ≤ 2((√κ−1)/(√κ+1))ᵏ‖e₀‖_A。κ=100 时 (9/11)^k,几十步即收敛;κ=10⁶ 时慢得多——所以预条件子把 κ 压小是关键。
QR 算法直觉:QR 迭代是"幂迭代"的批量正交版本:每一步把当前矩阵做 QR 分解再逆序相乘,相当于反复把"最大特征方向"分离出来,最终露出三角结构,对角线即特征值。
③ 例题
④ AI 落点
AI 落点 1:训练病态与归一化
损失曲面 Hessian 条件数大导致梯度下降走"狭长谷"。BatchNorm、谱归一化、LARS 都是在数值上压 κ。
AI 落点 2:稀疏线性系统
GNN 传播、PDE 离散、图拉普拉斯求解都是稀疏大矩阵,用 CG/GMRES + 不完全 Cholesky 预条件,O(n) 而非 O(n³)。
AI 落点 3:特征值与 PCA
PCA 的主成分是协方差矩阵最大特征方向;大规模时不做全 QR,用 Lanczos(对称 Krylov)只求前 k 个特征值。
AI 落点 4:二阶方法
牛顿法要解 Hessian 线性系统;L-BFGS 用有限记忆近似 Hessian,是 CG 在优化里的近亲。
⑤ 延展
展知识衔接地图
往本科走:矩阵特征值、高斯消元、LU 分解是直接法基础。
往算法走:CG → 优化二阶方法;GMRES → 非对称 PDE 求解;QR → 特征值与 SVD 的数值计算。
条件数大就一定不能解。条件数大只是"对扰动敏感",配合预条件、高精度、正则化仍可解;不是无解。
CG 直接用于非对称矩阵。CG 要求对称正定;非对称要用 GMRES / BiCGStab / LSQR,否则搜索方向不再共轭。
以为迭代法一步到位。ρ(B)<1 才收敛;ρ≥1 发散,必须换分裂(如 SOR 选最优 ω)或预条件。
练习
【基础】A=diag(1000,1) 的条件数?
查看解答
κ=σ_max/σ_min=1000/1=1000。【进阶】雅可比迭代矩阵 B 的谱半径 ρ=0.8,误差每步衰减多少倍?
查看解答
‖e_{k+1}‖≈ρ‖e_k‖=0.8‖e_k‖,每步剩 80%;10 步后约 0.8¹⁰≈0.107。【挑战】为什么对称正定矩阵 CG 在 ≤n 步必收敛?
查看解答
Krylov 子空间维度 ≤n,且 CG 在 Kₖ 上极小化二次型;到 k=n 时 Kₙ=ℝⁿ,全局最小点必被找到,故 ≤n 步收敛(精确算术下)。① 条件数 κ=σ_max/σ_min 衡量病态;迭代收敛 ⟺ 迭代矩阵谱半径 ρ(B)<1。
② 古典迭代:雅可比/高斯-赛德尔/SOR;现代:CG(对称正定)、GMRES(非对称),配预条件子。
③ QR 算法反复 QR→RQ 正交相似,收敛到 Schur 形读出特征值。