2.8 小结与常见陷阱
本节属“补充篇 · 数值线性代数工具箱”:2.x 是补充篇内部编号,不是课堂第 2 章的节号。课堂第 2 章是线性方程组的解法。
本章把第一章的「尺子」升级成了一整套几何工具箱。这一节做三件事:给出工具选型的全景对照表(哪个问题该用哪个工具)、汇总八条高频陷阱(多数是「公式看着对、数值上必错」的类型)、画出本章与第一章、后续章节的连接点。
八个陷阱是各节错误清单的汇总层,不是新内容:每条都补上实测数字与出处链接,供复习时一次扫完,不替代正文。第一次读到某条陷阱,回到对应小节看完整上下文。
如果把第一章比作「造尺子」(定义范数、条件数、误差),第二章就是「造工具箱」——有了尺子之后,还需要能算的工具:把矩阵拆开(QR、SVD)、把病态问题隔离(截断伪逆)、把误差控制在可接受范围(正交变换不放大误差)。全章的核心立场只有一句话:正交变换是免费的,非正交变换要付条件数的代价。 记住这一条,八个陷阱里至少五条不用背就能推出来。
2.8.1 八个工具的全景对照
| 我要做什么 | 首选工具 | 备选 | 关键公式 | 数值风险 |
|---|---|---|---|---|
| 造一组标准正交基 | Householder(稠密) / Givens(稀疏) | MGS | CGS 的 灾难 | |
| 解超定最小二乘 | QR | SVD(秩亏) | 正态方程的 | |
| 秩亏最小二乘 | SVD 伪逆 | 列主元 QR | 截断阈值的选择 | |
| 判断「解有多准」 | 迭代精化实测 | 用残差当误差 | ||
| 算四个基本子空间 | SVD | 列主元 QR | 手算行简化丢有效数字 | |
| 求主特征值 | 幂法 + Rayleigh 商 | eigsh(稀疏大规模) |
速度 | 不作归一化会溢出 |
| 定位全部特征值 | Gerschgorin 圆盘(快速围栏) | QR 迭代 | 把包含区间当精确值 | |
| 低秩逼近 / 降维 | 截断 SVD | 随机化 SVD(超大规模) | 不中心化就做 PCA |
一句话总纲: 凡是涉及「正交结构」的问题,答案都在 QR 或 SVD 里;凡是涉及「有多准」的问题,答案都在 条件数里;凡是涉及「低维结构」的问题,答案都在 奇异值谱里。
2.8.2 八个陷阱(每个都有实测证据)
八条按性质分三组:算法选错(1、2、5——数学上等价,数值上不等价);判据用错(3、6、7——拿残差当误差、按默认阈值定数值秩、拿谱半径当范数);概念误读(4、8——病态与重特征值的敏感性都是问题属性,换算法救不了)。
1. 在生产代码里用经典 Gram–Schmidt(CGS)。 CGS 与 MGS 只差「内积用原始列还是当前列」,数值上却差一个 ( 倍量级);正确做法是改用 MGS 或 Householder。实测: 时 CGS 的 (完全不正交),MGS 是 ,Householder 是 。判据: 时 CGS 彻底失效(2.3.3、实验一)。
2. 用正态方程解病态最小二乘。 正态方程里的 把条件数平方。实测: 时,正态方程误差 (真值 ,完全崩溃),QR 仍是 (2.3.6、实验二)。判据: 必须换 QR / SVD。
3. 用残差当误差的代理指标。 实测构造:残差 ,解的相对误差却达 (例 2.4.4)。正确判据是 ,不是残差本身;求解器返回的残差只说明「算法向后稳定」,不说明结果准。
4. 以为病态可以用换算法解决。 同一病态矩阵,Cholesky、QR、SVD 的误差量级相同(都是 ):实测 Hilbert 12 阶无论用哪种解法,误差都是 (实验二)。病态是问题的属性(1.2.6):换算法救不了,只能重述问题或提高精度。
5. 对 做特征值分解来「算 SVD」。
数学上等价,数值上是灾难:,直接丢掉一半有效数字。永远用 np.linalg.svd(A)(Golub–Kahan 直接作用在 上),不要 eigh(A.T @ A)。
6. 不截断伪逆、不按噪声水平定数值秩。
实测:给矩阵加 的噪声后,matrix_rank 默认阈值判出 ,按噪声阈值只有 ——判错 6 倍多(例 2.6.5 后的思考、实验三)。正确做法是按噪声水平定数值秩、截断伪逆:未截断的伪逆会放大 ,与直接求逆同样危险。
7. 用 当 ,或以为 就每步收缩。 是不等式,不是等式: 的 、(差 3 个数量级)。非正规矩阵还会出现「瞬态增长」——谱半径 只保证最终衰减,有限步可能先涨(例 2.5.6)。稳妥判据是 (1.3.5 定理 1.3.6)。
8. 以为重特征值也能算准。 非正规矩阵的 重特征值对 扰动移动 :实测 时移动 (),对称矩阵在同量扰动下只移动 ——差 倍(2.5.5、实验四)。重特征值的这种敏感性是固有病态,任何算法都救不了。
2.8.3 与前后章节的连接
从第一、二章接过来的三件工具:
- 范数与条件数(1.3、2.4)→ 本章用得最多的一把「尺子」;
- 单位舍入误差 与浮点公理(1.2.5)→ 所有误差分析的常数;
- conditioning ≠ stability(1.2.6)→ 本章 2.4.4、2.5.5 两次重演。
四个去向(章号均链到全书路线图,表中「具体用途」一列是本章工具在这些章里的落点):
| 本章内容 | 去向 | 具体用途 |
|---|---|---|
| QR 分解、正交变换 | 第 3 章 线性方程组直接法 | LU 与 QR 的稳定性对比、主元策略 |
| 最小二乘、QR、条件数 | 第 4 章 最小二乘与 QR | Householder / Givens 的工程实现、Tikhonov 正则化 |
| 投影、、谱半径 | 第 5 章 迭代法 | Jacobi / Gauss–Seidel / SOR 的收敛判据、Krylov 子空间 |
| 特征值、Rayleigh 商、SVD | 第 6 章 特征值与奇异值计算 | 幂法、反幂法、QR 方法、Arnoldi / Lanczos |
| 低秩逼近、PCA、数值秩 | 第 12 章 最优化与随机方法 | 矩阵补全、随机化算法、降维 |
2.8.4 自查清单
本章的公式与结论已汇总到公式与结论卡,术语与定义位置见术语索引,「三句话带走」见全章总结。这里只留一份自测清单,用来检验你是否真会用,而不只是记住了。
学完补充篇后,你应该能不看笔记回答以下六个问题;答不出,就回对应小节重读: