章节摘要:本章跟着一条主线走——同一个方程组 Ax 等于 b,为什么有时解得毫发无损,有时全军覆没。我们沿着"分解、定罪、修复"的路线推进:先看直接法如何在浮点世界里小心翼翼地消元,再让条件数出庭作证,最后用迭代法处理大到直接法啃不动的稀疏案件。
线 性方程组是科学计算的第一案发地:有限元离散后的刚度矩阵、电路分析的节点方程、机器学习里的最小二乘正规方程,最终都归结为解 Ax = b。主线是一个贯穿案例——希尔伯特矩阵,一个看起来人畜无害、实则条件数指数爆炸的对称正定矩阵。围绕它,我们要回答三个递进的问题:直接法(LU、Cholesky)内部发生了什么让误差可控?条件数如何定量判决"这案子能不能破"?当矩阵大到存不下 LU 分解时,共轭梯度这类迭代法凭什么接管?
本章的认知转折点是学会区分三个不同的数:残差(Ax-b 的范数)、后退误差(数据被扰动了多少的等效解释)、前进误差(x 与真解的距离)。新手只看残差,法庭只认后退误差,而用户关心的其实是前进误差——三者之间靠条件数连接。理解了这个三角关系,你面对"求解器说已收敛但结果不对"时就不会手足无措。
本章另一个贯穿性的建议:把"求解线性系统"理解为一条流水线而不是一个函数调用——先看结构(对称?正定?稀疏?),再选方法,求解后查条件数与残差,必要时上迭代改进。流水线上任何一环跳过,都可能让后面所有的努力建立在不可信的地基上。三节里的实验代码都控制在二十行以内,值得逐个跑一遍并改动参数观察行为变化。
一个供对照的量化锚点:良态随机矩阵条件数约 1e2 到 1e4,有限元网格加密会让条件数按网格间距的平方增长,希尔伯特矩阵则指数级。拿到条件数先定位在这条标尺上的位置,处置方案自然浮出水面。
线性世界的案件到此告一段落,但很多真实问题是非线性的:方程两端弯曲、极值点藏在山谷里。第三章把"误差侦探"的方法论搬到非线性方程求根与优化战场,那里的头号嫌疑人换成了初值与收敛域。