用牛顿法求函数的零点

分步数值解法、公式与经典例题

牛顿法是一种利用一阶导数来近似求函数零点的数值方法。以下是展示其应用的详细示例。 您可以使用此牛顿法计算器来验证结果。

牛顿法公式

牛顿法(或牛顿-拉普森法)基于以下递归公式:

\[ x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}, \quad n = 0, 1, 2, \ldots \]

首先在函数零点附近选择一个初始点,然后利用上述公式进行迭代。该方法被广泛使用,且易于在大多数编程语言中实现。

经典例题

例 1:近似求 \( f(x) = x^2 + 3x + 1 \) 的最大零点

这个二次函数的零点可以通过解析法求出,但我们这里将使用牛顿法进行对比。 通过画出 \( f \) 的图像,我们观察到两个负零点。其中较大的零点更接近 0。我们选择 \( x_0 = 0 \) 作为初始近似值。

牛顿法例 1

导数为:

\[ f'(x) = 2x + 3 \]

从 \( x_0 = 0 \) 开始:

\[ x_1 = x_0 - \frac{f(x_0)}{f'(x_0)} = 0 - \frac{0^2 + 3(0) + 1}{2(0) + 3} = -\frac{1}{3} \] \[ x_2 = -\frac{1}{3} - \frac{f(-1/3)}{f'(-1/3)} \approx -0.38095238 \] \[ x_3 \approx -0.38196555, \quad x_4 \approx -0.38196601, \quad x_5 \approx -0.38196601 \]

将其与利用求根公式得到的精确根进行比较: \[ z_2 = \frac{-3 + \sqrt{5}}{2} \approx -0.38196601125\ldots \] 牛顿法提供了精确到小数点后 8 位的准确度。

检查准确度: \[ f(x_5) \approx 2.8 \times 10^{-9} \] 这证实了 \( x_5 \) 是一个非常精确的近似值。

注:选择例 1 是为了将牛顿法的近似值与解析解进行比较。牛顿法对于缺乏解析解的方程最有用,正如接下来的示例所示。

例 2:求解 \( e^{x-3} = -x + 2 \)

将方程重写为:

\[ f(x) = e^{x - 3} + x - 2 = 0 \]

则:

\[ f'(x) = e^{x - 3} + 1 \]

图像表明在 \( x = 2 \) 附近有一个零点,因此令 \( x_0 = 2 \)。于是:

\[ x_1 = 2 - \frac{e^{-1}}{e^{-1} + 1} \approx 1.73105857 \] \[ x_2 \approx 1.72154537, \quad x_3 \approx 1.72153545, \quad x_4 \approx 1.72153545 \]

由于 \( x_4 \) 与 \( x_3 \) 在前 8 位小数上相同,迭代停止。

验证:

\[ f(x_4) \approx -9.3 \times 10^{-9} \] \[ \text{左边:} e^{x_4 - 3} \approx 0.278464540 \quad \text{右边:} -x_4 + 2 \approx 0.278464550 \]

因此,\( x_4 = 1.72153545 \) 是一个极好的近似解。

牛顿法例 2

例 3:近似求 \( \sqrt[3]{5} \)

5 的立方根是方程 \( x = \sqrt[3]{5} \Rightarrow x^3 = 5 \) 的解,即:

\[ f(x) = x^3 - 5 = 0, \quad f'(x) = 3x^2 \]

从图像来看,一个很好的初始点是 \( x_0 = 2 \)。

\[ x_1 = 2 - \frac{2^3 - 5}{3 \cdot 2^2} = 1.75 \] \[ x_2 = 1.71088435, \quad x_3 = 1.70997642, \quad x_4 = x_5 = 1.70997594 \]

因此,\( \sqrt[3]{5} \approx 1.70997594 \)。

牛顿法例 3