为牛顿法定义条件编号和终止标准

计算科学 牛顿法 条件数 寻根
2021-12-15 22:13:11

函数求值条件数

cond(f,x):=|xf(x)f(x)|
在根处是无限的f. 因此,重新调整定义牛顿方法退出条件的容差是没有用的。例如,天真地,你会退出牛顿迭代
xk+1:=xkf(xk)/f(xk)
当(说)|f(xk+1)|<ϵ, 在哪里ϵ是(再次,比如说)双小量。然而,即使x是根的正确浮点近似值,我们不能保证|f(x)|<ϵ,由于上述病态。

有没有办法定义一个广义的条件数κ(f,x)对于牛顿法,这样一个合理的终止条件就可以写成|f(xk)|<κ(f,xk)ϵ.

注意,即使是终止条件的提议形式也是有问题的,因为序列{xk}在重新缩放下是不变的fλf,但终止条件的建议形式不是。我们可以写一个尺度不变的终止条件吗?

导致我提出这些问题的功能是

f(z):=601080390z185961388.136908293+141732493.98435241i
将牛顿迭代应用于此导致在三个迭代中收敛到真正的根,从猜测开始i, 但|f(z)|3×108,在双精度中不知何故感觉“远非零”,所以我的终止条件从未满足。

1个回答

任何合理的收敛准则必须对函数的缩放是不变的。因此,一个体面的停止标准是,如果f(xk)ϵf(x0)其中是迭代的起点。停止标准现在取决于起点,这有点烦人,但由于牛顿的迭代收敛得如此之快,接近解,这个标准在实践中效果很好。x0