本文摘要(由AI生成):
本文介绍了SOR迭代方法,它是在Gauss-Seidel迭代法基础上进行改进的一种数值求解线性方程组的方法。SOR迭代通过取前后两次迭代结果的加权平均来加速收敛过程。其中,参数ω的选择对SOR迭代的收敛速度至关重要。当ω=1时,SOR迭代退化为Gauss-Seidel迭代;ω>1时称为逐次超松弛迭代,ω<1时称为逐次低松弛迭代。通过数值算例比较了Jacobi、Gauss-Seidel和SOR三种方法的收敛性能,发现合理选择ω值能使SOR迭代比Gauss-Seidel更快收敛。文章还提供了SOR方法的Fortran程序示例,并回顾了Jacobi和Gauss-Seidel迭代法解线性方程组的相关内容。
SOR迭代是在Gauss-Seidel迭代方法基础之上的进一步改进。其特征是取xk+1和xk的一个适当的加权平均来加快Gauss-Seidel收敛。对于方程组
Gauss-Seidel迭代格式为
而SOR迭代则是:
显然,参数ω=1时就是Gauss-Seidel迭代。而参数ω>1时称为逐次超松弛(Successive Over-Relaxation,SOR)迭代,ω<1时称为逐次低松弛(Successive Under-Relaxation)迭代。
·数值算例
对于下列的稀疏方程组,其精确解是X=[1,1,...,1]。
1)当n=200时,分别用Jacobi,Gauss-Seidel以及SOR
(ω=1.5和ω=1.2),比较三种方法收敛所需的迭代步数。
2)当n=1000时,分别取ω=1.2,1.3,1.6时SOR收敛所需的迭代步数
合理选择参数ω决定了SOR比Gauss-Seidel更快收敛。如果参数选择不当,SOR反而比Gauss-Seidel更慢。参数ω=1时就是Gauss-Seidel迭代。而参数ω>1时称为逐次超松弛(Successive Over-Relaxation,SOR)迭代,ω<1时称为逐次低松弛(Successive Under-Relaxation)迭代。
SOR方法Fortran程序
☆☆☆ 往期相关 ☆☆☆