了解迭代方法的“收敛速度”

计算科学 迭代法 收敛
2021-12-14 01:14:44

根据维基百科,收敛速度表示为向量范数的特定比率。我试图了解“线性”和“二次”速率之间的差异,在不同的时间点(基本上,在迭代的“开始”和“结束”)。是否可以这样说:

  • 在线性收敛的情况下,迭代x_{k+1}的误差e_{k+1}的范数为\|e_k\|ek+1xk+1ek

  • 在二次收敛的情况下,迭代x_{k+1}的误差e_{k+1}的范数为\|e_k\|^2ek+1xk+1ek2

这种解释意味着,通过线性收敛算法 A1 的几次(少量)迭代(假设为随机初始化),将实现比二次收敛算法 A2 的几次迭代更小的误差。但是,由于误差减小,并且由于平方,以后的迭代将意味着 A2 的误差更小。

上述解释有效吗?请注意,它忽略了速率系数λ

3个回答

除了 Christian 的回答之外,还值得注意的是,对于线性收敛,如果方法收敛,则有,其中有另一方面,对于二次收敛,你有并且方法收敛的事实并不一定意味着必须小于 1。相反,收敛的条件是ek+1λ1ekλ1<1ek+1λ2ek2λ2λ2e1<1- 即,您的起始猜测足够接近。这是通常观察到的行为:二次收敛算法需要从解决方案“足够接近”开始才能收敛,而线性收敛算法通常更稳健。这也是为什么在切换到更有效的算法(例如,牛顿法)之前,通常先从线性收敛算法(例如,最速下降法)的几个步骤开始的另一个原因。

在实践中,是的。虽然ek仍然很大,但速率系数λ将主导误差而不是 q 速率。(请注意,这些是渐近率,因此您链接到的语句仅适用于k的限制。)

例如,对于优化中的一阶方法,您通常会观察到错误最初快速下降,然后趋于平稳。另一方面,对于牛顿法,在超线性(或二次)收敛开始之前可能需要一段时间(毕竟它只是局部超线性收敛)。出于这个原因,通常在切换到牛顿方法之前先从几个梯度步骤开始,或者使用同伦或准牛顿方法,它们最初表现为一阶方法,当你接近时变成牛顿方法目标。

解释在质量上是正确的。

请注意,线性和二次收敛是针对最坏情况的,特定算法中的情况可能比 Wolfgang Bangerth 给出的最坏情况分析中的情况要好,尽管定性情况通常与此分析相对应。

在具体算法中(例如,在优化中),首先使用廉价但仅线性收敛的方法进行迭代直到进展变慢,然后使用二次(或至少超线性)收敛方法完成通常是有意义的。在实践中,超线性收敛往往与二次收敛一样好,只是因为初始的、缓慢收敛的部分往往会主导整个工作。