线性方程组与矩阵数值计算
模块导航
- 第一组:直接法与问题背景 —— Part 0–2
- 第二组:误差传播、迭代法与优化视角 —— Part 3–5
- 第三组:课程收束与复习 —— Part 6 + 速查
这一组内容覆盖数值分析里最核心的一段主线:线性方程组怎样被稳定、高效地求解。课程安排非常清楚:先从高斯消元和 LU 分解讲直接法(Chap5),再引入范数、条件数和 Hilbert 矩阵解释“为什么有的方程组虽然有解,却非常难算”(Chap6),随后从 PDE/差分方程离散化背景切入迭代法(Chap7–9),最后把对称正定线性方程组重新解释为二次函数极小化问题,引出最速下降法(Chap10)。
如果说前面的误差分析章节回答的是“近似值能不能信”,那么这一页回答的是:当大量实际问题最终都变成矩阵方程时,我们到底该怎样算,怎样判断它算得稳不稳、快不快。
前置知识回顾
- 线性代数基础:矩阵乘法、逆矩阵、上三角 / 下三角矩阵、特征值、对称与正定。
- 矩阵分解直觉:把复杂运算拆成结构化子步骤,是 LU 分解和后续迭代法的共同思想。
- 多元微积分:梯度、方向导数和二次函数极值,对最速下降法的理解尤为关键。
- 差分离散背景:PDE/边值问题离散后会产生大规模稀疏线性方程组,这正是迭代法出现的现实动机。
很多线性方程组并不是“凭空给出一个矩阵”,而是来自连续问题的离散化。比如边值问题、热传导问题、温度场问题离散之后,就会出现大规模、稀疏、甚至带明显结构(三对角、块状)的线性系统。
这使得课程的关注点自然分裂成三层:
- 能不能算出来:直接法,如高斯消元、LU 分解;
- 算出来靠不靠谱:范数、条件数、病态性;
- 规模太大时还算不算得动:Jacobi、Gauss-Seidel、SOR、最速下降等迭代和优化方法。
高斯消元与回代
高斯消元的目标是把一般线性方程组逐步化为上三角系统,然后用回代求解。它的本质不是“机械消元”,而是通过一系列初等行变换,把难解的系统转化成结构化的系统。
LU 分解
若消元过程可被组织成矩阵乘法形式,就能写成
其中 $L$ 为单位下三角阵,$U$ 为上三角阵。于是解方程组可分成两步:先解 $Ly=b$,再解 $Ux=y$。
这意味着:若系数矩阵 $A$ 不变而右端项 $b$ 多次变化,只需做一次分解即可重复使用。
向量范数、矩阵范数与条件数
范数是“大小”的抽象度量。向量有 $\|x\|_1,\|x\|_2,\|x\|_\infty$ 等;矩阵范数则用于刻画线性变换的放大能力。
条件数定义为
它衡量的是:输入中的微小误差会在解中被放大多少倍。
迭代格式与迭代矩阵
把方程组 $Ax=b$ 改写为
其中 $B$ 称为迭代矩阵。这样一来,求解问题就转成“序列是否收敛”的问题。
LU 分解为什么是“消元的矩阵化”
高斯消元把 $Ax=b$ 化成上三角系统 $Ux=c$。若把所有消元乘子整理到一个下三角矩阵里,就得到
于是问题被拆成
LU 分解的价值就在于:把一次复杂消元变成一个可以复用的因子化结果。
误差传播为何落到 $e^{(k)}=B^k e^{(0)}$
若迭代格式为
而精确解 $x^*$ 满足
两式相减得误差递推:
进一步可得
因此收敛性的本质就是研究 $B^k$ 是否趋于零。课程里会给出像 $\|B\|<1$ 这样的充分条件,更深一层则与谱半径 $\rho(B)$ 有关。
Jacobi、Gauss-Seidel、SOR 与块迭代的统一视角
把矩阵分裂为
则可得到:
Jacobi 法
Gauss-Seidel 法
SOR 法则是在 GS 基础上加入松弛因子 $\omega$,其中 $\omega=1$ 时退化为 GS。
Chap9 还进一步提到:如果未知量天然可按物理子区域或变量块来组织,就可以把标量迭代推广成块迭代。也就是说,不再逐个分量更新,而是一次更新一组分量。这种块结构特别适合来自温度场、网格离散等大系统。
这说明上述方法不是孤立公式,而是一族由“矩阵分裂与更新粒度”决定的迭代法。
为什么最速下降法能解对称正定线性方程组
当 $A$ 为对称正定矩阵时,求解 $Ax=b$ 等价于最小化二次函数
其梯度为
因此残差
恰好就是负梯度方向。最速下降法就是沿这个方向做一维最小化,并取最优步长
更新
这样,线性方程组就被重新解释成一个“在碗形曲面里往最低点滑下去”的优化过程。
课件在 Chap7–9 反复强调的一个背景是:很多线性方程组来自连续场问题的离散化。比如温度场问题在网格上差分后,会得到一个大规模稀疏系统。对这类系统来说,直接法虽然原则上可用,但存储和运算代价都很高,于是迭代法就变得更自然。
在这种背景下,Jacobi、Gauss-Seidel、SOR 和块迭代的真正意义不是“多几种公式可选”,而是:面对稀疏、结构化、来自物理网格的大系统时,怎样用更省内存、更能利用局部结构的方式逐步逼近解。
| 路线 | 代表方法 | 适合场景 | 核心优点 | 主要风险/限制 |
|---|---|---|---|---|
| 直接法 | 高斯消元、LU 分解 | 中小规模稠密系统 | 步骤明确,一次完成 | 大规模问题代价高 |
| 稳定性分析 | 范数、条件数、Hilbert 矩阵 | 所有线性系统 | 判断结果是否可信 | 条件数大时问题本身就难 |
| 迭代法 | Jacobi、GS、SOR | 大规模稀疏系统 | 存储省,可逐步逼近 | 不一定收敛,速度依赖谱性质 |
| 块迭代 | 按变量块或子区域更新 | 结构化网格 / 分区系统 | 更贴近物理结构,利于分块求解 | 实现与分析都更复杂 |
| 优化法 | 最速下降法 | 对称正定系统 | 把求解统一到极小化框架 | 可能收敛慢,常作为更高级方法前奏 |
例题 1 · LU 分解为何适合“多右端项”问题
题目:说明当系数矩阵 $A$ 不变、右端项 $b$ 多次变化时,为什么 LU 分解优于每次重新做高斯消元。
- 第一步:一次高斯消元得到 $A=LU$。
- 第二步:对每个新的 $b$,只需求解 $Ly=b$ 和 $Ux=y$ 两个三角系统。
- 第三步:比较开销——分解只做一次,而回代 / 前代可以重复利用。
答案:LU 分解的价值不只在“能解一次”,而在“把消元过程缓存下来”,为重复求解提供结构化复用。
例题 2 · Hilbert 矩阵为什么可解却难算
题目:解释 Hilbert 矩阵的“病态性”到底意味着什么。
- 第一步:注意 Hilbert 矩阵通常并不奇异,所以“有解”并不是问题。
- 第二步:问题在于条件数极大,因此右端项或舍入误差中的微小扰动,会被解向量显著放大。
- 第三步:因此同一个数学问题,哪怕输入只改动很小,输出也可能剧烈变化。
答案:病态不是“算法坏”,而是“问题本身就对误差高度敏感”。条件数正是这种敏感性的量化旋钮。
例题 3 · 温度场离散为什么天然走向迭代法
题目:说明为什么课件在温度场问题后会自然引出 Jacobi、Gauss-Seidel 与 SOR,而不是继续只讲消元法。
- 第一步:连续温度场离散后会得到一个规模大、稀疏、带网格结构的矩阵方程组。
- 第二步:若直接做消元,存储和计算代价会迅速上升。
- 第三步:迭代法只依赖局部更新,更适合逐层扫过网格节点,因此与这类离散物理问题天然匹配。
答案:迭代法在这里不是“数学上多一种选择”,而是大规模稀疏离散系统下更符合结构的计算路线。
例题 4 · 最速下降法的几何解释
题目:说明为什么在对称正定情形下,解 $Ax=b$ 可以看成在一个碗形曲面上寻找最低点。
- 第一步:构造二次函数 $f(x)=\frac12 x^TAx-b^Tx$。
- 第二步:求梯度,得到 $\nabla f(x)=Ax-b$。
- 第三步:极小值点满足 $\nabla f(x)=0$,即 $Ax=b$。
答案:当 $A$ 是对称正定矩阵时,函数图像像一个凸碗,最速下降法就是每一步沿最陡下降方向往底部滑。
后续用途 / 连接
这一组内容是后续特征值问题、共轭梯度法和更一般最优化算法的基础。条件数与谱性质直接影响迭代收敛;LU 分解会在反幂法中再次出现;而 Chap10 的优化视角,则把“解线性方程组”重新嵌入到“最小化二次型”的更大框架里。可以说,这里是数值线性代数真正开始成形的地方。
复习速查
- 直接法:消元 → 上三角 → 回代;LU 是消元的矩阵化。
- 条件数:衡量误差放大量,问题病态不等于算法写错。
- Hilbert 矩阵:经典病态矩阵,说明“有解”不代表“好算”。
- 迭代法核心:$e^{(k)}=B^k e^{(0)}$,收敛性本质取决于迭代矩阵。
- Jacobi / GS / SOR:来自不同矩阵分裂方式,是一族方法。
- 块迭代:把分量更新提升为“按变量块 / 子区域更新”,更贴近结构化大系统。
- 最速下降法:在对称正定条件下,把 $Ax=b$ 转成二次函数极小化。
参考来源
- 电子科技大学数学科学学院数值分析课程组:《数值分析》Chap5–Chap10 PDF 讲义(主参考来源)
- 本页结构与叙述以本地 PDF 为主,网页来源仅作为补充解释,不覆盖课程脉络。