牛顿法
牛顿法(Newton's method)用函数在当前点的切线预测零点,再到新位置重新计算切线。对于适当光滑的函数,从单根附近开始,这种迭代往往能很快得到精确近似。
从二开始求平方根二
令 。我们知道正根在一和二之间,先取 。此时函数值为二,导数 ,所以切线方程为 把切线的高度设为零,得到 。这比初值二更接近真正的零点,便把它作为下一次近似。
图中先沿竖线走到曲线上的 ,再沿该处切线走到横轴,交点是 。切线与原曲线的零点并不重合,所以这只是一次预测;下一轮要在 处重新作切线。
对一般当前点 ,切线写成 。若 ,令 并解出 ,便得到 分子是当前离零有多高,分母是切线斜率,两者之比给出横向修正量。斜率很小时,修正可能很大;斜率为零而函数值非零时,切线平行横轴,这一步没有交点。
把切线公式化成可重复计算的步骤
对 ,导数为 ,公式化简为 从二开始,前几轮如下。每一轮都将上一行的结果代回这个式子。
| 编号 | 精确或近似值 | 本轮计算 |
|---|---|---|
| 0 | 2 | 初值 |
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | 约 1.4142135624 | 再次代入,误差约为 |
设 。由于 ,下一步误差可以直接展开: 上一步误差被平方了,正是表中精度快速提高的原因。例如误差已经小于百分之一,再平方就达到万分之一的量级,且还要除以约 。
这个恒等式也证明收敛。对任意正初值,下一步不小于 ;若当前 ,则 ,两者平均值小于 。所以从第一步起,序列在根上方单调下降。其极限 满足 ,因此 ,只能是正根。
还可从当前值得到根区间。若 ,则 。这对上下界比仅观察小数是否稳定更直接地说明精度。对任何 ,同样的证明适用于 。
再求一个没有简单根式的方程
考虑 。在 上,端点值异号;导数 ,所以根唯一。取初值 ,先算 修正量为 ,所以 下一轮使用新点处的函数与导数: 依次得到 、,趋向 。
这个例子还能验证误差。只要近似与根都在 ,导数至少为二,中值定理给出 。例如第三步残差约为 ,位置误差便不超过约 。
一般函数为什么会有二次收敛
平方根例子的误差恒等式,对一般函数变为泰勒余项估计。设 、,这样的根称为单根;假定 在附近二次连续可微。将根处的函数值在当前点展开: 其中 位于当前点与根之间。移项并除以 ,把前两项组成牛顿更新,得到 若邻域内 、,则误差满足 ,其中 、。
为保证能一直使用这个界,可以选一个半径 ,使上述导数界在该邻域内成立,并令 。只要 ,便有 ;逐步重复,后续点始终留在邻域中并趋向根。这说明“初值足够近”具体承担了什么任务。FNC:Newton's method
误差足够小时,这种平方关系称为局部二次收敛。若二阶导数在根处也消失,还可能更快;线性函数的切线就是函数本身,一步即可求根。浮点计算达到表示精度后,小数不会继续按这个理想规律改善。
哪些情形会改变这一过程
重根会减慢速度。 对 ,其中整数 ,代入迭代式可得 误差只按固定比例缩小。例如平方重根每轮减半,因为根处导数为零,已经不满足单根条件。若重数 已知,使用 可补偿这一因素。
光滑函数也可能让迭代循环。 取 ,从零出发,,下一步到一;而 ,下一步又回到零。于是出现 的永久循环。多项式光滑且有实根,初值却没有进入所需的局部收敛区域。
陡直的穿越也可能发散。 对 ,从非零点开始,,所以 ,绝对值逐轮翻倍。函数在根处不满足前面导数的条件。
还有直接无法计算的步骤:求 却从零开始,导数就是零;带对数的函数还可能被一步带到非正输入。遇到这些情况应改变初值、缩短步长或使用区间保护。
停止、保护与推广
小残差不必意味着小位置误差:将函数整体乘一个极小常数,根与牛顿修正都不变,残差却能变得很小。相邻两次值相同也可能只是浮点停滞。因此可同时记录步长与残差,并在有条件时提供导数下界或根区间作为误差证据。最大迭代次数是计算限制,达到它不等于达到精度。
保护牛顿法的一种办法是保留二分法的异号区间。先尝试牛顿候选点;若离开区间、导数太小或区间缩减不足,就改用中点。接受点后按符号更新端点。为了继承二分的可靠性,需要规定何时必须缩短区间,而不只检查候选点有没有落在里面。
多元方程 中,切线改为局部线性系统: 雅可比矩阵 收集各输出对各输入的偏导数, 是待求修正。计算时解这个线性系统即可,不必显式求逆矩阵。在优化中对梯度应用此方法,求得的是驻点,还需检查它是最小值、最大值还是鞍点。
历史
牛顿 1669 年的工作研究方程近似求根,拉夫逊于 1690 年发表了改进的计算形式,辛普森于 1740 年发展以导数表达的一般迭代及推广。现代公式汇集了这些发展;平方根的特殊迭代还有更早的计算渊源。CLP:Newton's Method;MacTutor:Thomas Simpson
参考资料与知识联系
- Tobin A. Driscoll、Richard J. Braun,Fundamentals of Numerical Computation,Newton's method:局部线性化与收敛分析。
- CLP Calculus,Newton's Method,大学课程公开镜像:几何推导及历史注释。
- MacTutor,University of St Andrews,Thomas Simpson:现代公式形成背景。
- 前置:导数、极限;比较:二分法;推广:矩阵、优化、最小二乘法。