牛顿法的计算复杂度

计算科学 牛顿法 复杂 数字 准牛顿
2021-12-14 02:56:13

非线性方程组的经典牛顿方法是xk+1=xkJF(xn)1F(xn). 在实践中,不是计算雅可比矩阵的逆矩阵,而是求解系统JF(xk)(xk+1xk)=F(xk), 对于未知xk+1xk.

在我的笔记(关于 ODE)中,我发现:

牛顿法需要在每一步计算雅可比矩阵及其“反演”k. 这可能太贵了(O(N3)), 在哪里N是矩阵的维数。

我的疑问是如何获得这种计算复杂性。它是在谈论使用 LU 分解来反转矩阵的方法吗,我知道这是O(N3)?

然后它说:

降低计算复杂度的标准方法是始终使用相同的雅可比矩阵,计算其 LU 分解并使用它来求解线性系统。这是O(N2)

这里我还有一个问题:LU分解的计算复杂度JF应该O(N33). 而三角系统分辨率的计算复杂度为O(N22). 由于有两个三角形系统,它等于2O(N22).

不应该,完全,O(N33)代替O(N2)?

1个回答

如果你拿m步骤,并更新雅可比行列式每t步,时间复杂度为O(mN2+(m/t)N3). 所以每一步花费的时间是O(N2+N3/t). 您正在将您所做的工作量减少一个因素1/t, 它是O(N2)什么时候tN. t由损失函数的行为自适应地决定,所以关键是你节省了一些未知的、大量的时间。

在引文中,“this”可能是指前面的句子,即求解一个已经分解的线性系统的复杂性,而不是前面段落中整个步骤所花费的时间。