函数求值条件数
cond(f,x):=∣∣∣xf′(x)f(x)∣∣∣
在根处是无限的f. 因此,重新调整定义牛顿方法退出条件的容差是没有用的。例如,天真地,你会退出牛顿迭代
xk+1:=xk−f(xk)/f′(xk)
当(说)|f(xk+1)|<ϵ, 在哪里ϵ是(再次,比如说)双小量。然而,即使x∗是根的正确浮点近似值,我们不能保证|f(x∗)|<ϵ,由于上述病态。
有没有办法定义一个广义的条件数κ(f,x)对于牛顿法,这样一个合理的终止条件就可以写成|f(xk)|<κ(f,xk)ϵ.
注意,即使是终止条件的提议形式也是有问题的,因为序列{xk}在重新缩放下是不变的f↦λf,但终止条件的建议形式不是。我们可以写一个尺度不变的终止条件吗?
导致我提出这些问题的功能是
f(z):=601080390z−185961388.136908293+141732493.98435241i
将牛顿迭代应用于此导致在三个迭代中收敛到真正的根,从猜测开始i, 但|f(z∗)|≈3×10−8,在双精度中不知何故感觉“远非零”,所以我的终止条件从未满足。