参数设置
A = [[2, 1, 1], [1, 3, 1], [1, 1, 4]]
b = [4, 5, 6]
精确解 x* = (1, 1, 1)
默认(x_0=0、ω=1、tol=1e-6)约 11 次迭代收敛。ω 设为 1.1〜1.2 可减少迭代次数;ω 超过 1.5 会出现振荡,收敛变慢;ω≧2 必然发散。
迭代轨迹(分量 x, y, z)
横轴为迭代次数 k,纵轴为分量值。红=x、绿=y、蓝=z,虚线为精确解 (1, 1, 1),每次迭代为标记点。ω 影响振幅与收敛速度。
残差 ||x^(k+1)-x^(k)||_∞ 衰减(log10)
横轴为迭代号 n,纵轴为相邻迭代之差的无穷范数取 log10。线性收敛表现为直线下降。红色虚线是容差 tol,斜率越陡收敛越快,反映最优 ω 附近的高效收敛。
理论与主要公式
高斯-赛德尔迭代(分量形式):
$$x_{i}^{(k+1)} = \frac{1}{a_{ii}}\left(b_i - \sum_{j\lt i} a_{ij} x_{j}^{(k+1)} - \sum_{j\gt i} a_{ij} x_{j}^{(k)}\right)$$
SOR(逐次超松弛):
$$x_{i}^{(k+1)} = (1-\omega)\,x_{i}^{(k)} + \omega \cdot x_{i,\text{GS}}^{(k+1)}$$
矩阵形式(D 对角,L 严格下三角,U 严格上三角):
$$(D + \omega L)\,x^{(k+1)} = \omega b - [\omega U + (\omega-1)D]\,x^{(k)}$$
$\omega=1$ 即纯高斯-赛德尔,$1<\omega<2$ 为超松弛,$0<\omega<1$ 为欠松弛。Kahan 定理要求 $\omega \in (0,2)$ 才能收敛。最优值 $\omega_{\text{opt}} = 2/(1+\sqrt{1-\rho_{GS}^{2}})$,其中 $\rho_{GS}$ 是高斯-赛德尔迭代矩阵的谱半径。
高斯-赛德尔法模拟器是什么
🙋
默认参数下 11 次迭代就收敛到 (1, 1, 1) 了。比起直接对矩阵求逆,迭代解法的好处是什么?
🎓
问得好。3 阶系统 LU 分解几乎瞬时完成,但 CAE 实际中常见的方程组规模高达百万级到十亿级。直接法的时间和存储均为 O(N³),对于稀疏系统根本不可行。高斯-赛德尔法是最古典的迭代解法:依次更新各分量并立即使用最新值,单次迭代成本仅为 O(非零元素数)。对于有限元产生的 99% 为零的稀疏刚度矩阵,它比直接法快几个数量级。
🙋
把 ω 调到 1.2,迭代次数降到 10 左右。这就是 SOR 吗?
🎓
没错,那就是 SOR(逐次超松弛法)。公式 x^(k+1) = (1-ω) x^(k) + ω · x_GS^(k+1),把高斯-赛德尔的新值"再向前推一点"。1<ω<2 称为超松弛,选得合适收敛速度大幅提升。理论最优值由 ω_opt = 2/(1+√(1-ρ²)) 给出,但工程上一般通过本工具的 ω 扫描按钮直接搜索最少迭代数对应的 ω。
🙋
把 ω 调到 1.95 时数值开始剧烈振荡,是有上限吗?
🎓
是的。Kahan 定理证明 SOR 仅当 ω∈(0, 2) 才可能收敛,边界严格。区间内的最优 ω 与矩阵性质有关。本工具的 A=[[2,1,1],[1,3,1],[1,1,4]] 最优 ω 大约在 1.1〜1.3,而 CFD 压力修正用的 Poisson 方程有限差分矩阵,最优 ω 通常在 1.7〜1.9。现代 CAE 中高斯-赛德尔很少单独使用,更多作为多重网格的光滑器或 CG/GMRES 的预条件子出现。
🙋
把 x_0 改成 10,迭代次数上升到 16 次左右。初始猜测真的有这么大影响吗?
🎓
对角占优矩阵的高斯-赛德尔法是线性收敛:误差每次迭代缩小 ρ 倍(ρ<1)。初始值离精确解越远,初始误差越大,达到容差所需迭代数越多,约为 log(误差/tol)/log(1/ρ)。线性收敛比牛顿法的二次收敛慢,但好处是无需计算雅可比、实现简单、易并行。所以实际中常用"几次高斯-赛德尔作为 CG 的预条件子"这种混合方案。
物理模型与主要公式
高斯-赛德尔法由 Carl Friedrich Gauss(1823 年,私信中)和 Philipp Ludwig von Seidel(1874 年,正式发表)独立发现,是求解线性方程组 Ax=b 的迭代算法。它将各分量依次更新,并在同一次迭代中立即复用之前已更新的最新值,这一点与雅可比法不同。
$$x_{i}^{(k+1)} = \frac{1}{a_{ii}}\left(b_i - \sum_{j\lt i} a_{ij} x_{j}^{(k+1)} - \sum_{j\gt i} a_{ij} x_{j}^{(k)}\right)$$
对角元 $a_{ii}$ 必须非零。本工具的矩阵 A=[[2,1,1],[1,3,1],[1,1,4]] 对角元为 2、3、4,满足 $|a_{ii}| \geq \sum_{j\neq i} |a_{ij}|$(2≥2、3≥2、4≥2),属广义对角占优;又因对称正定,SOR 在 0<ω<2 全区间收敛。
SOR(逐次超松弛法)将高斯-赛德尔更新值与上一迭代值用松弛因子 ω 加权:
$$x_{i}^{(k+1)} = (1-\omega)\,x_{i}^{(k)} + \omega \cdot x_{i,\text{GS}}^{(k+1)}$$
ω=1 即纯高斯-赛德尔,1<ω<2 为超松弛(加速),0<ω<1 为欠松弛(稳定化)。最优值 $\omega_{\text{opt}} = 2/(1+\sqrt{1-\rho_{GS}^{2}})$,其中 $\rho_{GS}$ 是高斯-赛德尔迭代矩阵 $G_{GS} = -(D+L)^{-1}U$ 的谱半径。
常用收敛判据是相邻迭代之差的无穷范数 $\|x^{(k+1)} - x^{(k)}\|_\infty < \varepsilon$,本工具使用 $\varepsilon = 10^{-n}$。
实际应用
有限元法(FEM)的线性求解:结构、热、电磁分析的控制方程离散后产生大型稀疏对称正定矩阵。Abaqus、ANSYS、COMSOL 等商业软件内部使用预处理共轭梯度法(PCG)或 GMRES,并以 SOR、对称 SOR(SSOR)作为常用预条件子。SSOR 实现简单、内存效率高,对对角占优刚度矩阵稳定,可处理 200 万自由度量级的结构分析。
多重网格的光滑器:CFD 压力 Poisson 方程和热传导问题的多重网格预条件中,每层网格上"几次高斯-赛德尔迭代"作为光滑器是核心算法。Red-Black 高斯-赛德尔(按棋盘格分割并行化)已成 GPU 多重网格标准实现,将流体求解器的压力步骤加速 100 倍以上。
电力潮流计算:交流潮流方程(非线性)的求解传统上先用几次高斯-赛德尔迭代得到初始解,再切换到牛顿-拉夫逊法。高斯-赛德尔精度不及牛顿法,但实现简单且初始迭代不易发散。中国及日本电力公司在故障筛查等场合至今仍在使用。
图像重建与断层成像:CT 和 MRI 的迭代代数重建技术(ART, SART)核心就是大型稀疏投影矩阵上的高斯-赛德尔迭代。结合 SOR(典型松弛因子 0.1〜0.5)可加速重建,从而降低医学成像的辐射剂量同时保持图像质量。
常见误解与注意事项
最常见的误解是"高斯-赛德尔法总比雅可比法快"。对角占优矩阵下渐近收敛率约为雅可比的 2 倍,但弱占优或非对角占优矩阵下高斯-赛德尔可能更慢,甚至发散。本工具的 A 是对称正定矩阵,两种方法都收敛,但实际 CAE 中必须先确认矩阵性质再选择求解器。
另一常见误区是"SOR 的最优 ω 可以解析计算"。虽然 ω_opt = 2/(1+√(1-ρ²)) 提供理论值,但谱半径 ρ 的计算本身是特征值问题,比解 Ax=b 更耗时。工程实践通常以 ω=1.7〜1.9(Poisson 类问题的经验值)为初值扫描,取迭代次数最少的 ω。本工具的 ω 扫描按钮正是该实务方法的再现。
最后,"||x^(k+1) − x^(k)||_∞ < ε 等同于精度"是一个陷阱。当松弛因子 ω 较小(欠松弛)时,相邻迭代差很小但仍可能远离精确解。严格做法是用相对残差 ||b − Ax||_2 / ||b||_2 < ε 判定,但计算成本更高。生产代码常用相对残差与迭代差结合的混合判据。
常见问题
高斯-赛德尔法将 Ax=b 按分量分解,并立即用最新的 x 值依次更新各分量,公式为 x_i^(k+1) = (1/a_ii)(b_i − Σ_{ji} a_ij x_j^(k))。本工具默认系统 A=[[2,1,1],[1,3,1],[1,1,4]]、b=[4,5,6] 是对角占优矩阵,精确解 (1,1,1)。从 (0,0,0) 出发、ω=1 时大约 11 次迭代即可达到 1e-6 精度。
雅可比法仅利用上一次迭代的 x 同时更新所有分量。而高斯-赛德尔法在同一次迭代中立即复用已更新的 x_j^(k+1),对于对角占优矩阵通常比雅可比法快约一倍。本工具中 ω=1 即为高斯-赛德尔法,1<ω<2 是 SOR(逐次超松弛),适当选择 ω 可进一步加速收敛。
ω=1 即纯高斯-赛德尔法;0<ω<1 是欠松弛(提高稳定性);1<ω<2 是 SOR 超松弛(加速收敛)。最优值 ω_opt = 2/(1+√(1−ρ²)) 由迭代矩阵 G_GS 的谱半径 ρ 决定,但工程实践常通过扫描法寻找最少迭代数对应的 ω。本工具的 ω 扫描按钮可让 ω 从 0.5→1.9 变化,直观看到最优值所在区间。
高斯-赛德尔法的充分收敛条件是 (1) A 严格对角占优(|a_ii| > Σ_{j≠i} |a_ij|)或 (2) A 是对称正定矩阵。对角元过小或为零会导致主元失败。对于 SOR,Kahan 定理证明 ω 不在 (0,2) 区间必发散。本工具的 A=[[2,1,1],[1,3,1],[1,1,4]] 满足广义对角占优且对称正定,因此 0<ω<2 全区间稳定收敛。