迭代法中的收敛问题

计算科学 迭代法 非线性方程 收敛
2021-12-08 11:14:39

我试图在 Gummel 循环中自洽地求解两个非线性方程。有时(每隔一段时间),当循环以错误的解决方案重复自身并且某个错误仍然存​​在时,我会遇到这种情况。作为一个简单的示例,请考虑以下两个等式:

y=x+1y=x
并假设循环达到x=0对于第一个方程的输入,这导致y=1用于第二个方程的输入。这导致x=1对于第一个方程的输入,导致y=0,并且情况会重演(当然,不会收敛到正确的解决方案)。

我想知道是否有关于这个特定问题以及导致这种行为的方程属性的良好和全面的参考。此外,一般而言,避免此类困难的最佳方法是什么?

1个回答

一般来说,迭代方法不需要收敛。这通常在数值分析教科书中与非线性求根有关(例如,这里是 Isaacson 和 Keller 的《数值方法分析》,第 85 页)。

您正在迭代函数

f(x)=(x1)2
并求解方程x=f(x)与根x1,2=12(3±5)=0.38,2.62. (这种形式的方程比你的两个变量的版本更容易分析xy.)

为了使迭代方法成功,根据标准定理,初始猜测位于(或最终收敛到)一个区间内的值就足够了(x,x+)围绕一个根,使得|f(x)|λ<1对于每个x(x,x+). 自从f(x)=2(x1), 我们可以看到在根附近|f(x)|>1(f(x1,2)=1.24,3.24)。这意味着每个根都是不稳定的:对于每个根,保证初始猜测收敛的围绕它的区间是空的。如果您从已经接近根的初始猜测开始,这种不稳定的行为更容易看到,x1,2+ϵ, 代替0.

例如,可以通过以恰好导致稳定根的等效形式重写方程来解决这个问题。