牛顿法(也称为牛顿-拉弗森方法)是一种递归算法,用于逼近可微函数的根。我们知道用于寻找线性和二次方程的根的简单公式,并且还有一些用于三次方程和四次方程的更复杂公式。曾经有人希望能够找到用于五次方程和更高次方程的公式,但后来由尼尔斯·亨利克·阿贝尔证明,这样的方程不存在。牛顿-拉弗森方法是一种用于逼近任意阶数多项式方程的根的方法。事实上,该方法适用于任何方程,无论是否为多项式,只要函数在所需区间内可微。
为了解释牛顿法,假设 已经非常接近 的一个零点。我们知道,如果我们只查看非常接近 的点,那么 看起来像它的切线。如果 已经接近 为 0 的位置,并且在 附近我们知道 看起来像它的切线,那么我们希望 处切线的零点比 本身是一个更好的近似值。
过点 的函数 的切线的方程为:
现在我们令 并解出 。
我们认为这个 值应该是 的一个更好的近似值。我们称这个 值为 ,经过简单的代数运算,我们得到
如果我们的直觉是正确的,并且 实际上是 的根的更好近似值,那么我们的逻辑应该同样适用于 。我们可以看看在 处的切线为零的地方。我们称之为 ,根据上面的代数,我们得到了公式
我们可以一直这样做,只要我们愿意。在每一步中,如果你的当前近似值是 ,我们的新近似值将是 。
求函数 的根。
可以看到, 逐渐逼近 0(我们知道这是 的根)。可以以任意精度逼近函数的根。
答案: 在 处有一个根。
当 时,此方法会失效。在这种情况下,应该选择一个新的起点。有时会发生 和 有一个共同的根。为了检测是否属实,我们应该首先找到 的解,然后检查 在这些地方的值。
牛顿法也不一定能对每个函数都收敛,例如
对于这个函数,选择任何 则 将会导致连续的近似值来回交替,因此无论迭代多少次,我们都无法比第一次猜测更接近根。
如果函数有一个局部最大值或最小值没有穿过 x 轴,牛顿法也可能无法收敛到一个根。例如,考虑 ,初始猜测为 。在这种情况下,牛顿法会被这个函数所迷惑,因为它会向 x 轴倾斜,但在初始猜测附近不会穿过 x 轴。