主题
Search

逐次超松弛迭代法


逐次超松弛迭代法 (SOR) 是一种通过外推 Gauss-Seidel 迭代法来求解线性方程组 Ax=b 的方法。这种外推的形式是前一次迭代值和计算出的 Gauss-Seidel 迭代值之间针对每个分量的加权平均,

 x_i^((k))=omegax^__i^((k))+(1-omega)x_i^((k-1)),

其中 x^_ 表示 Gauss-Seidel 迭代值,而 omega 是外推因子。 想法是选择一个 omega 值,以加速迭代收敛到解的速度。

用矩阵术语表示,SOR 算法可以写成:

 x^((k))=(D-omegaL)^(-1)[omegaU+(1-omega)D]x^((k-1))+omega(D-omegaL)^(-1)b,

其中矩阵 D-L-U 分别表示 A 的对角部分、严格下三角部分和严格上三角部分。

如果 omega=1,则 SOR 方法简化为 Gauss-Seidel 方法。 Kahan (1958) 的一个定理表明,如果 omega 不在区间 (0,2) 内,则 SOR 方法不会收敛。

一般来说,不可能预先计算出能最大化 SOR 收敛速度的 omega 值。 通常,会使用一些启发式估计,例如 omega=2-O(h),其中 h 是底层物理域离散化的网格间距。


另请参阅

雅可比迭代法, 线性方程组, 非定常迭代法, 定常迭代法, 对称逐次超松弛迭代法

此条目由 Noel Black 和 Shirley Moore 贡献,改编自 Barrett 等人 (1994) (作者链接)

使用 Wolfram|Alpha 探索

参考文献

Barrett, R.; Berry, M.; Chan, T. F.; Demmel, J.; Donato, J.; Dongarra, J.; Eijkhout, V.; Pozo, R.; Romine, C.; and van der Vorst, H. 线性系统求解模板:迭代方法构建块,第二版 Philadelphia, PA: SIAM, 1994. http://www.netlib.org/linalg/html_templates/Templates.html.Hageman, L. and Young, D. 应用迭代方法 New York: Academic Press, 1981.Kahan, W. 求解大型线性方程组的 Gauss-Seidel 方法。 Ph.D. 论文. Toronto, Canada, University of Toronto, 1958.Press, W. H.; Flannery, B. P.; Teukolsky, S. A.; and Vetterling, W. T. "Successive Overrelaxation (SOR)." FORTRAN 数值 recipes:科学计算的艺术,第二版 Cambridge, England: Cambridge University Press, pp. 866-869, 1992.Varga, R. 矩阵迭代分析 Englewood Cliffs, NJ: Prentice-Hall, 1962.Young, D. 大型线性系统的迭代解法 New York: Academic Press, 1971.

在 Wolfram|Alpha 中引用

逐次超松弛迭代法

引用为

Black, NoelMoore, Shirley. "逐次超松弛迭代法。" 来自 MathWorld——Wolfram Web 资源,由 Eric W. Weisstein 创建。 https://mathworld.net.cn/SuccessiveOverrelaxationMethod.html

主题分类