牛顿法

大学数学x_{n+1} = x_n − f(x_n)/f′(x_n):用曲线的切线替代曲线,并求解这条直线

使用通行证解锁此实验

通行证可解锁网站上的所有模拟,包括课堂演示模式。下方的教学笔记仍向所有人免费开放。

一次性付款,无需订阅。

关于此实验

大多数方程无法用公式求解,但计算器却能瞬间算出 √2 或 cos x = x 的根。牛顿法就是原因之一:从一个猜测值出发,沿切线向下走到 x 轴,并将交点作为下一个猜测值。在单根附近,正确位数大致每一步翻一倍。先看看它如何运作,再看看它如何失效:重根、水平切线、周期轨道、发散,以及它在复平面上绘制出的分形吸引域。

学习目标

  • 从切线方程推导牛顿迭代公式
  • 从误差表中识别二次收敛
  • 解释为什么在重根处收敛会变为线性
  • 举例说明牛顿法何时会失效:水平切线、周期轨道和发散
  • 描述吸引域,并解释为什么它们在复平面上的边界是分形

使用方法

  1. 1使用 x² − 2 和 x₀ = 3,逐步演示该方法并观察数字列。正确数字的位数大致如何增长?
  2. 2证明当 f(x) = x² − a 时,迭代变为 x_{n+1} = (x_n + a/x_n)/2,也就是巴比伦算法。
  3. 3选择 (x − 1)²(x + 2),并从 2.5 开始。将每一步的误差与单根情况进行比较。误差比是多少?
  4. 4选择 x³ − 2x + 2,并从恰好为 0 的位置开始。会发生什么?现在从 0.1 或 −0.5 开始。
  5. 5选择 arctan x。求仍能收敛的最大初始值,精确到小数点后两位。
  6. 6切换到复平面,考察 z³ − 1。在脑海中放大两种颜色的边界:为什么那里总有第三种颜色的点?

模型

下一次猜测值就是切线与 x 轴的交点
单根 r 附近的二次收敛
重数为 m 的根附近的线性收敛
由三个误差估算的收敛阶

假设

  • 计算采用双精度,约有16位有效数字,因此误差在接近10^−16时不再下降。
  • 误差是到最近精确根的距离;这里展示的每个函数,其根都是已知的。
  • 当切线变为水平、|x|超过10^6,或迭代40步后,方法就会停止。
  • 在复平面上,起始点按其在50步内到达的根着色;所需步数越多,颜色越暗。始终无法到达根的点显示为近乎黑色。

在课堂上试试这个实验

  1. Q1从x₀ = 2开始进行两步牛顿迭代,估算10的立方根。
  2. Q2为什么牛顿法要想表现良好,根附近的f′(x)必须不为零?
  3. Q3求f(x) = 1/x − a的牛顿迭代式。对于无法进行除法的计算机来说,它为什么有用?
  4. Q4对于f(x) = x^(1/3),证明x_{n+1} = −2x_n。这对任意起始值意味着什么?
  5. Q5比较牛顿法和二分法:哪种方法用更少的步数达到10位有效数字?哪种方法能够保证奏效?

常见问题

为什么它被称为牛顿-拉夫逊法?

艾萨克·牛顿于1669年描述了一种用于多项式的方法,每一步都会重写多项式。约瑟夫·拉弗森于1690年发表了更简单的迭代形式,托马斯·辛普森则于1740年给出了通用的微积分版本。

实际应用中的求解器如何避免这里展示的失败?

可以将牛顿法与二分法等安全方法结合起来(例如布伦特法);当函数值会因此增大时缩短步长(阻尼牛顿法或线搜索);也可以从通过其他方法找到的良好初始估计值开始。

牛顿法用在哪里?

它用于在硬件中计算平方根和倒数、求解工程和物理学中的非线性方程、对微分方程进行隐式时间步进,以及用于将牛顿法应用于梯度以寻找极小值的优化问题。