牛顿法公式
牛顿法(或牛顿-拉普森法)基于以下递归公式:
首先在函数零点附近选择一个初始点,然后利用上述公式进行迭代。该方法被广泛使用,且易于在大多数编程语言中实现。
经典例题
例 1:近似求 \( f(x) = x^2 + 3x + 1 \) 的最大零点
这个二次函数的零点可以通过解析法求出,但我们这里将使用牛顿法进行对比。 通过画出 \( f \) 的图像,我们观察到两个负零点。其中较大的零点更接近 0。我们选择 \( x_0 = 0 \) 作为初始近似值。
导数为:
\[ 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 \) 是一个极好的近似解。
例 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 \)。