我正在尝试解决系统非线性方程:
为了,使用牛顿法:
我知道雅可比在我的问题中必须是正定的,但在实践中它的条件通常很差()。我正在扰乱它的特征值,但该算法仍然无法满足收敛标准:
对于一些方程,而另一些方程收敛得很快。增加迭代次数不会改变任何事情。
我的主管建议我使用一个阻塞方案,如果某些方程已经收敛,你继续迭代那些没有收敛的方程。我不太明白如何在一组方程上使用牛顿算法,所以我想问一下是否有人知道如何做到这一点。或者,我将不胜感激有关如何处理此问题的建议。
谢谢!
编辑:
我必须补充一点,我正在使用带有目标函数的线搜索:
这应该没问题,因为它是凸的(理论上虽然因为 Hessian 几乎是奇异的)。我正在检查该步骤是否足够降低目标,即我检查:
和. 如果条件不成立,我除by 2. 大多数情况下,第一步的条件为真,所以我很少需要减半。
编辑 2
如果我使用 QR 分解来求解线性系统,它似乎正在收敛,而不扰乱. 不确定我是否应该相信输出!