1. 题目
求 的根
已知用牛顿法和拟牛顿法求这个根的时候都不收敛,请自己找个算法实现.
2. 解
2.1. 问题分析
如果采用牛顿法,对于任何初始点 ,下一个迭代出的点都会是:
所以会越迭代越远. 其实不止1/3,只要指数在(0,1/2)都会发生这种事情,这种事情发生在函数是上凸的时候Overshoot
ref:Newton's method - Wikipedia
2.2. 解法
同样这个式子,如果给 加上一个小于1大于0的因子就不会overshoot了,这个因子姑且叫做阻尼因子(damping)
那么这个阻尼因子怎么取呢?
Related Work.书上给了Levenberg-Marquardt Modification来用 保证正定
性. 此外3.5.1 Modified Newton Method (tuwien.ac.at)直接点出了加阻尼就行了,并介绍了阻尼系数取法来自一个负
指数下降的数列.
我们直接让 小于1就行了,我们取 ,相当于Levenberg-Marquardt Modification中 取3
这样连程序都不用编写了
直接 迭代到小于足够的误差
评论0