SOR(逐次超松弛)迭代法解线性方程组
字数 749 2025-10-27 19:14:05
SOR(逐次超松弛)迭代法解线性方程组
我将为您讲解SOR(逐次超松弛)迭代法,这是一种用于求解线性方程组的高效迭代算法。
题目描述
求解线性方程组 Ax = b,其中 A 是 n×n 系数矩阵,b 是常数向量。SOR方法通过引入松弛因子 ω 来加速高斯-赛德尔迭代法的收敛速度,特别适用于大型稀疏线性方程组。
算法原理
-
矩阵分裂:将矩阵 A 分解为 A = D - L - U
- D:A 的对角线元素构成的对角矩阵
- L:A 的严格下三角部分(取负号)构成的矩阵
- U:A 的严格上三角部分(取负号)构成的矩阵
-
迭代格式:x⁽ᵏ⁺¹⁾ = (D - ωL)⁻¹[(1-ω)D + ωU]x⁽ᵏ⁾ + ω(D - ωL)⁻¹b
具体计算步骤
-
初始化
- 给定初始猜测解 x⁽⁰⁾(通常设为零向量)
- 选择松弛因子 ω(通常 1 < ω < 2)
- 设置收敛容差 ε 和最大迭代次数
-
迭代计算(对每个分量 i = 1,2,...,n)
xᵢ⁽ᵏ⁺¹⁾ = (1-ω)xᵢ⁽ᵏ⁾ + (ω/aᵢᵢ)[bᵢ - Σⱼ₌₁ⁱ⁻¹ aᵢⱼxⱼ⁽ᵏ⁺¹⁾ - Σⱼ₌ᵢ₊₁ⁿ aᵢⱼxⱼ⁽ᵏ⁾] -
收敛判断
- 计算残差 ||b - Ax⁽ᵏ⁺¹⁾||
- 若残差 < ε 或达到最大迭代次数,则停止
关键参数选择
- 最优松弛因子 ωₒₚₜ = 2/(1+√(1-ρ(J)²)),其中 ρ(J) 是雅可比迭代矩阵的谱半径
- 当 ω=1 时,SOR退化为高斯-赛德尔迭代
- 当 ω>1 时为超松弛,ω<1 时为低松弛
收敛性分析
SOR方法收敛的充分必要条件是迭代矩阵的谱半径小于1。对于对称正定矩阵,当 0<ω<2 时方法保证收敛。
这个算法通过合理选择松弛因子,可以显著提高收敛速度,在实际工程计算中广泛应用。