Newton 迭代为什么可能快速收敛,也可能失败?¶
先备知识¶
第 12 章已经区分“连续函数存在根”和“迭代能够找到根”;第 16 章给出带余项的 Taylor 公式;第 17.2 单元说明凸函数的切线位于图像下方。本页把三者组合起来研究 Newton 迭代。
你还需要会使用误差 \(e_n=x_n-r\) 描述收敛速度。数值实验可以展示轨迹,但定理条件 决定轨迹是否具有证明。
学习目标¶
完成本单元后,你应当能够:
- 从切线横截距推导 Newton 公式;
- 核验一组足够强的区间条件并证明单调收敛;
- 证明简单根附近的局部二次误差估计;
- 推导重数为 \(m\) 时普通 Newton 的线性主项;
- 用导数过小、初值不当和二周期解释纯 Newton 的失败。
牵引问题¶
二分法只用函数值符号,每步稳定地缩小区间。Newton 法还使用导数,往往几步就获得 很多正确数字,却可能一步跳出目标区域、遇到零导数,甚至在两个点之间永久循环。 “通常很快”怎样变成一条有条件的定理?失败又来自哪里?
探索与猜想¶
在点 \(x_n\) 处,用切线
代替原曲线。令切线高度为零,得到横轴交点
这只是一个构造。它立即暴露三个问题:
- 若 \(f'(x_n)=0\) 或过小,除法失效或步长过大;
- 切线交点可能离开我们了解函数性质的区间;
- 即使每一步都有定义,迭代点也未必收敛。
因此,公式本身不带全局收敛保证。
概念与理论¶
Newton 映射¶
在 \(f'(x)\ne0\) 的点定义
Newton 迭代是 \(x_{n+1}=N(x_n)\)。若迭代收敛到 \(r\),且 \(N\) 在 \(r\) 连续, 则 \(r=N(r)\),从而 \(f(r)=0\)。反过来,“\(f(r)=0\)”并不自动保证附近所有初值 都收敛到 \(r\)。
强区间条件下的单调收敛¶
定理。 设 \(f\in C^2[a,b]\),并满足
且 \(f''\) 在 \([a,b]\) 上不变号。选择一个端点 \(x_0\),使
则 Newton 迭代有定义,始终留在 \([a,b]\) 内,并单调收敛到该区间内的唯一根。
证明。
因为 \(f'\) 连续且从不为零,它在整个区间上同号,所以 \(f\) 严格单调。介值定理给出 至少一个根,严格单调性给出至多一个根;记唯一根为 \(r\)。
Newton 映射在把 \(f\) 替换为 \(-f\) 时不变,而乘以 \(-1\) 可把 \(f'<0\) 的情况 化为 \(f'>0\)。因此只需处理 \(f'>0\)。此时
若 \(f''\ge0\),函数凸,条件 \(f(x_0)f''(x_0)>0\) 迫使选择右端点一侧的 \(x_0\),于是 \(x_0>r\)、\(f(x_0)>0\)。凸函数在 \(x_n\) 处的支撑线不等式给出
因为 \(f'(x_n)>0\),整理得
所以只要 \(x_n>r\),下一点仍在 \([r,x_n)\) 内。归纳可知 \((x_n)\) 单调递减且以 \(r\) 为下界。
若 \(f''\le0\),函数凹,端点条件迫使从根左侧 \(f(x_0)<0\) 的端点启动。凹函数的 切线位于图像上方,同样整理得到
所以序列单调递增且以 \(r\) 为上界。
两种情形下序列都有极限 \(L\in[a,b]\)。由于 \(f'(L)\ne0\),Newton 映射在 \(L\) 连续。对递推式取极限:
故 \(f(L)=0\)。根唯一,所以 \(L=r\)。证毕。
这是一条方便核验的充分条件,不是 Newton 收敛的必要条件。条件失效时,算法可能仍 收敛,但不能引用本定理作保证。
简单根附近的局部二次收敛¶
设 \(r\) 是简单根,即
由 \(f'\) 的连续性,可以在 \(r\) 的一个闭邻域内找到常数
若 \(f''\) 在该邻域连续,再取
对 \(r\) 在 \(x_n\) 处使用二阶 Taylor 公式,存在 \(x_n,r\) 之间的 \(\xi_n\) 使
记 \(e_n=x_n-r\),整理得
因此
令 \(q=M/(2\mu)\)。再把初值限制为 \(|e_0|\le\delta\),其中 \(q\delta<1\),便有
这同时保证后续迭代留在所选邻域内。误差近似平方,称为局部二次收敛。
“局部”是结论不可删除的一部分:这条局部结论只有在初值足够接近简单根,并且迭代 始终留在导数下界和二阶导数上界成立的邻域内时才有效。
重根导致收敛阶退化¶
设 \(r\) 是重数为 \(m\ge2\) 的根,在根附近可写成
其中 \(g\) 在根的某个邻域内属于 \(C^1\)。令 \(e=x-r\),则
普通 Newton 一步后的误差为
主项是误差的一次方,而不是平方,所以普通 Newton 通常只剩线性收敛。
对
递推甚至可以精确化简为
每步只把误差减半。
有定义也可能不收敛¶
对于
Newton 映射在 \(0,1\) 都有定义,却满足
从 \(x_0=0\) 出发得到永久二周期。小残差、步长变小和真正收敛必须分别检查;有限次 迭代轨迹不能证明未来行为。
例题与迁移¶
例 1:\(x^3-x-1=0\) 的强条件路线¶
令
在 \([1,2]\) 上,
根存在且唯一。因为
应从 \(x_0=2\) 启动。强区间定理保证迭代从根右侧单调下降并收敛。前几步为
根约为 \(1.3247179572\)。这些数值展示速度,而收敛保证来自前面对全部条件的核验。
例 2:重根只留下线性速度¶
对 \(f(x)=(x-1)^2\),从 \(x_0=2\) 出发:
误差依次为
误差比稳定为 \(1/2\),而不是误差平方。函数和导数都很光滑,降阶的原因是 \(f'(1)=0\),根不是简单根。
例 3:纯 Newton 的二周期¶
对 \(f(x)=x^3-2x+2\),从 \(x_0=0\) 出发:
于是 \(0,1,0,1,\ldots\) 永久循环。函数本身确有实根,但这个初值找不到它。改变初值 可能成功,却不能据此宣布纯 Newton 全局收敛。下一单元将保留变号区间,在不安全时 退回二分步。
即时检验与回望¶
即时检验 1¶
对 \(f(x)=x^2-2\) 在 \([1,2]\) 上应用强区间定理,应从哪个端点启动?
答案
\(f(1)=-1\)、\(f(2)=2\),\(f'(x)=2x>0\),\(f''(x)=2>0\)。需要 \(f(x_0)f''(x_0)>0\),所以选择 \(x_0=2\)。定理随后保证迭代从 \(\sqrt2\) 右侧单调下降。
即时检验 2¶
若误差依次约为 \(10^{-2},10^{-4},10^{-8}\),它更像线性收敛还是二次收敛?为什么?
答案
每个误差约为前一个误差的平方:
因而更像二次收敛。线性收敛通常表现为 \(|e_{n+1}|/|e_n|\) 趋于一个 \(0\) 与 \(1\) 之间的常数。
回望:区间定理控制“从哪里出发、是否收敛”,局部误差定理控制“接近以后有多快”。 它们回答不同问题,不能相互替代。
习题与答案¶
习题 1:平方根迭代¶
对 \(a>0\),推导求 \(\sqrt a\) 的 Newton 迭代,并说明从 \(x_0>\sqrt a\) 出发时 为什么下一点仍不小于 \(\sqrt a\)。
答案
对 \(f(x)=x^2-a\),
若 \(x_n>0\),由算术—几何平均不等式,
若 \(x_n>\sqrt a\),还可验证 \(x_{n+1}<x_n\),所以迭代从根右侧单调下降。
习题 2:第一步就无定义¶
对 \(f(x)=x^3-1\),从 \(x_0=0\) 使用 Newton 法会发生什么?这是否说明方程没有根?
答案
\(f'(x)=3x^2\),所以 \(f'(0)=0\),Newton 公式第一步就需要除以零,无法定义。 这不说明方程没有根;方程显然有根 \(x=1\)。它只说明所选初值不适合纯 Newton。
习题 3:核验一个区间定理¶
对 \(f(x)=\cos x-x\) 在 \([0,1]\) 上核验强区间定理,并选择启动端点。
答案
又
在 \([0,1]\) 上成立。因为 \(f(1)<0\)、\(f''(1)<0\),有 \(f(1)f''(1)>0\),所以从 \(x_0=1\) 启动。定理保证单调收敛到唯一根。
习题 4:一般重根的线性因子¶
若根的重数为 \(m=3\),普通 Newton 在根附近的主误差因子是多少?与 \(m=2\) 相比 更快还是更慢?
答案
主误差因子为
\(m=2\) 时因子为 \(1/2\)。因为 \(2/3>1/2\),三重根附近的普通 Newton 线性 收敛更慢。
习题 5:诊断二周期¶
对 \(f(x)=x^3-2x+2\),验证从 \(x_0=1\) 出发也进入同一个二周期。残差是否趋于零?
答案
已知
所以从 \(1\) 出发得到 \(1,0,1,0,\ldots\)。两点的残差分别为
都不趋于零。迭代次数增加不能修复这个初值造成的周期。
常见误区与后续¶
- 把切线公式当成收敛定理: 公式只定义候选点,定理还需要区间或局部条件。
- 把区间强条件当成必要条件: 条件失效不等于必然失败,只是失去这条证明。
- 删除“局部二次”中的“局部”: 任意远处初值不受邻域误差估计控制。
- 见到光滑函数就断言二次收敛: 重根使 \(f'(r)=0\),普通 Newton 通常降为线性。
- 只看最后两步很小: 二周期、停滞和浮点舍入都可能制造误导。
下一单元将 Newton 候选限制在一个持续变号的区间中。安全时使用 Newton 步加速, 不安全时退回二分步,并用区间宽度给出可验证误差证书。