关于此实验
大多数方程无法用公式求解,但计算器却能瞬间算出 √2 或 cos x = x 的根。牛顿法就是原因之一:从一个猜测值出发,沿切线向下走到 x 轴,并将交点作为下一个猜测值。在单根附近,正确位数大致每一步翻一倍。先看看它如何运作,再看看它如何失效:重根、水平切线、周期轨道、发散,以及它在复平面上绘制出的分形吸引域。
学习目标
- 从切线方程推导牛顿迭代公式
- 从误差表中识别二次收敛
- 解释为什么在重根处收敛会变为线性
- 举例说明牛顿法何时会失效:水平切线、周期轨道和发散
- 描述吸引域,并解释为什么它们在复平面上的边界是分形
使用方法
- 1使用 x² − 2 和 x₀ = 3,逐步演示该方法并观察数字列。正确数字的位数大致如何增长?
- 2证明当 f(x) = x² − a 时,迭代变为 x_{n+1} = (x_n + a/x_n)/2,也就是巴比伦算法。
- 3选择 (x − 1)²(x + 2),并从 2.5 开始。将每一步的误差与单根情况进行比较。误差比是多少?
- 4选择 x³ − 2x + 2,并从恰好为 0 的位置开始。会发生什么?现在从 0.1 或 −0.5 开始。
- 5选择 arctan x。求仍能收敛的最大初始值,精确到小数点后两位。
- 6切换到复平面,考察 z³ − 1。在脑海中放大两种颜色的边界:为什么那里总有第三种颜色的点?
模型
假设
- 计算采用双精度,约有16位有效数字,因此误差在接近10^−16时不再下降。
- 误差是到最近精确根的距离;这里展示的每个函数,其根都是已知的。
- 当切线变为水平、|x|超过10^6,或迭代40步后,方法就会停止。
- 在复平面上,起始点按其在50步内到达的根着色;所需步数越多,颜色越暗。始终无法到达根的点显示为近乎黑色。
在课堂上试试这个实验
- Q1从x₀ = 2开始进行两步牛顿迭代,估算10的立方根。
- Q2为什么牛顿法要想表现良好,根附近的f′(x)必须不为零?
- Q3求f(x) = 1/x − a的牛顿迭代式。对于无法进行除法的计算机来说,它为什么有用?
- Q4对于f(x) = x^(1/3),证明x_{n+1} = −2x_n。这对任意起始值意味着什么?
- Q5比较牛顿法和二分法:哪种方法用更少的步数达到10位有效数字?哪种方法能够保证奏效?
常见问题
为什么它被称为牛顿-拉夫逊法?
艾萨克·牛顿于1669年描述了一种用于多项式的方法,每一步都会重写多项式。约瑟夫·拉弗森于1690年发表了更简单的迭代形式,托马斯·辛普森则于1740年给出了通用的微积分版本。
实际应用中的求解器如何避免这里展示的失败?
可以将牛顿法与二分法等安全方法结合起来(例如布伦特法);当函数值会因此增大时缩短步长(阻尼牛顿法或线搜索);也可以从通过其他方法找到的良好初始估计值开始。
牛顿法用在哪里?
它用于在硬件中计算平方根和倒数、求解工程和物理学中的非线性方程、对微分方程进行隐式时间步进,以及用于将牛顿法应用于梯度以寻找极小值的优化问题。
