如何解决欧米茄在连续过度松弛率法中有何意义?
我有以下矩阵
我已将其转换为严格占优的矩阵,并应用了Guass-Siedel和omega = 1.1的逐次超松弛率方法以及epsilon = 1e-4的容差,其收敛公式如下:
通过使用python手动解决此问题(不使用线性代数库),我发现这两种方法都具有相同的迭代次数(6),但是据我了解,矩阵是否在Gauss-Siedel和1
解决方法
这实际上是我自己在尝试解决同一问题时遇到的一个问题。在这里,我将包括来自 GS 和 SOR 方法的第 6 次迭代的结果,并将分析我对为什么会这样的看法。对于初始向量 x = (0,0)。实际上,我们看到每种方法的 L 无穷范数都不同(见下文)。
对于高斯-赛德尔:
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,我们有过度松弛,我们将更关注它。它在多年的手工计算中发现,如果我们超越 Gauss-Seidel 校正,收敛速度会更快。粗略地说,这些近似值保持在解 x 的同一侧。过松弛因子 ω 使我们更接近解。随着 ω = 1,我们恢复 Gauss-Seidel;当 ω > 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 次迭代。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。