如果说二分法是一位步步为营的谨慎探险家,通用不动点迭代是一匹不知疲倦的耕马,那么 Newton 法 (Newton-Raphson Method) 便是数值分析世界里的超跑。
在前一篇不动点迭代笔记中,我们证明了只要局部导数满足 ∣g′(x∗)∣<1,迭代序列就能线性收敛。这一发现自然引发了一个雄心勃勃的追问:能否刻意设计一个特殊的迭代映射 g(x),使其导数在不动点处完全归零,即 g′(x∗)=0?
一旦 g′(x∗)=0,Taylor 展开式中的一阶误差项便被彻底抹除。此时误差不再仅仅按固定常数比例缩减,而是发生质的飞跃:每前进一步,误差便被自身平方一次:
∣en+1∣≈C∣en∣2.
这就是令人惊叹的平方收敛 (Quadratic Convergence):原本仅有 2 位有效数字的粗糙估计,经过 3 步迭代就会暴增至 4 位、8 位乃至 16 位满双精度!这一最优化不动点设计,正是 Newton 法的精髓。
本篇笔记从三个统一的视角解构 Newton 法:
- 几何视角:沿着局部切线寻找与 x 轴的交点;
- Taylor 展开:主动舍弃高阶非线性曲率余项;
- 压缩映射:严谨确立单根邻域内的局部压缩性与平方收敛阶。
同时,我们也将剖析其在极值点、拐点振荡与分形吸引盆中的经典失效情形,并利用雅可比矩阵将其自然推广至高维非线性方程组。
从切线模型出发
微分学的核心哲学在于:任何光滑曲线在极小尺度下观察,都近似于一条直线。Newton 法正是将这一局部微元思想转化为算法引擎的绝妙范例。
设 f 在根邻域内充分可导,xn 为当前的数值估计点。函数在点 (xn,f(xn)) 处的切线方程为
y=f(xn)+f′(xn)(x−xn).
下一步的近似点 xn+1,被选为该切线与横坐标轴 x 的交点。令 y=0 并解出 x,立得经典的 Newton 更新公式:
xn+1=xn−f′(xn)f(xn),f′(xn)=0.
这一更新公式亦可由未知真解 x∗ 处的二阶 Taylor 展开直接推导:
0=f(x∗)=f(xn)+f′(xn)(x∗−xn)+Rn,Rn=21f′′(ξn)(x∗−xn)2.
其中的 Lagrange 余项 Rn 是精确成立的:它度量了切线模型所遗漏的非线性曲率,并且在数量级上正比于当前误差的平方 (x∗−xn)2。Newton 法暂时忽略 Rn,把下一步取为仿射线性模型 Mn(x):=f(xn)+f′(xn)(x−xn) 的零点。若 f 本身是纯粹的一次线性函数,则 f′′=0 导致 Rn=0,算法仅需单步即可精确命中真解。
定义Newton 迭代
给定初始猜测 x0,Newton 法生成如下数值序列:
xn+1=xn−f′(xn)f(xn)只要每一步所需的导数值 f′(xn) 均非零。
例对二次函数走一步
对 f(x)=x2−2,Newton 映射是
gN(x)=x−2xx2−2=21(x+x2),x=0.从 x0=3/2 出发得到 x1=17/12。这只演示更新规则。收敛断言仍需要假设和证明。
这个交互图需要启用 JavaScript。
定义 Newton 映射 gN(x)=x−f(x)/f′(x)。则 xn+1=gN(xn)。在 f′(x)=0 的点上,
gN(x)=x⟺f(x)=0.
只要映射有定义,f 的根就是 gN 的不动点。f′(x)=0 对更新和这组等价都必要。代数等价并不能证明迭代收敛。
牛顿法沿局部切线寻找零点,二分法则持续保留函数值异号的区间。
局部收敛
定理局部压缩定理
设 g 在闭区间 [a,b] 上连续、在内部可导,且 g([a,b])⊆[a,b],并存在常数 0≤L<1 使内部每点满足 ∣g′(x)∣≤L。则 g 在 [a,b] 上有唯一不动点,并且对每个 x0∈[a,b],迭代 xn+1=g(xn) 留在 [a,b] 里并收敛到该不动点。
完整证明见闭区间上的不动点定理。本处的导数界通过中值定理给出那里的 Lipschitz 条件,其余假设完全一致。
导数界通过中值定理给出压缩估计。自映射让所有迭代留在估计可用的区域里。
定理Newton 法的局部收敛
设 f∈C2[a,b],x∗∈(a,b) 是单根,即 f(x∗)=0 且 f′(x∗)=0。则存在 δ>0,使得对每个初值 x0∈[x∗−δ,x∗+δ],Newton 法生成良定义的序列并收敛到 x∗。
根的存在性在此处是前置假设:x∗ 是已知的。在验证了压缩性与自映射条件后,局部压缩定理表明 gN 在 [x∗−δ,x∗+δ] 上存在唯一不动点;而 x∗ 本身已是不动点,因此该唯一不动点必为 x∗。在这一局部区间之外,原函数完全可能存在其他根。
收敛性证明依赖两条基础的连续性引理:
引理非零值附近不变成零
设 h:[a,b]→R 在 p∈(a,b) 连续。若 h(p)=0,则存在 δ>0,使 [p−δ,p+δ]⊆[a,b],并且该区间上处处 h(x)=0。
证明
取 ε=∣h(p)∣/2>0。连续性给出 ρ>0,使 ∣x−p∣<ρ 蕴含 ∣h(x)−h(p)∣<∣h(p)∣/2。因为 p∈(a,b),数 δ=21min(ρ,p−a,b−p) 为正,且满足 [p−δ,p+δ]⊆[a,b] 以及 δ<ρ。若 x 落在该区间,反向三角不等式给出 ∣h(x)∣≥∣h(p)∣−∣h(x)−h(p)∣>∣h(p)∣/2>0。
引理零点附近可以任意小
设 h:[a,b]→R 在 p∈(a,b) 连续且 h(p)=0。则对每个 K>0,存在 δ>0,使 [p−δ,p+δ]⊆[a,b],并且该区间上 ∣h(x)∣≤K。
证明
固定 K>0。用 ε=K 的连续性给出 ρ>0,使 ∣x−p∣<ρ 蕴含 ∣h(x)∣<K。取 δ=21min(ρ,p−a,b−p)>0。则闭区间上 ∣x−p∣≤δ<ρ,故 ∣h(x)∣≤K。
故意取更小的半径 δ<ρ:连续性给的是 ∣x−p∣<ρ,而引理需要闭区间 ∣x−p∣≤δ。把第一条用在 h=f′,把第二条用在 h=gN′,并取 K=L<1。
证明
第一步。 因为 f∈C2[a,b],f′ 连续,且 f′(x∗)=0。非零引理用于 h=f′、p=x∗,给出 δ0>0,使 I0=[x∗−δ0,x∗+δ0]⊆[a,b] 且 f′ 在 I0 上不为零。于是 g:=gN 在整个 I0 上有定义。
第二步。 在 I0 上求导得到
g′(x)=(f′(x))2f(x)f′′(x).由 f(x∗)=0 得 g′(x∗)=0。任取 0<L<1。小值引理用于 h=g′、K=L,给出半径 δ>0,使 I=[x∗−δ,x∗+δ]⊆I0 且 ∣g′(x)∣≤L 在 I 上成立。于是 g 在 I 上压缩。
第三步。 根条件给出 g(x∗)=x∗。设 x∈I。若 x=x∗,则 g(x)∈I。否则中值定理给出介于 x 与 x∗ 之间、因而也在 I 里的 ξ,且
∣g(x)−x∗∣=∣g′(ξ)∣∣x−x∗∣≤Lδ<δ.因此 g(I)⊆I。
第四步。 在 I 上,g 满足局部压缩定理。从 I 出发的每条 Newton 序列都良定义,并收敛到唯一不动点,而这个不动点只能是 x∗。这是局部结论:定理只断言充分靠近的初值会收敛。
逻辑蕴含是单向的:上述假设是保证局部收敛的充分条件而非必要条件。常见的认知误区包括:把充分条件误当作必要条件;将单点导数 g′(x∗)=0 误认为是全域上的全局压缩;以及在导数极小或为零(f′(xn)≈0)的病态区域强行更新。
收敛阶
定义收敛阶
设 xk→x∗。若存在常数 c>0 和 k0,使
∣x∗−xk+1∣≤c∣x∗−xk∣p对一切 k≥k0成立,就称序列以至少 p≥1 阶收敛。若存在最大的这样的指数,就称它为收敛阶。p=2 给出至少二次收敛。p=1 若要给出线性收缩,还需可以取 c<1;任意 c>0 的界也容许次线性收敛。
单侧误差界确立的是收敛阶“至少为 p”,并不要求计算出精确的渐近常数。更高的阶数 p 意味着一旦迭代点进入局部收敛区,误差将以极快的速率急剧衰减。
命题一阶导数分类
设 xk+1=g(xk) 收敛到 x∗ 且不在有限步到达,并设 g 在 x∗ 可导。则 g(x∗)=x∗,且
∣xk−x∗∣∣xk+1−x∗∣→∣g′(x∗)∣.因此 0<∣g′(x∗)∣<1 给出线性收敛,g′(x∗)=0 给出超线性收敛,∣g′(x∗)∣=1 得不出结论。
证明
可导蕴含连续,在 xk+1=g(xk) 里取极限得 g(x∗)=x∗。再用导数定义得到上述比值极限。若该极限大于 1,不在有限步终止的序列就不可能收敛到 x∗。
命题高阶导数检验
设 p≥2 为正整数,g 在 x∗ 附近属于 Cp,且 xk+1=g(xk)→x∗,同时对 0<n<p 有 g(n)(x∗)=0。则迭代至少 p 阶。若 g(p)(x∗)=0 且迭代不在有限步终止,则精确阶是 p,渐近常数是 ∣g(p)(x∗)∣/p!。
证明
Taylor 定理给出介于 xk 与 x∗ 之间的 ξk,使 xk+1−x∗=g(p)(ξk)(xk−x∗)p/p!。因为 ξk→x∗,g(p) 的连续性既给出至少 p 阶的界,又在 g(p)(x∗)=0 时给出所述常数。
推论Newton 法的二次收敛
若 f 在单根 x∗ 附近属于 C2,则 Newton 映射满足 gN′(x∗)=0。因此在局部收敛定理的局部区里,Newton 法至少二阶。
证明
仅由一阶导数为零只能推出超线性收敛,因此这里直接使用 C2 条件。在 xk 处展开得
0=f(x∗)=f(xk)+f′(xk)(x∗−xk)+21f′′(ξk)(x∗−xk)2.代入 Newton 更新,得到
∣xk+1−x∗∣=2f′(xk)f′′(ξk)∣xk−x∗∣2.连续性使局部分子有界、分母远离零,因而给出统一的二次误差界,无须假设 Newton 映射本身二次可微。
对有限重数 m>1 的根,写 f(x)=(x−x∗)mh(x),其中 h(x∗)=0,且 h 局部属于 C1。代入 Newton 更新得
gN(x)−x∗=(x−x∗)(1−mh(x)+(x−x∗)h′(x)h(x)).
括号内因子趋于 1−1/m∈(0,1),故不在有限步终止的局部迭代为线性收敛。这个结论依赖有限重数结构;仅仅导数为零不能推出收敛。
停机准则
定理压缩映射的后验界
设 xk+1=g(xk) 有不动点 x∗,且 g 在包含相关迭代的区间上是压缩,压缩因子 0≤λ<1。则
∣x∗−xk+1∣≤1−λλ∣xk+1−xk∣.
证明
令 ek=∣x∗−xk∣。压缩估计给出 ek+1≤λek。由反向三角不等式,∣xk+1−xk∣≥ek−ek+1≥(1−λ)ek。再与 ek+1≤λek 合起来即得。
当 0<λ<1 时,只在 ∣xk+1−xk∣<λ1−λε 之后停机。定理于是保证 ∣x∗−xk+1∣<ε。这条规则需要 λ 的一个有效上界。
定理超线性区里的步长
设 xk→x∗ 且至少 p>1 阶,并假定迭代不在有限步到达 x∗。令 ek=∣x∗−xk∣,且对充分大的 k 有 ek+1≤cekp。则
ekek+1→0,ek∣xk+1−xk∣→1,∣xk+1−xk∣ek+1→0.
证明
把阶估计除以 ek,得到 0≤ek+1/ek≤cekp−1→0。三角与反向三角不等式给出 ek−ek+1≤∣xk+1−xk∣≤ek+ek+1。除以 ek 并用夹逼定理得到中间那个极限,再把第一个商除掉它得到最后一个。
在超线性区,∣x∗−xk∣≈∣xk+1−xk∣,而下一步的误差比刚走的步长短得多。实用检验 ∣xk+1−xk∣<ε 因此是保守的渐近代理,不是全局证书,除非另有局部信息。
非线性方程组
定义Jacobian 矩阵
设 F:Ω⊂Rn→Rn 在开集 Ω 上可导,状态为 x=(x1,…,xn)T,残差为 F(x)=(F1(x),…,Fn(x))T。它的 Jacobian 矩阵 DF(x) 是一阶偏导数组成的 n×n 矩阵,(i,j) 元是 ∂Fi/∂xj。
命题非线性方程组的 Newton 迭代
设 α∈Ω 是精确根,F(α)=0。设 xk∈Ω 是当前近似,且 DF(xk) 非奇异。下一步 Newton 迭代由求解
DF(xk)sk=−F(xk),xk+1=xk+sk得到。等价地,xk+1=xk−[DF(xk)]−1F(xk),但应当解线性方程组,而不是去求 Jacobian 的逆。
证明
各分量在 xk 处作 Taylor 展开、再在根处求值,叠成
0=F(xk)+DF(xk)(α−xk)+rk,可微性给出的余项是 o(∥α−xk∥)。Jacobian 局部 Lipschitz 时,例如满足 C2 正则性,才能加强为二次余项。丢掉余项,定义仿射模型 Mk(x):=F(xk)+DF(xk)(x−xk)。下一步取成这个模型的精确根,整理即得所述线性方程组。
定理方程组的局部二次收敛
设 F 在根 α 附近属于 C2,且 DF(α) 非奇异。则存在 α 的一个邻域,使得每个充分靠近的 x0 都生成良定义的 Newton 迭代,并满足 ∥α−xk+1∥≤c∥α−xk∥2,其中 c>0。
证明
令 ek=xk−α。Taylor 定理给出 0=F(xk)−DF(xk)ek+rk,局部地 ∥rk∥≤M∥ek∥2。附近的 Jacobian 保持非奇异,逆一致有界,范数至多 B。代入 Newton 步得到 ek+1=[DF(xk)]−1rk,从而 ∥ek+1∥≤BM∥ek∥2。
统一逆界也需验证。令 J∗=DF(α),缩小球邻域,使 H=J∗−1(DF(x)−J∗) 的范数至多为 1/2。收敛矩阵几何级数 ∑j≥0(−H)j 是 I+H 的逆:先乘有限部分和,再令剩余幂趋零即可。因此整个球内都有 ∥DF(x)−1∥≤2∥J∗−1∥。进一步缩小半径 δ,使 BMδ≤1/2,二次界便保证每步仍在球内且误差至少减半,证明整个序列良定义并收敛。余项界则由沿根与当前点间线段积分局部 Lipschitz 的 Jacobian 得到。
多维非线性系统 Newton 法的标准求解四步法:
- 建立残差方程组 F(x)=0。
- 计算 Jacobian 矩阵 DF(x) 并核验其在当前点的非奇异性(detDF=0)。
- 求解线性方程组 DF(xk)sk=−F(xk) 获得更新步长 sk。
- 执行状态更新 xk+1=xk+sk,并同步检验步长范数 ∥sk∥ 与残差范数 ∥F(xk+1)∥。
例平面两连杆机械臂
平面机械臂有杆长 L1,L2>0 和关节角 θ1,θ2。给定目标 (xd,yd),求使第二杆末端落到该点的关节角。令 r=xd2+yd2。目标可到达,仅当 ∣L1−L2∣≤r≤L1+L2。
把两杆分解到水平和竖直方向:
x(θ1,θ2)y(θ1,θ2)=L1cosθ1+L2cos(θ1+θ2),=L1sinθ1+L2sin(θ1+θ2).残差是 F(θ)=0,其中
F1F2=L1cosθ1+L2cos(θ1+θ2)−xd,=L1sinθ1+L2sin(θ1+θ2)−yd.求导得到
DF(θ)=(−L1sinθ1−L2sin(θ1+θ2)L1cosθ1+L2cos(θ1+θ2)−L2sin(θ1+θ2)L2cos(θ1+θ2)).短展开给出 detDF(θ)=L1L2sinθ2。Jacobian 可逆当且仅当 sinθ2=0。奇异情形包括完全伸直或完全折叠。
取 L1=1、L2=0.7、目标 (1.2,0.5)、初值 θ(0)=(0.3,0.2)T,每一步 Newton 解 DF(θ(k))sk=−F(θ(k)),再更新 θ(k+1)=θ(k)+sk。
割线法与试位法
两种方法都用割线与 x 轴的交点。割线法保留最新两点,是开方法。试位法保留变号区间,因而带括号。这一区别解释了为什么割线法局部通常更快,而试位法整体更稳。
定义割线法
从两个初值 x0、x1 出发,把 Newton 法里的导数换成最近两点的差分斜率:
xn+1=xn−f(xn)f(xn)−f(xn−1)xn−xn−1.方法不保持括号。在单根附近的通常局部假设下,阶是 p=(1+5)/2≈1.618。前两次函数求值之后,每新一步只需一次新的函数求值,不必求导。
定义试位法
从满足 f(a)f(b)<0 的区间 [a,b] 出发。过两端点的割线与 x 轴交于
c=b−f(b)f(b)−f(a)b−a.若 f(a)f(c)<0,用 c 替换 b;否则用 c 替换 a。变号括号始终保持。方法至少线性收敛,起初常常比二分快,但当一个端点许多步都不动时可能停滞。
下一篇从解 f(x)=0 转到用多项式去贴合采样数据:多项式插值。本页属于计算数学阅读路径。
评论