上一篇用二分法把根限制在逐渐缩小的区间中,又用不动点迭代讨论了迭代映射与收敛速度。本篇进一步利用函数在当前点附近的线性近似:先求出一个容易计算的线性模型的零点,再将它作为新的近似值。

这一思路导出 Newton 法。用割线代替切线可以免去导数计算;把标量导数换成 Jacobian 矩阵,则可以处理非线性方程组。它们通常能在根附近快速收敛,但初值、根的重数和每一步线性问题的可解性都必须单独检查。

标量部分统一考虑实方程 f(x)=0f(x)=0,记目标根为 α\alpha,迭代误差为 en=xn−αe_n=x_n-\alpha。除专门说明浮点实现的地方外,收敛定理均在精确算术下讨论。


1. Newton 法:用切线构造下一步

1.1 切线公式与迭代映射

在 xnx_n 附近,使用一阶 Taylor 模型

f(x)≈f(xn)+f′(xn)(x−xn).f(x)\approx f(x_n)+f'(x_n)(x-x_n).

若 f′(xn)≠0f'(x_n)\ne0,令右端等于零,得到 Newton 迭代

xn+1=xn−f(xn)f′(xn).\boxed{x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}}.

从几何上看,xn+1x_{n+1} 是曲线在 (xn,f(xn))(x_n,f(x_n)) 处的切线与横轴的交点。切线只描述局部形状,其交点可能远离 xnx_n,也可能落到函数定义域之外。

Newton 法也是不动点迭代,其迭代函数为

N(x)=x−f(x)f′(x).N(x)=x-\frac{f(x)}{f'(x)}.

这里 NN 只在分母非零且函数有定义的地方使用;不能因为 ff 本身有定义,就认为 Newton 步也有定义。

1.2 算法步骤

给定函数及其导数、初值 x0x_0、容差和最大迭代次数。

  1. 计算 f(xn)f(x_n),先判断是否已满足停止要求。
  2. 计算 f′(xn)f'(x_n);若导数为零,或相对于问题尺度过小而使校正不可靠,则报告失败或启用保护策略。
  3. 求校正量 sn=−f(xn)/f′(xn)s_n=-f(x_n)/f'(x_n),形成试探点 xn+snx_n+s_n。
  4. 检查试探点的定义域和数值有效性;接受后计算新的残差,并同时检查步长、残差及迭代次数。

浮点计算中的“函数值恰好为零”表示计算结果为零,仍可能受舍入或下溢影响。一般的停止条件也不自动等价于获得了严格误差界,相关区别见第 6 节。

1.3 例:平方根

对 f(x)=x2−af(x)=x^2-a,其中 a>0a>0,Newton 法变为

xn+1=12(xn+axn).x_{n+1}=\frac12\left(x_n+\frac{a}{x_n}\right).

选取正初值时,迭代始终为正。从 a=2a=2、x0=1x_0=1 出发,前三步是

x1=32,x2=1712,x3=577408.x_1=\frac32,\qquad x_2=\frac{17}{12},\qquad x_3=\frac{577}{408}.

令 α=a\alpha=\sqrt a,可直接得到误差关系

en+1=en22xn.e_{n+1}=\frac{e_n^2}{2x_n}.

当 xnx_n 已接近正根时,分母接近 2α>02\alpha>0,新误差与旧误差的平方成正比。这正是二次收敛的典型形式。


2. 单根附近的局部收敛

2.1 局部二次收敛定理

定理(Newton 法在单根附近的收敛)

设 ff 在 α\alpha 的某个开邻域内二阶连续可微,并且

f(α)=0,f′(α)≠0.f(\alpha)=0,\qquad f'(\alpha)\ne0.

则存在 δ>0\delta>0,使得当 ∣x0−α∣<δ|x_0-\alpha|<\delta 时,Newton 迭代或者有限步到达根,或者各步均有定义、留在该邻域内并收敛到 α\alpha。此外,在足够小的邻域内存在常数 CC,使

∣en+1∣≤C∣en∣2.|e_{n+1}|\le C|e_n|^2.

对于不在有限步终止的序列,还有

lim⁡n→∞en+1en2=f′′(α)2f′(α).\lim_{n\to\infty}\frac{e_{n+1}}{e_n^2} =\frac{f''(\alpha)}{2f'(\alpha)}.

若 f′′(α)≠0f''(\alpha)\ne0,其收敛阶恰为 22,渐近误差常数是右端的绝对值。若 f′′(α)=0f''(\alpha)=0,上述假设仍保证至少二次的误差估计,但不能只凭这一点就断言恰为三次收敛;更高阶结论需要进一步的光滑性和非退化条件。

2.2 误差界中的常数从哪里来

若在包含 α\alpha 和当前点的区间内

∣f′(x)∣≥m1>0,∣f′′(x)∣≤M2,|f'(x)|\ge m_1>0,\qquad |f''(x)|\le M_2,

则 Taylor 展开给出一步估计

∣en+1∣≤M22m1∣en∣2.|e_{n+1}|\le\frac{M_2}{2m_1}|e_n|^2.

要反复使用这个估计,还必须保证迭代点一直留在上述区间中。局部定理通过把初始邻域取得足够小来实现这一点;它并没有承诺任意初值都能进入这个邻域。

从不动点角度看,在导数非零的邻域中

N′(x)=f(x)f′′(x)[f′(x)]2,N′(α)=0.N'(x)=\frac{f(x)f''(x)}{[f'(x)]^2},\qquad N'(\alpha)=0.

因此单根处的一阶误差项消失。Newton 法快速收敛的原因是迭代映射的这种局部结构,而不是“使用导数”本身就能保证收敛。


3. 重根与修正 Newton 法

3.1 普通 Newton 法为什么变慢

定义(重数)

若在 α\alpha 的邻域内可以写成

f(x)=(x−α)mg(x),g(α)≠0,f(x)=(x-\alpha)^m g(x),\qquad g(\alpha)\ne0,

其中 mm 为正整数,则称 α\alpha 为 mm 重根。本节假设 gg 二阶连续可微。

当 m≥2m\ge2 时,f′(α)=0f'(\alpha)=0,上一节的单根定理不再适用。不过,在足够靠近根且尚未到根的点上,Newton 法仍有定义,并满足

en+1=(1−1m)en+O(en2).e_{n+1}=\left(1-\frac1m\right)e_n+O(e_n^2).

所以普通 Newton 法在重根附近通常只有线性收敛,收敛因子为 1−1/m1-1/m。重数越大,这个因子越接近 11,同样的误差缩减需要更多步。

3.2 已知重数时的修正

若准确知道重数 mm,使用

xn+1=xn−mf(xn)f′(xn).\boxed{x_{n+1}=x_n-m\frac{f(x_n)}{f'(x_n)}}.

在上述局部假设下,修正迭代消去线性误差项,并满足

en+1=g′(α)mg(α)en2+o(en2).e_{n+1}=\frac{g'(\alpha)}{m g(\alpha)}e_n^2+o(e_n^2).

因此恢复至少二次收敛;若该二次项系数非零,则恰为二次收敛。到达根后应立即停止,不能继续代入此时呈 0/00/0 形式的商。

若把重数误设为 rr,一阶误差因子会变成 1−r/m1-r/m。当 0<r<2m0<r<2m 时局部导数的绝对值小于 11;当 r>2mr>2m 时局部排斥。边界 r=2mr=2m 需要进一步分析。随意增大修正倍数并不能保证更快收敛。

3.3 实验:残差很小,误差仍可能明显

实验采用

f(x)=(x−1)m(x+1),α=1,f(x)=(x-1)^m(x+1),\qquad \alpha=1,

从 x0>1x_0>1 出发比较两种迭代。这里的目标根已知,能够直接计算真实误差;一般求根问题未必具备这一条件。

取 m=3m=3 时,两种方法有精确的一步误差关系

en+1Newton=en3xn+14xn+2,en+1modified=en24xn+2.e_{n+1}^{\mathrm{Newton}} =e_n\frac{3x_n+1}{4x_n+2},\qquad e_{n+1}^{\mathrm{modified}} =\frac{e_n^2}{4x_n+2}.

前一个比值趋于 2/32/3,后一个二次误差常数趋于 1/61/6。同时,根附近 ∣f(x)∣|f(x)| 与 ∣x−1∣m|x-1|^m 同阶:较大的重数会让残差比真实误差小得多。实验因此使用已知根的误差作为停止指标,避免误把小残差当作同样小的位置误差。


4. 割线法:用两个函数值代替导数

4.1 构造与算法

用差商近似当前导数,得到 割线法

xn+1=xn−f(xn)xn−xn−1f(xn)−f(xn−1).\boxed{ x_{n+1}=x_n-f(x_n) \frac{x_n-x_{n-1}}{f(x_n)-f(x_{n-1})} }.

它用经过 (xn−1,f(xn−1))(x_{n-1},f(x_{n-1})) 和 (xn,f(xn))(x_n,f(x_n)) 的直线与横轴的交点,作为下一个近似值。

  1. 给定两个不同初值 x0,x1x_0,x_1,计算并保存两个函数值。
  2. 若当前点已满足停止条件,则结束;否则检查差商的分母是否可靠。
  3. 用割线公式生成新点,检查定义域并计算一次新的函数值。
  4. 丢弃最旧的数据,继续使用最新两个点。

缓存旧函数值后,每个后续更新只需一次新的函数求值。两个初值不要求异号;算法也不维护夹根区间,所以它与二分法、按符号保留端点的假位法不同。

4.2 局部收敛阶

设 ff 在单根 α\alpha 附近二阶连续可微,且 f′(α)≠0f'(\alpha)\ne0。两个不同初值充分靠近根时,割线法具有局部收敛性;若迭代没有有限步到根,在通常的非退化情形 f′′(α)≠0f''(\alpha)\ne0 下,渐近误差关系为

en+1=(f′′(α)2f′(α)+o(1))enen−1.e_{n+1}=\left(\frac{f''(\alpha)}{2f'(\alpha)}+o(1)\right)e_ne_{n-1}.

其收敛阶为

p=1+52≈1.618.p=\frac{1+\sqrt5}{2}\approx1.618.

这一指数满足 p2=p+1p^2=p+1:当相邻误差服从同一渐近幂次规律时,两项误差乘积对应的指数是 1+1/p1+1/p。这是超线性收敛,但一般达不到 Newton 法的二次阶。

若 f′′(α)=0f''(\alpha)=0,或者根不是单根,就不能直接套用上述“恰为黄金分割阶”的结论。若两个函数值相等而尚未到根,割线公式没有定义。

4.3 实验:同一方程上的切线与割线

选择 x2−2x^2-2 可以比较两种方法接近单根时的步数;选择 x3−2x+2x^3-2x+2 并令 Newton 初值为 00,可以看到一个并不收敛的周期。切换方法时,请留意割线法的两次初始函数求值也计入成本。

图中虚线表示最近一次使用的线性模型,圆点表示它与横轴的交点。图形会根据当前数据自动缩放,表格中的数值和停止原因应与图形一起阅读。函数求值次数记录算法所需的求值,不包含绘图采样。


5. Steffensen 法:重启的 Aitken 加速

5.1 迭代公式

对等价的不动点方程 x=φ(x)x=\varphi(x),从当前点 xnx_n 计算

yn=φ(xn),zn=φ(yn),y_n=\varphi(x_n),\qquad z_n=\varphi(y_n),

再定义

xn+1=xn−(yn−xn)2zn−2yn+xn.\boxed{x_{n+1}=x_n- \frac{(y_n-x_n)^2}{z_n-2y_n+x_n}}.

这称为 Steffensen 迭代。它把上一篇的 Aitken Δ2\Delta^2 变换作为新的迭代步骤:每轮从加速后的点重新计算两个不动点步,而不是只对原来的整条序列作后处理。

若 yn=xny_n=x_n,已得到不动点,应先停止;否则还需检查分母以及试探点的定义域。分母涉及相近数相减,浮点计算中可能出现明显的相消。

5.2 收敛条件与计算代价

一个常用的充分条件是:φ\varphi 在不动点 α\alpha 附近二阶连续可微,且

φ(α)=α,∣φ′(α)∣<1.\varphi(\alpha)=\alpha,\qquad |\varphi'(\alpha)|<1.

则充分接近 α\alpha 的初值产生的 Steffensen 迭代局部至少二次收敛,有限步到达不动点的情况视为已经结束。这个结论依赖局部条件,并不意味着加速公式可以补救任意一个不收敛的迭代。

例如,取 φ(x)=cos⁡x\varphi(x)=\cos x、x0=1x_0=1,第一次加速得到

x1≈0.7280103614676171,x_1\approx0.7280103614676171,

目标不动点约为 0.73908513321516060.7390851332151606。加速后的点一般不是原始序列的下一项,也不一定保持原始序列的单调方向。

Steffensen 法每轮使用两次 φ\varphi 求值,不直接使用导数。若 φ\varphi 的一次求值本身就很昂贵,二次收敛并不自动意味着总体运行时间更短;比较成本时应把“迭代一次”换成实际函数计算量。


6. 失效现象、阻尼与区间保护

6.1 三类典型困难

初值导致循环。 对

f(x)=x3−2x+2,f(x)=x^3-2x+2,

Newton 法从 x0=0x_0=0 出发严格满足 0↦1↦00\mapsto1\mapsto0,形成二周期。两个点处导数都不为零,但迭代并不趋于根。此方程的实根约为 −1.7692923542386314-1.7692923542386314。

导数或差商失效。 对 f(x)=x3−1f(x)=x^3-1,在 x0=0x_0=0 处函数值非零而导数为零,Newton 步无法形成。导数仅仅“很小”时,也可能产生极大的校正;判断是否过小应考虑函数、变量和舍入误差的尺度,不能对所有问题统一使用一个绝对阈值。

试探点离开定义域。 对 f(x)=log⁡xf(x)=\log x,Newton 公式为 xn+1=xn(1−log⁡xn)x_{n+1}=x_n(1-\log x_n)。若取 x0>ex_0>\mathrm e,下一点为负,实对数就无法继续计算。根存在且为单根,也不能排除这种失败。

6.2 残差与步长的停止准则

实际算法常同时检查

∣xn+1−xn∣≤τx(1+∣xn+1∣),∣f(xn+1)∣≤τf,|x_{n+1}-x_n|\le\tau_x(1+|x_{n+1}|),\qquad |f(x_{n+1})|\le\tau_f,

其中 τx\tau_x 和 τf\tau_f 应按变量、函数的尺度选取。还应设置最大迭代次数,并区分“满足容差”“停滞”“数值无效”和“达到上限”。

小步长可能来自浮点停滞或过度阻尼;小残差也可能来自重根或函数的尺度变化。两项都小是常用的实用判据,但一般仍不是严格的误差认证。

若已知 α\alpha 与 xx 位于同一区间,且该区间上 ∣f′∣≥m1>0|f'|\ge m_1>0,才可以由中值定理推出

∣x−α∣≤∣f(x)∣m1.|x-\alpha|\le\frac{|f(x)|}{m_1}.

对于重根,包含根的区间上不可能满足这样的正下界。

6.3 阻尼 Newton 法与回溯

先求完整 Newton 方向 sn=−f(xn)/f′(xn)s_n=-f(x_n)/f'(x_n),再取

xn+1=xn+λnsn,0<λn≤1.x_{n+1}=x_n+\lambda_n s_n,\qquad 0<\lambda_n\le1.

这称为 阻尼 Newton 法。一种选择步长的方式是对残差平方函数

Ψ(x)=12f(x)2\Psi(x)=\frac12 f(x)^2

使用回溯。只要当前 f′(xn)≠0f'(x_n)\ne0,就有

Ψ′(xn)sn=−f(xn)2.\Psi'(x_n)s_n=-f(x_n)^2.

因而在非根处这是一个下降方向。取 0<c<1/20<c<1/2、0<β<10<\beta<1,从 λ=1\lambda=1 开始;若试探点不在定义域内,或不满足

Ψ(xn+λsn)≤Ψ(xn)−cλf(xn)2,\Psi(x_n+\lambda s_n) \le\Psi(x_n)-c\lambda f(x_n)^2,

就将 λ\lambda 乘以 β\beta 后重试。在当前点位于开定义域内、函数连续可微等通常条件下,足够短的步长可以满足下降要求。

下降要求本身不保证最终找到根:残差平方函数可能在非零残差处有驻点,序列也需要有界性等额外条件。实现中还要设置回溯上限和最小可分辨步长。

若在单根附近始终使用固定的 0<λ<10<\lambda<1,迭代映射在根处的导数为 1−λ1-\lambda,通常只剩线性收敛。要恢复完整 Newton 法的局部二次速度,需要最终接受完整步长;在光滑单根附近,上述回溯规则与 c<1/2c<1/2 允许这种行为。

6.4 保留夹根区间的保护策略

若已知 ff 在 [a,b][a,b] 上连续且 f(a)f(b)<0f(a)f(b)<0,可以同时维护夹根区间,并把 Newton 候选点与二分回退结合起来。

一个容易给出收缩保证的规则是固定 0<θ<1/20<\theta<1/2,只接受落在

[a+θ(b−a), b−θ(b−a)][a+\theta(b-a),\ b-\theta(b-a)]

中的有效 Newton 候选点,否则改用区间中点。计算候选点函数值后,按符号保留异号的半边;若候选点恰为根,则结束。

在精确算术和可靠符号判断下,每次更新都保持夹根性质,且新区间宽度不超过原宽度的 1−θ1-\theta 倍。这给出区间收缩与收敛保证。

仅要求候选点在区间内部,不能直接推出上述统一收缩比例。另一方面,严格的中央区间规则可能反复拒绝靠近端点的 Newton 步,所以也不能无条件宣称这个简单混合算法仍保持二次收敛。全局保护与局部速度需要在具体策略中分别分析。


7. 非线性方程组的 Newton 法

7.1 Jacobian 与线性模型

考虑 dd 个方程、dd 个未知量:

F(x)=0,F=(F1,…,Fd)T,x∈Rd.F(\mathbf x)=\mathbf0,\qquad F=(F_1,\ldots,F_d)^{\mathsf T},\qquad \mathbf x\in\mathbb R^d.

定义(Jacobian 矩阵)

若各分量可微,则 FF 的 Jacobian 矩阵为

JF(x)=(∂Fi∂xj(x))i,j=1d.J_F(\mathbf x)= \left(\frac{\partial F_i}{\partial x_j}(\mathbf x)\right)_{i,j=1}^d.

在当前点的线性模型是

F(xn+s)≈F(xn)+JF(xn)s.F(\mathbf x_n+\mathbf s)\approx F(\mathbf x_n)+J_F(\mathbf x_n)\mathbf s.

令这个模型为零,得到 Newton 步的实际计算形式:

JF(xn)sn=−F(xn),xn+1=xn+sn.\boxed{ J_F(\mathbf x_n)\mathbf s_n=-F(\mathbf x_n),\qquad \mathbf x_{n+1}=\mathbf x_n+\mathbf s_n }.

每一步需要解一个线性方程组。形式上可以写成 xn+1=xn−JF(xn)−1F(xn)\mathbf x_{n+1}=\mathbf x_n-J_F(\mathbf x_n)^{-1}F(\mathbf x_n),但实现通常使用矩阵分解求解校正量,不显式形成逆矩阵。

7.2 局部收敛条件

定理(方程组 Newton 法的局部二次收敛)

设 FF 在根 α\boldsymbol\alpha 的开邻域内连续可微,JFJ_F 在该邻域内 Lipschitz 连续,并且

F(α)=0,JF(α) 可逆.F(\boldsymbol\alpha)=\mathbf0,\qquad J_F(\boldsymbol\alpha)\text{ 可逆}.

则从充分接近 α\boldsymbol\alpha 的初值出发,精确求解每一步线性方程组的 Newton 法局部至少二次收敛。

更具体地,在足够小的凸邻域内,固定一个向量范数及其诱导矩阵范数。若

∥JF(x)−1∥≤B,∥JF(x)−JF(y)∥≤L∥x−y∥,\|J_F(\mathbf x)^{-1}\|\le B,\qquad \|J_F(\mathbf x)-J_F(\mathbf y)\|\le L\|\mathbf x-\mathbf y\|,

则对留在该邻域的迭代有

∥xn+1−α∥≤BL2∥xn−α∥2.\|\mathbf x_{n+1}-\boldsymbol\alpha\| \le\frac{BL}{2}\|\mathbf x_n-\boldsymbol\alpha\|^2.

可逆性保证局部校正可解,逆矩阵范数则影响误差放大。接近奇异的 Jacobian 会使校正对函数值和舍入误差更敏感。若线性方程组只近似求解,求解误差还会进入下一步误差,必须控制其大小才能保持二次速度。

7.3 例:圆与直线的交点

考虑

F(x,y)=(x2+y2−1x−y),JF(x,y)=(2x2y1−1).F(x,y)= \begin{pmatrix}x^2+y^2-1\\x-y\end{pmatrix},\qquad J_F(x,y)=\begin{pmatrix}2x&2y\\1&-1\end{pmatrix}.

两个根为

α±=(±12, ±12),\boldsymbol\alpha_\pm= \left(\pm\frac1{\sqrt2},\ \pm\frac1{\sqrt2}\right),

其中两个坐标取相同符号。选取 x0=(1,1/2)T\mathbf x_0=(1,1/2)^{\mathsf T},第一次校正解

(211−1)(sxsy)=(−1/4−1/2).\begin{pmatrix}2&1\\1&-1\end{pmatrix} \begin{pmatrix}s_x\\s_y\end{pmatrix} =\begin{pmatrix}-1/4\\-1/2\end{pmatrix}.

结果为 s0=(−1/4,1/4)T\mathbf s_0=(-1/4,1/4)^{\mathsf T},因此 x1=(3/4,3/4)T\mathbf x_1=(3/4,3/4)^{\mathsf T}。第二个方程本来就是线性的,所以一次精确 Newton 校正后就满足 x=yx=y;第一个方程则还需继续迭代。

实验同时画出单位圆、直线 x=yx=y 和最近一步的轨迹。圆对应方程的线性化是在旧点建立的一阶近似约束;当旧点不在圆上时,它并不是在旧点“与圆相切”的直线。

这个例子中 det⁡JF(x,y)=−2(x+y)\det J_F(x,y)=-2(x+y)。当 x+y=0x+y=0 时 Jacobian 奇异,不能使用普通 Newton 更新。即使离开这条直线,初值不同也可能收敛到不同交点。

7.4 方程组中的阻尼与成本

方程组同样可以采用 xn+1=xn+λnsn\mathbf x_{n+1}=\mathbf x_n+\lambda_n\mathbf s_n。对欧氏残差平方

Ψ(x)=12∥F(x)∥22,\Psi(\mathbf x)=\frac12\|F(\mathbf x)\|_2^2,

精确 Newton 方向满足

∇Ψ(xn)Tsn=F(xn)TJF(xn)sn=−∥F(xn)∥22.\nabla\Psi(\mathbf x_n)^{\mathsf T}\mathbf s_n =F(\mathbf x_n)^{\mathsf T}J_F(\mathbf x_n)\mathbf s_n =-\|F(\mathbf x_n)\|_2^2.

因此可以沿用回溯下降思想。实际实现还需注意各方程和变量的尺度,避免某个量纲较大的分量主导停止判据。

一次迭代的主要成本包括函数向量求值、Jacobian 构造和线性求解。一般稠密 d×dd\times d 矩阵的分解成本为 O(d3)O(d^3);稀疏结构或特殊矩阵结构可能显著改变成本。后续数值线性代数篇章将讨论这些线性子问题的求解与稳定性。


8. 方法对照与常见误区

8.1 标量方法对照

下表的求值数指初始化之后每次更新的主要计算量,不含绘图、额外停止检查和回溯试探。收敛阶指相应条件下的局部渐近行为。

方法初始信息每步主要计算收敛速度与条件需要特别注意
二分法连续函数的异号区间1 次新函数求值夹根区间宽度每步减半偶数重根可能无法靠变号隔离
不动点迭代迭代映射与一个初值1 次映射求值压缩条件下收敛;非零局部导数时通常线性映射的选择和不变区间
Newton 法函数、导数与一个初值1 次函数及 1 次导数求值光滑单根附近至少二次初值、导数可靠性和定义域
重数修正 Newton 法上述信息及正确重数与普通 Newton 法相同重根附近恢复至少二次重数错误会改变局部收敛性质
割线法函数与两个不同初值缓存后 1 次新函数求值光滑单根且二阶导数非零时通常为黄金分割阶小分母;不保留夹根区间
Steffensen 法不动点映射与一个初值2 次映射求值光滑局部压缩条件下至少二次差分相消与加速点的定义域

二分法的宽度减半是直接可用的区间结论,不应因此断言其中点实际误差每一步恰好减半。Newton 法的收敛阶更高,也不能单凭阶数断言其总耗时一定低于割线法。

8.2 常见误区

  1. “Newton 法总是二次收敛。” 单根、局部光滑性和足够好的初值都是条件;普通 Newton 法在重根处一般只线性收敛。
  2. “每一步导数非零,就会收敛。” 非零导数只让该步公式有定义,二周期反例已经否定了这一推论。
  3. “割线法有两个初值,所以会夹住根。” 割线法保留最近两个点,并不按函数符号保留端点。
  4. “阻尼越小越安全,也越精确。” 过小步长可能造成缓慢收敛或停滞,固定阻尼还可能损失二次速度。
  5. “残差很小就说明根的位置很准。” 必须考虑导数下界或 Jacobian 的可逆性与尺度,重根尤其容易产生误判。
  6. “方程组 Newton 法就是求 Jacobian 的逆。” 逆矩阵表达便于理论书写,实际计算的核心是稳定地求解线性方程组。

9. 本篇要点

  • Newton 法从当前点的线性模型出发;在光滑单根附近,一阶误差项消失,得到至少二次收敛。
  • 重根使普通 Newton 法退化为线性收敛;已知正确重数时可以修正迭代,消去线性项。
  • 割线法与 Steffensen 法免去显式导数计算,但各有初始化、求值成本和分母可靠性问题。
  • 阻尼与区间保护用额外规则控制试探步;收敛保证、停止认证和局部速度应分别说明。
  • 非线性方程组的 Newton 法在每一步求解 Jacobian 线性系统,其可解性和稳定性直接影响迭代结果。

下一篇转向线性方程组的直接解法,整理消元、主元选择与矩阵分解,为非线性迭代中的线性子问题提供计算工具。

参考资料

  1. Richard L. Burden、J. Douglas Faires、Annette M. Burden:《Numerical Analysis》,第 10 版,Cengage Learning,非线性方程的数值解相关章节。
  2. Tobin A. Driscoll、Richard J. Braun:《Fundamentals of Numerical Computation》,Newton 法、割线法及非线性方程组相关章节。
  3. National Institute of Standards and Technology:《Digital Library of Mathematical Functions》,第 3.8 节“Nonlinear Equations”。