微积分-微分应用8(牛顿法)

假设一位汽车经销商提供两种付款方式购买一辆价值 $18,000 的汽车,或者每月支付 $375 持续五年。你想知道这位经销商收取的实际月利率是多少。为此,你需要解以下方程:

48 x ( 1 + x ) 60 − ( 1 + x ) 60 + 1 = 0 48x(1 + x)^{60} - (1 + x)^{60} + 1 = 0 48x(1+x)60(1+x)60+1=0

如何解这样的方程?

对于二次方程 a x 2 + b x + c = 0 ax^2 + bx + c = 0 ax2+bx+c=0,有一个广为人知的解法公式。对于三次和四次方程,也有公式来解,但这些公式非常复杂。如果 f f f 是五次或更高次的多项式,则没有这样的公式。同样地,也没有公式能使我们找到超越方程的确切根,如 cos ⁡ x = x \cos x = x cosx=x

我们可以通过绘制方程的图形来找到方程1的近似解。使用图形设备并试验不同的矩形视图,我们生成了图1中的图形。
在这里插入图片描述

我们看到除了解 x = 0 x = 0 x=0(这对我们没有用)之外,在 0.007 0.007 0.007 0.008 0.008 0.008之间还有一个解。放大后发现该根约为 0.0076 0.0076 0.0076。如果需要更高的精度,我们可以不断地放大,但这很繁琐。一个更快速的替代方法是使用计算器或计算机代数系统以数值方式求解方程。如果这样做,我们会发现该根,精确到九位小数,为 0.007628603 0.007628603 0.007628603

这些设备是如何解方程的呢?它们使用各种方法,但大多数方法都利用了牛顿法,也称为牛顿-拉夫森法。我们将解释这种方法的工作原理,部分展示计算器或计算机内部发生的情况,部分作为线性逼近思想的应用。

在这里插入图片描述

牛顿法背后的几何图形如图2所示。我们希望求解形如 f ( x ) = 0 f(x) = 0 f(x)=0 的方程,因此方程的根对应于 f f f 图形的 x x x 轴截距。我们尝试找到的根在图中标记为 r r r。我们从第一个近似值 x 1 x_1 x1 开始,该值可以通过猜测、粗略绘制 f f f 的图形或从计算机生成的图形得到。考虑 f f f 在点 ( x 1 , f ( x 1 ) ) (x_1, f(x_1)) (x1,f(x1)) 处的切线 L L L,并查看切线 L L L x x x 截距 x 2 x_2 x2。牛顿法的思想是,切线 L L L 的斜率接近曲线的斜率,因此其 x x x 截距 x 2 x_2 x2 接近曲线的 x x x 截距(即我们要寻找的根)。因为切线是直线,我们可以很容易地找到它的 x 截距。

为了找到 x 2 x_2 x2 关于 x 1 x_1 x1 的公式,我们使用 L L L 的斜率是 f ′ ( x 1 ) f'(x_1) f(x1),所以它的方程是:

y − f ( x 1 ) = f ′ ( x 1 ) ( x − x 1 ) y - f(x_1) = f'(x_1)(x - x_1) yf(x1)=f(x1)(xx1)

由于 L L L x x x 截距是 x 2 x_2 x2,我们知道点 ( x 2 , 0 ) (x_2, 0) (x2,0) 在直线上,因此:

0 − f ( x 1 ) = f ′ ( x 1 ) ( x 2 − x 1 ) 0 - f(x_1) = f'(x_1)(x_2 - x_1) 0f(x1)=f(x1)(x2x1)

如果 f ′ ( x 1 ) ≠ 0 f'(x_1) \neq 0 f(x1)=0,我们可以解这个方程得到 x 2 x_2 x2

x 2 = x 1 − f ( x 1 ) f ′ ( x 1 ) x_2 = x_1 - \frac{f(x_1)}{f'(x_1)} x2=x1f(x1)f(x1)

我们使用 x 2 x_2 x2 作为 r r r 的第二个近似值。

接下来,我们用 x 2 x_2 x2 替换 x 1 x_1 x1,在点 ( x 2 , f ( x 2 ) ) (x_2, f(x_2)) (x2,f(x2)) 处使用切线重复这个过程。这给出了第三个近似值:

x 3 = x 2 − f ( x 2 ) f ′ ( x 2 ) x_3 = x_2 - \frac{f(x_2)}{f'(x_2)} x3=x2f(x2)f(x2)

在这里插入图片描述
如果我们不断重复这个过程,我们会得到一系列近似值 x 1 , x 2 , x 3 , x 4 , … x_1, x_2, x_3, x_4, \ldots x1,x2,x3,x4,,如图3所示。一般来说,如果第 n n n 个近似值是 x n x_n xn,且 f ′ ( x n ) ≠ 0 f'(x_n) \neq 0 f(xn)=0,那么下一个近似值为:

x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} xn+1=xnf(xn)f(xn)

如果数字 x n x_n xn 随着 n n n 增大而越来越接近 r r r,那么我们说序列收敛于 r r r,并且我们写作:

lim ⁡ n → ∞ x n = r \lim_{n \to \infty} x_n = r nlimxn=r

尽管逐次近似序列会收敛到图3所示类型函数的所需根,但在某些情况下,该序列可能不会收敛。例如,考虑图4所示的情况。你可以看到 x 2 x_2 x2 x 1 x_1 x1 更差。这种情况很可能发生在 f ′ ( x 1 ) f'(x_1) f(x1) 接近 0 0 0时。甚至有可能某个近似值(如图4中的 x 3 x_3 x3)落在 f f f 的定义域之外。
在这里插入图片描述

此时,牛顿法会失败,需要选择更好的初始近似值 x 1 x_1 x1

例1 x 1 = 2 x_1 = 2 x1=2 开始,找到方程 x 3 − 2 x − 5 = 0 x^3 - 2x - 5 = 0 x32x5=0 的第三次近似 x 3 x_3 x3

我们应用牛顿法,其中

f ( x ) = x 3 − 2 x − 5 f(x) = x^3 - 2x - 5 f(x)=x32x5
f ′ ( x ) = 3 x 2 − 2 f'(x) = 3x^2 - 2 f(x)=3x22

牛顿本人使用此方程来说明他的方法,并选择 x 1 = 2 x_1 = 2 x1=2,经过一些实验后得出: f ( 1 ) = − 6 , f ( 2 ) = − 1 f(1) = -6, f(2) = -1 f(1)=6,f(2)=1,和 f ( 3 ) = 16 f(3) = 16 f(3)=16。方程 2 变为:

x n + 1 = x n − f ( x n ) f ′ ( x n ) = x n − x n 3 − 2 x n − 5 3 x n 2 − 2 x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} = x_n - \frac{x_n^3 - 2x_n - 5}{3x_n^2 - 2} xn+1=xnf(xn)f(xn)=xn3xn22xn32xn5

n = 1 n = 1 n=1 时,我们有:

x 2 = x 1 − f ( x 1 ) f ′ ( x 1 ) = x 1 − x 1 3 − 2 x 1 − 5 3 x 1 2 − 2 = 2 − 2 3 − 2 ( 2 ) − 5 3 ( 2 ) 2 − 2 = 2 − 8 − 4 − 5 12 − 2 = 2 − − 1 10 = 2.1 \begin{align*}x_2 &= x_1 - \frac{f(x_1)}{f'(x_1)} = x_1 - \frac{x_1^3 - 2x_1 - 5}{3x_1^2 - 2} \\ &= 2 - \frac{2^3 - 2(2) - 5}{3(2)^2 - 2} \\ &= 2 - \frac{8 - 4 - 5}{12 - 2} = 2 - \frac{-1}{10} = 2.1\end{align*} x2=x1f(x1)f(x1)=x13x122x132x15=23(2)22232(2)5=2122845=2101=2.1

然后,当 n = 2 n = 2 n=2 时,我们得到:

x 3 = x 2 − f ( x 2 ) f ′ ( x 2 ) = 2.1 − ( 2.1 ) 3 − 2 ( 2.1 ) − 5 3 ( 2.1 ) 2 − 2 ≈ 2.0946 x_3 = x_2 - \frac{f(x_2)}{f'(x_2)} = 2.1 - \frac{(2.1)^3 - 2(2.1) - 5}{3(2.1)^2 - 2} \approx 2.0946 x3=x2f(x2)f(x2)=2.13(2.1)22(2.1)32(2.1)52.0946

事实证明,这第三次近似 x 3 ≈ 2.0946 x_3 \approx 2.0946 x32.0946 精确到四位小数。

假设我们想要达到给定的精度,例如八位小数,使用牛顿法。我们如何知道何时停止?一般使用的经验法则是,当连续的近似值 x n x_n xn x n + 1 x_{n+1} xn+1 在八位小数上相同时,我们可以停止。
注意,从 n n n n + 1 n + 1 n+1 的过程对于所有 n n n 都是相同的。(这称为迭代过程。)这意味着牛顿法在使用可编程计算器或计算机时特别方便。

例2 使用牛顿法找到精确到八位小数的 (\sqrt[6]{2})。

首先我们观察到,找到 2 6 \sqrt[6]{2} 62 相当于找到方程

x 6 − 2 = 0 x^6 - 2 = 0 x62=0

的正根。

因此,我们取 f ( x ) = x 6 − 2 f(x) = x^6 - 2 f(x)=x62。然后 f ′ ( x ) = 6 x 5 f'(x) = 6x^5 f(x)=6x5。应用牛顿法的公式,得到:

x n + 1 = x n − f ( x n ) f ′ ( x n ) = x n − x n 6 − 2 6 x n 5 x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} = x_n - \frac{x_n^6 - 2}{6x_n^5} xn+1=xnf(xn)f(xn)=xn6xn5xn62

如果我们选择 x 1 = 1 x_1 = 1 x1=1 作为初始近似值,那么我们得到:

x 2 ≈ 1.66666667 x_2 \approx 1.66666667 x21.66666667
x 3 ≈ 1.12644368 x_3 \approx 1.12644368 x31.12644368
x 4 ≈ 1.12249707 x_4 \approx 1.12249707 x41.12249707
x 5 ≈ 1.12246205 x_5 \approx 1.12246205 x51.12246205
x 6 ≈ 1.12246205 x_6 \approx 1.12246205 x61.12246205

由于 x 5 x_5 x5 x 6 x_6 x6 在八位小数上相同,我们可以得出结论:

2 6 ≈ 1.12246205 \sqrt[6]{2} \approx 1.12246205 62 1.12246205

精确到八位小数。

例3 找到方程 cos ⁡ x = x \cos x = x cosx=x 的根,精确到小数点后六位。

我们首先将方程写成标准形式:

cos ⁡ x − x = 0 \cos x - x = 0 cosxx=0

因此,我们取 f ( x ) = cos ⁡ x − x f(x) = \cos x - x f(x)=cosxx,然后 f ′ ( x ) = − sin ⁡ x − 1 f'(x) = -\sin x - 1 f(x)=sinx1。牛顿法公式变为:

x n + 1 = x n − f ( x n ) f ′ ( x n ) = x n − cos ⁡ x n − x n − sin ⁡ x n − 1 = x n + cos ⁡ x n − x n sin ⁡ x n + 1 x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} = x_n - \frac{\cos x_n - x_n}{-\sin x_n - 1} = x_n + \frac{\cos x_n - x_n}{\sin x_n + 1} xn+1=xnf(xn)f(xn)=xnsinxn1cosxnxn=xn+sinxn+1cosxnxn

为了猜测合适的 x 1 x_1 x1 值,我们绘制了 y = cos ⁡ x y = \cos x y=cosx y = x y = x y=x 的图形,如图6所示。可以看到它们在 x x x 轴上大约相交于小于1的某点,因此我们选择 x 1 = 1 x_1 = 1 x1=1 作为初始近似值。
在这里插入图片描述

在计算器上使用弧度模式,我们得到:

x 2 ≈ 0.75036387 x_2 \approx 0.75036387 x20.75036387
x 3 ≈ 0.73911289 x_3 \approx 0.73911289 x30.73911289
x 4 ≈ 0.73908513 x_4 \approx 0.73908513 x40.73908513
x 5 ≈ 0.73908513 x_5 \approx 0.73908513 x50.73908513

由于 x 4 x_4 x4 x 5 x_5 x5 在六位小数上相同,我们可以得出结论:

该方程的根,精确到六位小数,是 0.739085 0.739085 0.739085

如果不使用图6中的粗略草图来获取牛顿法的初始近似值,而是使用更精确的计算器或计算机生成的图形,我们可以选择 ( x_1 = 0.75 ) 作为初始近似值。然后牛顿法给出:

x 2 ≈ 0.73911114 x_2 \approx 0.73911114 x20.73911114
x 3 ≈ 0.73908513 x_3 \approx 0.73908513 x30.73908513
x 4 ≈ 0.73908513 x_4 \approx 0.73908513 x40.73908513

因此,我们得到相同的结果,但少了一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值