欧米茄在连续超松弛速率法中的意义是什么?

2024-05-29 07:37:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的矩阵

enter image description here

我已将其转化为严格占优矩阵,并应用Guass-Siedel和连续超松弛速率法,ω=1.1,ε公差=1e-4,收敛公式如下

enter image description here

通过手动使用python解决这个问题(不使用线性代数库),我发现这两种方法的迭代次数相同(6),但根据我的理解,如果矩阵在Gauss-Siedel和1<;欧米茄<;2对于连续超松弛速率法,SOR法应采取较少的迭代次数,而这并没有发生

那么,我的理解正确吗?SOR方法是否必须减少迭代次数


Tags: 方法lt速率矩阵手动次数公式欧米茄
1条回答
网友
1楼 · 发布于 2024-05-29 07:37:34

这实际上是我在试图解决同样的问题时遇到的一个问题。在这里,我将包括来自GS和SOR方法的第六次迭代的结果,并将分析我对为什么会出现这种情况的看法。对于两个初始向量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可以提供一种方便的方法来加速求解线性系统的雅可比法和高斯-赛德尔法。参数ω称为松弛参数。显然,对于ω=1,我们恢复了原始方程。如果ω<;1我们讨论欠松弛,这对于一些在正常雅可比松弛下不会收敛的系统很重要。如果ω>;1、我们过度放松,对此我们会更加关注。在多年的手工计算中发现,如果我们超过高斯-赛德尔校正,收敛速度会更快。粗略地说,这些近似值保持在解x的同一侧。超松弛因子ω使我们更接近解。当ω=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不是最优ω值。将ω更改为更接近optimal ω的值可能会产生更好的结果,因为超松弛的关键是发现这个最优ω。(我再次相信,这1.1不是最佳的欧米茄,一旦我进行计算,它将更新您)。图片来自Strang,G.,2006年《线性代数及其应用》第4版第411页

编辑:实际上,通过在SOR中运行omega迭代的图形表示,我的最佳omega似乎在1.0300到1.0440的范围内,这些omega的整个范围给了我五次迭代,这比omega=1的纯Gauss Seidel给出6次迭代更有效

efficiency plot

相关问题 更多 >

    热门问题