我有以下矩阵

我已经将其转化为严格占优矩阵,并应用了具有omega=1.1和容差ε=1e-4的高斯-西德尔和逐次超松弛速率方法,其收敛公式如下

通过使用python手动解决这个问题(而不是使用线性代数库),我发现两种方法都需要相同的迭代次数(6),但根据我的理解,如果矩阵在高斯-西德尔和1
那么,我的理解是正确的吗?SOR方法需要更少的迭代次数吗?
发布于 2021-03-24 02:49:08
这实际上是我在试图解决同样的问题时遇到的一个问题。在这里,我将包括来自GS和SOR方法的第6次迭代的结果,并将分析我对为什么会出现这种情况的看法。对于初始向量x= (0,0,0,0)。实际上,我们看到每种方法的L无穷范数都是不同的(见下文)。
对于Gauss-Seidel:
The solution vector in iteration 6 is:
[[ 1.0001]
[ 2. ]
[-1. ]
[ 1. ]]
The L infinity norm in iteration 6 is: [4.1458e-05]对于SOR:
The solution vector in iteration 6 is:
[[ 1.0002]
[ 2.0001]
[-1.0001]
[ 1. ]]
The L infinity norm in iteration 6 is: [7.8879e-05]从学术上讲,"SOR可以提供一种方便的方法来加速求解线性方程组的Jacobian方法和Gauss-Seidel方法。参数ω被称为松弛参数。显然,对于ω=1,我们恢复了原始方程。如果ω<1,我们谈到欠松弛,这对于一些在正常雅可比松弛下不收敛的系统可能很重要。如果ω> 1,我们会有过度松弛,这将是我们更关心的。在多年的手工计算中发现,如果我们超越高斯-赛德尔校正,收敛速度会更快。粗略地说,这些近似保持在解x的同一侧。超松弛因子ω使我们更接近解。当ω= 1时,我们恢复高斯-赛德尔;当ω>1时,该方法称为SOR。ω的最佳选择永远不会超过2,它通常在1.9附近。
有关ω的更多信息,您还可以参考Strang,G.,2006年“线性代数及其应用”一书的第410页以及论文A rapid finite difference algorithm, utilizing successive over‐relaxation to solve the Poisson–Boltzmann equation。
基于上面的学术描述,我认为这两种方法都有6次迭代,因为1.1不是最优的ω值。将ω更改为更接近的值

可以产生更好的结果,因为超松弛的全部要点是发现这个最优的ω。(我再次相信,这个1.1不是最优的omega,一旦我进行计算,它就会更新你)。图片来自Strang,G.,2006“线性代数及其应用”,第4版,第411页。
编辑:实际上,通过在SOR中运行omega迭代的图形表示,我的最优omega似乎在1.0300到1.0440的范围内,这些omega的整个范围给了我五次迭代,这是一种比omega=1的纯Gauss-Seidel更有效的方式,它提供了6次迭代。

https://stackoverflow.com/questions/63934158
复制相似问题