当解处的雅可比行列式为奇异时牛顿法的策略

计算科学 优化 收敛 牛顿法
2021-12-23 02:53:16

我正在尝试为变量求解以下方程组P,x1x2(其他都是常数):

A(1P)2k1x1=0AP2k2x2=0(1P)(r1+x1)4L1P(r1+x2)4L2=0

我可以看到我可以将这个方程组变成单个变量的单个方程(P)通过求解方程 1 和 2 得到x1x2分别并将它们代入方程 3。这样做,我可以使用 matlab 的fzero命令来找到解决方案。使用参数k1=k2=1,r1=r2=0.2, 和A=2,我发现真正的解决方案是P=x1=x2=0.5.

但是,当我将牛顿法应用于原始 3 变量 - 3 方程组时,无论我开始多么接近真正的解,迭代都不会收敛到解x=(P,x1,x2)=(0.5,0.5,0.5).

起初,我怀疑我在实现牛顿方法时存在错误。查了好几遍,没发现bug。然后我尝试使用初始猜测x0=x,你瞧:雅可比是单数的。我知道一个奇异的雅可比可以减少收敛的顺序,但我认为它不一定会阻止收敛到真正的解决方案。

所以,我的问题是,鉴于真正解决方案中系统的雅可比是奇异的:

  1. 还需要什么其他条件来证明牛顿法不会收敛到根?

  2. 尽管存在单一的雅可比,全球化战略(例如线搜索)会保证收敛吗?

2个回答

(1):这取决于雅可比行列式的导数(原文如此!)在雅可比行列式的零空间中的行为。实际上,没有人计算这些导数,我什至懒得记住精确的条件。

(2) 有效,尽管收敛只是线性的。

为了获得超线性收敛(至少在大多数情况下),可以使用张量方法。参见,例如
https://cfwebprod.sandia.gov/cfdocs/CCIM/docs/SAND2004-1944.pdf
http://www.jstor.org/stable/10.2307/2156931
http://www.springerlink.com/索引/X5G827367G548327.pdf

您可以尝试将牛顿法修改为Levenberg-Marquardt 算法,而不是线搜索。如果您使用的是 Matlab,那么实现就足够简单了。