首页/文章/ 详情

SOR迭代法解线性方程组

7月前浏览3412

本文摘要(由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程序

☆☆☆  往期相关  ☆☆☆

Jacobi迭代法解线性方程组

Gauss-Seidel迭代法解线性方程组


来源:数值分析与有限元编程
科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-02
最近编辑:7月前
太白金星
本科 慢慢来
获赞 5粉丝 10文章 324课程 0
点赞
收藏
作者推荐

Gauss-Seidel迭代法解线性方程组

与Jacobi迭代法密切相关的一种迭代方法叫做Gauss-Seidel迭代方法。Gauss-Seidel方法与Jacobi方法之间的差别是:在一个迭代步里,一旦未知变量值有更新,则立马投入使用。而不用像Jacobi方法那样下一个迭代步才使用。对于方程组:3u+v=5,u+2v=5,Gauss-Seidel迭代就这样进行:注意红圈位置是Gauss-Seidel方法与Jacobi方法之间的差别:v1的计算用到了u1而不是u0。通常情况下Gauss-Seidel方法比Jacobi方法收敛更快。设D表示系数矩阵A 的主对角部分,L表示A的主对角线下方部分,U表示A的主对角线上方部分。则A=D+L+U,AX=b可改写为(D+L+U)x=b,进一步有用Gauss-Seidel方法求解方程组Gauss-Seidel迭代格式为:使用初值[u0,v0,w0]=[0,0,0]开始迭代,以下是迭代过程:系数矩阵是严格对角占优的,因此迭代将收敛到精确解[2,-1,1]。Gauss-Seidel方法的Fortran程序☆☆☆ 往期相关 ☆☆☆Jacobi迭代法解线性方程组严格对角占优矩阵来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈