科学仿真

非线性方程求根:Newton 之外的安全网

导读:Newton 法快但挑剔:需要好初值、非零导数、光滑函数。NR 给出的安全网设计,是把「快」与「稳」组合起来。

Newton 与它的软肋

Newton 迭代 $x_{k+1} = x_k - f(x_k)/f'(x_k)$ 二阶收敛,但:初值不在收敛域内直接发散;$f'$ 接近零时步长爆炸;多重根退化为线性收敛。

工程实践:解析导数永远优于差分近似——差分步长本身又是一层数值误差。

安全网一:阻尼与限幅

阻尼 Newton:若全步长使 $\|f\|$ 增大,则折半步长(线搜索)。限幅:每步位移不超过特征尺度。这两招让 Newton 在电力系统潮流、化学平衡等工程问题里「几乎不会死」。

安全网二:无导数方法兜底

函数不可导或导数难写时,用 Brent 方法(超线性收敛、保收敛):bracketing(二分保底)+ 反插值(加速)的组合。一维问题首选 Brent;多维用 Powell/BFGS 类无导数优化。

本站潮流计算文章的 Newton-Raphson 实现即「阻尼 + 稀疏雅可比」的完整工程版本。

常见误区

  • 初值随便给,Newton 不收敛就换随机数重试。
  • 多重根场景下把收敛变慢误判为程序 bug。

吃透自检

  • 能实现阻尼 Newton 并说明每道保险的作用
  • 能为一维问题写出 Brent 法的调用方案
  • 能诊断 Newton 失败的原因类别(初值/导数/奇性)

← 科学仿真 书目精读列表 经典研读