普林斯顿微积分读本:第 25 章 如何求解估算问题

第 25 章 如何求解估算问题

在上一章中, 我们学习了如何应用泰勒多项式来估算(或近似)特定的量.我们也知道了余项可以用来判定近似程度. 本章,我们将讨论相应的方法并讨论一些相关例题. 下面是本章的计划:

  • 泰勒多项式和泰勒级数的重要结论回顾;

  • 如何求泰勒多项式和泰勒级数;

  • 估算问题;

  • 分析误差的一个不同的方法.

25.1 泰勒多项式与泰勒级数总结

下面是关于泰勒多项式和泰勒级数的一些重要结论,这些均已在前一章中讨论过:

1. 在所有次数为N或更低的多项式中,与定义在a附近的平滑函数f最近似的多项式被称为关于x =aN阶泰勒多项式, 即

\fbox{\begin{align*}P_N(x)=&f(a)+f'(a)(x-a)+\frac{f''(a)}{2!}(x-a)^2\\&+\frac{f^{(3)}(a)}{3!}(x-a)^3+\cdots+\frac{f^{(N)}(a)}{N!}(x-a)^N.\end{align*}}

用求和号表示, 可写为

P_N(x)=\sum^N_{n=0}\frac{f^{(n)}(a)}{n!}(x-a)^n.

2. 多项式PNfx = a点直到N阶的导数相同. 即

P_N(a)=f(a),~~P'_N(a)=f'(a),~~P''_N(a)=f''(a),~~P^{(3)}_N(a)=f^{(3)}(a),

且直到P_N^{(N)}(a) = f^{(N)}(a). 一般来说,上述等式对a之外的其他任何值, 或大于N的任何阶导数都不成立.(实际上, PN大于N阶的所有导数都等于0, 因为PN是次数为0的多项式.)

3. N阶余项RN (x),或称为N阶误差项是f(x) - PN (x).则对任意N

\fbox{$f(x)=P_N(x)+R_N(x)$}

余项表达式为

\fbox{$R_N(x)=\frac{f^{(N+1)}(c)}{(N+1)!}(x-a)^{N+1}$}

其中c一般是求不出来的, 它介于xa之间.

4. 所以, f(x)的完整表达式为

f(x)=\sum^N_{n=0}\frac{f^{(n)}(a)}{n!}(x-a)^n+\frac{f^{(N+1)}(c)}{(N+1)!}(x-a)^{N+1}.

5. 无穷级数

\sum^\infty_{n=0}\frac{f^{(n)}(a)}{n!}(x-a)^n

被称为f(x)关于x = a泰勒级数.对任何特定的x, 该级数可能收敛也可能发散. 若对任意特定的x,余项RN (x)当N → ∞时收敛于0, 则对该x我们有

f(x)=\sum^\infty_{n=0}\frac{f^{(n)}(a)}{n!}(x-a)^n

即, 在点xf(x)等于它的泰勒级数(关于x = a).

6. 对特别的情形a = 0, 泰勒级数为

\sum^\infty_{n=0}\frac{f^{(n)}(0)}{n!}x^n.

f(x)的麦克劳林级数. 所以,当看到“麦克劳林级数”时, 可以把它看作“关于x = 0的泰勒级数”.

25.2 求泰勒多项式与泰勒级数

如果欲求特定的泰勒多项式或级数, 若幸运的话,可以通过对已知的泰勒多项式或级数的运算来求得想要的多项式或级数.我们将在26.2节来讨论相应的一些方法. 不幸的是,情况并不总是这样:有时你需要从前面的总结中将f关于x =a的泰勒级数分离出来:

\sum^\infty_{n=0}\frac{f^{(n)}(a)}{n!}(x-a)^n.

知道了数a和函数f, 还需要求出f的所有导数在x =a的值, 然后将它们代入上述公式. 然而,这是很讨厌的!求一次或两次导就已经很麻烦了,求成百上千次导数就太荒谬了.对于只求低次泰勒多项式来说还不是那么糟糕, 因为只需计算少量导数.我们将在26.2节讨论一些可以帮你避开上面这些公式的好方法,如果你很幸运.

 另一方面,有些函数是很容易求导的. 一个这样的例子是定义为f(x) = ex的函数f, 上一章我们讨论了它的麦克劳林级数.若你不想求f的麦克劳林级数, 而是想求它的关于x = -2的泰勒级数怎么办?将上面公式中的0用a = - 2代换, 可得

\sum^\infty_{n=0}\frac{f^{(n)}(-2)}{n!}(x+2)^n.

n的许多值, 我们需要求f(n)( - 2),所以构造一个导数的表格是很有帮助的. 一般的, 表格的模板形式如下.

n

f(n)(x)

f(n)(a)

0

 

 

1

 

 

2

 

 

3

 

 

首先应填中间的一列. 从最上一行的函数本身开始, 持续求导.每次求完导后, 将结果写在表的下一行(仍为中间一列).当中间那列填满后, 将x = a代入中间列的每一个值,将相应的结果填在同行的第三列上. 注意可能要更多行,这取决于n的大小或计算的快慢. 在我们的例子中, a = -2且f(x)的所有导数均为ex, 所以填完的表如下.

n

f(n)(x)

f(n)(-2)

0

ex

e-2

1

ex

e-2

2

ex

e-2

3

ex

e-2

很清楚:对所有nf(n)( - 2) = e - 2,若将其代入上面的公式:

\sum^\infty_{n=0}\frac{f^{(n)}(-2)}{n!}(x+2)^n

得到ex关于x = - 2的泰勒级数:

\sum^\infty_{n=0}\frac{​{\rm e}^{-2}}{n!}(x+2)^n.

不用求和号而将其展开是个好主意:

{\rm e}^{-2}+{\rm e}^{-2}(x+2)+\frac{​{\rm e}^{-2}}{2!}(x+2)^2+\frac{​{\rm e}^{-2}}{3!}(x+2)^3+\cdots.

 还有另一个例子:求sin(x)关于x = π / 6的泰勒级数, 写出直到第四阶的项.我们从导数表开始.

n

f(n)(x)

f(n)(π/6)

0

sin(x)

1/2

1

cos(x)

\sqrt{3}/2

2

-sin(x)

-1/2

3

-cos(x)

-\sqrt{3}/2

4

sin(x)

1/2

这与我们用来求麦克劳林级数的表类似, 不过这里我们求π /6处的导数而不是0处的导数. 写出泰勒级数的标准公式:

\sum^\infty_{n=0}\frac{f^{(n)}(a)}{n!}(x-a)^n.

展开:

f(a)+f'(a)(x-a)+\frac{f''(a)}{2!}(x-a)^2+\frac{f^{(3)}(a)}{3!}(x-a)^3+\frac{f^{(4)}(a)}{4!}(x-a)^4+\cdots.

a = π / 6, 将上面表中的值代入上式得到sin(x)关于x = π / 6的泰勒级数为

\frac{1}{2}+\frac{\sqrt{3}}{2}(x-\frac{\pi}{6})+\frac{-1/2}{2!}(x-\frac{\pi}{6})^2+\frac{-\sqrt{3}/2}{3!}(x-\frac{\pi}{6})^3+\frac{1/2}{4!}(x-\frac{\pi}{6})^4+\cdots.

要将求和号的形式写出来比较难,所以只做一个小小的化简得到:

\frac{1}{2}+\frac{\sqrt{3}}{2}(x-\frac{\pi}{6})-\frac{1}{2\times2!}(x-\frac{\pi}{6})^2-\frac{\sqrt{3}}{2\times3!}(x-\frac{\pi}{6})^3+\frac{1}{2\times4!}(x-\frac{\pi}{6})^4+\cdots.

当然, 为了求四阶泰勒多项式P4(x) (仍关于中心x = π /6), 只需去掉后面的“ + …”. 若只想求P3(x),还要去掉最后的那项, 则最后一项的幂次变为3:

P_3(x)=\frac{1}{2}+\frac{\sqrt{3}}{2}(x-\frac{\pi}{6})-\frac{1}{4}(x-\frac{\pi}{6})^2-\frac{\sqrt{3}}{12}(x-\frac{\pi}{6})^3.

(现在将2!换成了2, 3!换成了6.)另一方面, 若想求P5(x), 需要在上面的表尾再加对应于n = 5的一行, 则得到另外的项(x -π / 6)5.

 另一个例子:(1 + x)1 / 2的麦克劳林级数是什么?因为我们要求麦克劳林级数,需要令a = 0. 画一个到四阶导的表.

n

f(n)(x)

f(n)(0)

0

(1+x)^{1/2}

1

1

\frac{1}{2}(1+x)^{-1/2}

1/2

2

-\frac{1}{4}(1+x)^{-3/2}

-1/4

3

\frac{3}{8}(1+x)^{-5/2}

3/8

4

-\frac{15}{16}(1+x)^{-7/2}

-15/16

现在写出麦克劳林级数的一般公式,

f(0)+f'(0)x+\frac{f''(0)}{2!}x^2+\frac{f^{(3)}(0)}{3!}x^3+\frac{f^{(4)}(0)}{4!}x^4+\cdots,

将上面表中的导数值代入可得

1+\frac{1}{2}x+\frac{-1/4}{2!}x^2+\frac{3/8}{3!}x^3+\frac{-15/16}{4!}x^4+\cdots.

化简得

1+\frac{x}{2}-\frac{x^2}{8}+\frac{x^3}{16}-\frac{5x^4}{128}+\cdots

实际上, 当x介于-1和1之间时,余项趋于0(这个证明比较棘手!). 所以当 - 1 < x < 1, 我们有

(1+x)^{1/2}=1+\frac{x}{2}-\frac{x^2}{8}+\frac{x^3}{16}-\frac{5x^4}{128}+\cdots

这是二项定理的一个特殊情形,即对 - 1 < x < 1, 有

\begin{align*}(1+x)^a=1&+ax+\frac{a(a-1)}{2!}x^2+\frac{a(a-1)(a-2)}{3!}x^3\\&+\frac{a(a-1)(a-2)(a-3)}{4!}x^4+\cdots\end{align*}

除非a是非负整数, 否则右边的级数在x > 1或x < -1时都发散. (在这种情况下, 右边实际为一个多项式. 能说出为什么吗?)

25.3 用误差项估算问题

在24.1.4节, 我们用三阶泰勒多项式P3来估算e - 1 / 10,然后用余项R3来说明近似程度的好坏.现在我们来重新看一下这些方法并把它们一般化.

为了设置问题背景, 考虑下面的两个相似的例子:

1. 用二阶泰勒多项式估算e1 / 3, 并估算误差;

2. 估算e1 / 3, 且误差不得大于1 / 10 000.

第二个问题要比第一个难. 你也看到了,在第一个问题中我们要讨论二阶泰勒多项式, 故在我们的公式中令N = 2.在第二个问题中, 我们实际是要找到N, 这是我们需要考虑的另一件事情.

 用这两个问题来检验一下求解估值(或近似)问题的一般方法.

1. 看一下要估算什么, 选择一个相关的函数f. 在我们上面的例子中,我们要估算e某式, 所以令f(x) = ex. 然后, 我们将令x = 1 / 3, 这是由于f(1 / 3) = e1 /3, 这就是我们要估算的量.

2. 选一个接近x值的数a, 这样f(a)就很理想了. 这就意味着,你应该能写出f(a)的值, 对f'(a)、f''(a)等等也一样.在我们的例子中, 我们将令a = 0, 因为它很接近1 / 3, 且e0较易计算.

3. 如我们上一节所做的那样, 做f的导数表. 它应该有三列,分别代表n、 f(n)(x)和f(n)(a)的值.若你知道所用的泰勒多项式的阶, 则这就是你需要的N的值,一定要保证表中导数计算到第(N + 1)阶. 否则,你就尽管一行行往下写吧, 直到厌烦为止, 只要需要, 就一直能写下去.

4. 若你不介意估算的误差, 直接跳到第8步; 否则, 写出RN(x)的公式:

\fbox{$R_N(x)=\frac{f^{(N+1)}(c)}{(N+1)!}(x-a)^{N+1}$}

确保注明“cax之间”,同时注意整个过程中用a的实际值替代a.

5. 若已知所用泰勒多项式的阶, 在上述公式中将N替换为该数;若不知道, 根据你所需要的误差的大小做猜测. 误差越小, N应该越大.对于很多问题来说, N = 2或3就可以了. 若该猜测值是错的,那应该很快就能知道, 这时只需用较大的值N重复这一步和下面两步.

6. 现在, 用你想用的值代换RN (x)公式中的x. 除了c以外,没有其他的未知变量, 且可以用不等式写下c的可能范围.在我们的例子中, 由a = 0和x = 1 / 3知, c介于两者之间,可写为0 < c < 1 / 3.

7. 求|RN (x)|的最大值, c在适当的区间里.这就是误差可能的大小. 若已知N的值, 就基本已经完成误差估算了.若不知道, 则用你想要的误差来与实际误差比较. 若实际误差较小,这就太好了, 你已经找到了一个较好的N值. 反之,你就要加紧回到步骤5再来一次. (我们将在25.3.6节讨论一些|RN(x)|极大化的方法.)

8. 最后, 是求实际估算的时候了!写下PN(x)的公式:

\begin{align*}P_N(x)=&f(a)+f'(a)(x-a)+\frac{f''(a)}{2!}(x-a)^2\\&+\frac{f^{(3)}(a)}{3!}(x-a)^3+\cdots+\frac{f^{(N)}(a)}{N!}(x-a)^N.\end{align*}

现在将aN换成前面所得值而得到一个只含有x的公式. 最后,写出近似

\fbox{$f(x)\cong P_N(x)$}

并代入所需的x的实际值. 右边将是你想要的量,而左边将是近似值.

9. 如果需要的话还有另一个信息:若RN (x)是正的, 则估算为低估;若RN (x)为负, 则估算是高估.这些结果遵从如下等式

\fbox{$f(x)=P_N(x)+R_N(x).$}

现在, 我们来看一下有关这些类型问题的5个例子.

25.3.1 第一个例子

 我们最好从前一节的两个问题开始.在第一个问题中, 我们想用二阶泰勒多项式来估算e1 / 3.这个问题其实与24.1.4节中包含e - 1 / 10的问题很相似.不管怎样, 我们还用前面的方法. 从选择f开始. 因为要求幂, 令f(x) =ex且注意e1 / 3就是f(1 / 3). 最后, 我们令x =1 / 3, 但这还不算完, 我们还要选择接近1 / 3的a使得ea足够精密. 如我前面提到的, 很自然的选0.

现在, 该写导数表了.

n

fn(x)

fn(0)

0

ex

1

1

ex

1

2

ex

1

3

ex

1

我求到3阶导, 因为它刚好大于2,我们需要二阶泰勒多项式(即N = 2). 好, 继续. 误差项为

R_N(x)=\frac{f^{(N+1)}(c)}{(N+1)!}x^{N+1},

其中c介于0与x之间. 注意在RN (x)的标准公式中,我将a换成了0. 现在, 我们知道N = 2, 所以我们实际需要

R_2(x)=\frac{f^{(3)}(c)}{3!}x^3=\frac{​{\rm e}^c}{6}x^3.

在前面的表中, 将中间一列的最后一行的x换成c,得到f(3)(c) = ec. 现在将x换为1 / 3可得

R_2(1/3)=\frac{​{\rm e}^c}{6}(1/3)^3=\frac{​{\rm e}^c}{162};

这里c介于0与x = 1 / 3之间, 故0 < c < 1 / 3.取绝对值有:

|R_2(1/3)|=\left|\frac{​{\rm e}^c}{162}\right|=\frac{​{\rm e}^c}{162},

这是因为ec必为正. 接下来, 我们需要最大化|R2 (1 / 3)|. 由于ec关于c递增, 最大值出现在c= 1/ 3时. 这就有

|R_2(1/3)|=\frac{​{\rm e}^c}{162}<\frac{​{\rm e}^{1/3}}{162}.

似乎有一个问题, 我们不知道e1 / 3是多少.这其实是该问题的首要点!没关系, 我们来粗略的高估一下e1 /3. 你知道, e < 8, 所以e1 / 3 < 81 / 3,而81 / 3为2.我为什么选8呢?因为我可以什么都不用想的直接取它的三次方根!总之,运用不等式e1 / 3 < 2, 前面|R2 (1 / 3)|的不等式变为

|R_2(1/3)|=\frac{​{\rm e}^c}{162}<\frac{​{\rm e}^{1/3}}{162}<\frac{2}{162}=\frac{1}{81}.

所以误差不大于1 / 81. 我们仍需求估算值. 写下P2(x)的公式, 运用结果a = 0:

P_2(x)=f(0)+f'(0)x+\frac{f''(0)}{2!}x^2.

根据前面的表, 将f(0)、f'(0)和f''(0)换为1:

P_2(x)=1+x+\frac{1}{2}x^2.

最后, 令x = 1 / 3可得

P_2(1/3)=1+\frac{1}{3}+\frac{1}{2}(\frac{1}{3})^2=\frac{25}{18}.

由于f(x) \cong P_2 (x), 我们有

f(1/3)\cong P_2(1/3).

运用f(x) = ex, 我们有

{\rm e}^{1/3}=f(1/3)\cong P_2(1/3)=\frac{25}{18}.

我们已经得到了|R2 (1 / 3)| < 1 / 81,所以估算值至少精确到1 / 81. 其实, 因为R2 (1 / 3)是正的,我们的估算值25 / 18相对于e1 / 3真实值是低估了.

25.3.2 第二个例子

 我们将讨论25.3节的第二个例子:估算e1 / 3的值, 且误差小于1 / 10 000. 与前一个例子一样,我们令f(x) = ex,a = 0, 最后令x = 1 / 3, 我们有

R_N(x)=\frac{f^{(N+1)}(c)}{(N+1)!}x^{N+1},

其中c介于0与x之间. 我们已经从前一个例子知道,不能令N = 2, 因为会得到一个最大的误差1 / 81,而我们需要误差小于1 / 10 000. 所以, 我们来看一下N = 3是否可行.现在误差项为

R_3(x)=\frac{f^{(4)}(c)}{4!}x^4=\frac{​{\rm e}^c}{24}x^4,

其中c介于0与x之间. 令x = 1 / 3可得

R_3(1/3)=\frac{​{\rm e}^c}{24}(\frac{1}{3})^4=\frac{​{\rm e}^c}{24\times81},

其中0 < c < 1 / 3. 我们仍引用前一节的结论,当c介于0与1 / 3之间时, ec < 2:

|R_3(1/3)|=\frac{|{\rm e}^c|}{24\times81}<\frac{2}{24\times 81}=\frac{1}{972}.

这个结果并不小于1 / 10 000, 所以N = 3不够大.我们试一下N = 4. 重复上面的步骤, 我们有

R_4(x)=\frac{f^{(5)}(c)}{5!}x^5=\frac{​{\rm e}^c}{120}x^5,

所以令x = 1 / 3, 可知

R_4(1/3)=\frac{​{\rm e}^c}{120}(\frac{1}{3})^5=\frac{​{\rm e}^c}{120\times243}.

c还是介于0与1/3之间, 同样有ec < 2, 所以

|R_4(1/3)|<\frac{2}{120\times243}=\frac{1}{14~580}.

(若想用计算器来计算最后的那个分数, 再想一下,其实你可以将2 / 120化简为1 / 60, 然后算出6 × 243,再乘以10, 最后写在分母上.)不管怎样, 我们知道|R4 (1 / 3)|远小于1 / 10 000, 所以目的达到了: 我们可令N = 4,那估算值是多少呢?我们需要求出P4 (1 / 3). 一般的, 当a = 0,四阶泰勒多项式P4

P_4(x)=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+\frac{x^4}{4!},

所以

P_4(\frac{1}{3})\!=\!1+\frac{1}{3}\!+\!\frac{(1/3)^2}{2}\!+\!\frac{(1/3)^3}{6}\!+\!\frac{(1/3)^4}{24}\!=\!1+\frac{1}{3}\!+\!\frac{1}{18}\!+\!\frac{1}{162}\!+\!\frac{1}{1~944}\!=\!\frac{2~713}{1~944}.

{\rm e}^{1/3}=f(1/3)\cong P_4(1/3)=\frac{2~713}{1~944}.

所以, 我们可以将前面一个例子中的估算值25 /18替换为一个更好的估算, 即2 713 1 944.这个新的估算值保证与e1 / 3真实值误差在1 / 10 000以内.作为验证, 我的确用计算器算出2 713 /1 944精确到5位小数的值为1.395 58, 而e1 /3精确到5位小数为1.395 61. 这些量最多差0.000 04,显然在允许的范围1 / 10 000 = 0.000 1之内.

25.3.3 第三个例子

 这里有一个问题:估算\sqrt{27} , 误差不大于1 / 250. 根据前面的方法,我们需要选择一个合适的函数fax值. 一个较好的选择是令f(x)= \sqrt x, 或者f(x) = x1 / 2, 随便哪个都行.我们要估算f(27) = \sqrt {27} 的值, 所以最后令x = 27.现在要找一个接近27且易求平方根的数. 似乎25就可以, 我们令a = 25,这是第一步. 现在看第二步, 画一个导数表.

n

fn(x)

fn(25)

0

x^{1/2}

5

1

\frac{1}{2}x^{-1/2}

1/10

2

-\frac{1}{4}x^{-3/2}

-1/500

3

\frac{3}{8}x^{-5/2}

3/8×1/55

记住, 要填这个表, 在首行的中间那一列 填上x1 / 2,然后连续求几次导, 将结果填在中间列的后面几行. 最后,右边那列的输入是将值a = 25代入所得值.困难是我们不知道这个表需要填到第几行. 或可能需要更多行.

现在我们来看误差项

R_N(x)=\frac{f^{(N+1)}(c)}{(N+1)!}(x-25)^{N+1},

其中c介于0与25之间. 因为我们关注的是x = 27,将其代入:

R_N(27)=\frac{f^{(N+1)}(c)}{(N+1)!}(27-25)^{N+1}=\frac{f^{(N+1)}(c)}{(N+1)!}2^{N+1},

其中25 ≤ c ≤ 27. 现在, 感觉有多幸运?或许N =0就够好了!我们来试一下:

|R_0(27)|=\left|\frac{f'(c)}{1!}(27-25)^1\right|=\frac{1}{2}c^{-1/2}\times2-c^{-1/2},

其中我们利用前面的表来求f'(c)并去掉了绝对值,因为所有数都是正的. 现在的大问题是, 对给定的25 ≤ c ≤ 27,c - 1 / 2有多大?注意c - 1 / 2关于c递减, 所以当c =25有最大值. 则c - 1 / 2即25 - 1 / 2 = 1 / 5. 所以,我们有

|R_0(27)|=c^{-1/2}\le 1/5.

故误差可能高达1 / 5. 有点太高了:我们需要误差不大于1/ 250. 所以选择N = 0, 显然有点太过于乐观了!我们需要更好点.试一下N = 1, 则

|R_1(27)|=\left|\frac{f''(c)}{2!}(27-25)^2\right|=\left|-\frac{1}{4}c^{-3/2}\times \frac{1}{2!}\times2^2\right|=\frac{c^{-3/2}}{2}.

同样用前面的表来求f''(c). 这次我要用绝对值, 因为R1(27)是负的(肯定的, 我们正朝高估发展). 还是当c最小时c - 3 /2最大, 即c = 25, 这时表达式为25 - 3 / 2 = 1 / 125, 所以

|R_1(27)|=\frac{c^{-3/2}}{2}\le\frac{1}{125}\times\frac{1}{2}=\frac{1}{250}.

这就意味着误差不大于1 / 250, 而这正是我们想要的.因此取N = 1, 我们只需求P1 (27). (因为N = 1,这里我们其实运用了线性化.)总之, 我们知道了

P_1(x)=f(25)+f'(25)(x-25)=5+\frac{1}{10}(x-25),

其中我们从前面的表中得到f(25)和f'(25)的值, 令x =27, 我们有

P_1(27)=5+\frac{1}{10}(27-25)=\frac{26}{5}.

我们得到\sqrt {27} 近似等于26 / 5的结论,其实这两个数之间的差在1 / 250之内, 且26 / 5高估了\sqrt {27} (因为误差项R1 (27)是负的). 事实上, 计算器算出的\sqrt {27} 约为5.196 15, 而26 / 5 = 5.2的差在1 / 250之内. 对N =2或更大的值的情况, 估算值不会错, 反而会更好,不过数会变得更杂乱一些.

25.3.4 第四个例子

 为了提出本节的问题,我们将前面的问题做一个小的变动. 我们将\sqrt {27} 换成\sqrt {23} , 现欲估算\sqrt {23} 的误差不大于1 / 250的值.这也没比前面的例子更难多少, 是吧?然而, 也不尽然.我们来看下会发生什么. 我们仍将采用f(x) = x1 / 2a =25的泰勒级数, 不过这里需要将x = 27换为x = 23.我们来看一下在前一个例子中表现很好的余项R1

|R_1(23)|=\left|\frac{f''(c)}{2!}(23-25)^2\right|=\left|-\frac{1}{4}c^{-3/2}\times \frac{1}{2!}\times(-2)^2\right|=\frac{c^{-3/2}}{2}.

这就是前面一个例子的误差项!不过有一个很重要的不同:现在c介于23和25之间.所以 \frac{1}{2}c^{ - 3 / 2}有多大呢?这个量仍关于c递减,所以随着c的减小, 其值变成最大值, 即当c = 23时值最大.因此有如下的估算:

|R_1(23)|=\frac{c^{-3/2}}{2}\le\frac{23^{-3/2}}{2}.

不幸的是, 23 - 3 / 2并不比25 - 3 / 2好算.我们唯一可以肯定的是这种情况不够好. 你知道, \frac{1}{2} \cdot25^{ - 3 / 2} = 1 / 250, 但\frac{1}{2} \cdot 23^{ - 3 /2}大于1 / 250, 所以太大了. 所以N = 1不行, 需要试一下N = 2.

N = 2并运用25.3.3节的表, 有

|R_2(23)|=\left|\frac{f^{(3)}(c)}{3!}(23-25)^3\right|=\left|-\frac{3}{8}c^{-5/2}\times \frac{1}{3!}\times(-2)^3\right|=\frac{c^{-5/2}}{2},

其中23 ≤ c ≤ 25. 这次当c = 23时, c - 5 /2还是最大的, 因此我们有

|R_2(23)|=\frac{c^{-5/2}}{2}\le\frac{23^{-5/2}}{2}.

这个够好吗?没有计算器, 我们将不得不寻找一些估算23 -5 / 2的方法. 朋友,怎么来实现呢?我能想到的最好的办法就是找一个小于23的数,并且这个数的 - 5 / 2次幂是容易算出来的. 那应该是16, 而16 - 5/ 2 = 1 / 45 = 1 / 1 024, 所以

|R_2(23)|\le \frac{23^{-5/2}}{2}\le\frac{16^{-5/2}}{2}=\frac{1}{1~024}\times\frac{1}{2}=\frac{1}{2~048}.

这个值当然小于1 / 250, 所以采用N = 2是可以的,我们就可以用P2 (23)了. 现在

\begin{align*}P_2(x)&=f(25)+f'(25)(x-25)+\frac{f''(25)}{2!}(x-25)!\\&=5+\frac{1}{10}(x-25)-\frac{1}{500\times2}(x-25)^2\end{align*}

(再一次利用那个表), 将x用23代换, 我们有

P_2(23)=5+\frac{1}{10}(23-25)-\frac{1}{1~000}(23-25)^2=5-\frac{2}{10}-\frac{4}{1~000}=\frac{1~199}{250}.

因此对\sqrt {23} 的估算值是1 199 / 250.计算器对最后那个分数的计算结果等于4.796, 而\sqrt {23} 的计算结果为4.795 83. 这两个数的差的确在1 / 250范围内.

25.3.5 第五个例子

 我们再来看一个例子:用三阶泰勒级数估算cos(π / 3 - 0.01)的值, 并给出该估算的精确度. 我们需要选择一个函数,显而易见的函数是f(x) = cos (x), 所以我们要在后面令x = π / 3- 0.01. 那余弦值易求且接近于x的数是什么呢?显然a = π /3是一个天然的候选项. 故我们得到如下的表.

n

fn(x)

fn(π/3)

0

cos(x)

1/2

1

-sin(x)

-\sqrt{3}/2

2

-cos(x)

-1/2

3

sin(x)

\sqrt{3}/2

4

cos(x)

不需要

误差项R3 (x)为

R_3(x)=\frac{f^{(4)}(c)}{4!}(x-\frac{\pi}{3})^4=\frac{\cos(c)}{24}(x-\frac{\pi}{3})^4,

其中c介于x与π / 3之间.注意我们需要的是f(4)(c)而不是f(4)(π / 3),这就解释了上表中“不需要”的用处. 当x = π / 3 - 0.01, 我们有

R_3(\frac{\pi}{3}-0.01)=\frac{\cos(c)}{24}(\frac{\pi}{3}-0.01-\frac{\pi}{3})^4=\frac{\cos(c)}{24}(-0.01)^4=\frac{\cos(c)}{24\times10^8}.

(这里我们使用了( - 0.01)4 = (0.01)4 = (10 - 2)4 =10 - 8.)现在我们只需估算误差项的绝对值. 鉴于|cos (c)| ≤ 1, 我们有

\left|R_3(\frac{\pi}{3}-0.01)\right|=\frac{|\cos(c)|}{24\times10^8}\le \frac{1}{24\times10^8}=\frac{1}{2~400~000~000}.

太好了, 我们知道运用P3 (π/ 3 - 0.01)来估算cos (π / 3 -0.01)会使得估算值精确到很小的一个数1 / 2 400 000 000. 那P3(π / 3 - 0.01)是多少呢?一般的有

P_3(x)=f(\frac{\pi}{3})+f'(\frac{\pi}{3})(x-\frac{\pi}{3})+\frac{1}{2!}f''(\frac{\pi}{3})(x-\frac{\pi}{3})^2+\frac{1}{3!}f^{(3)}(\frac{\pi}{3})(x-\frac{\pi}{3})^3.

应用上面的导数表, 变为

P_3(x)=\frac{1}{2}-\frac{\sqrt{3}}{2}(x-\frac{\pi}{3})-\frac{1}{2}\times\frac{1}{2}(x-\frac{\pi}{3})^2+\frac{1}{6}\times\frac{\sqrt{3}}{2}(x-\frac{\pi}{3})^3.

x = π / 3 - 0.01并化简, 结果是

\begin{align*}P_3(\frac{\pi}{3}-0.01)&=\frac{1}{2}-\frac{\sqrt{3}}{2}(-0.01)-\frac{1}{4}(-0.01)^2+\frac{\sqrt{3}}{12}(-0.01)^3\\&=\frac{1}{2}+\frac{\sqrt{3}}{200}-\frac{1}{40~000}-\frac{\sqrt{3}}{12~000~000}.\end{align*}

这个表达式看起来很麻烦, 但其实还不错,唯一棘手的量是\sqrt 3, 不过它本身是容易估算的,至少表达式中没有三角函数. 总之, 由于f(π / 3 -0.01)近似等于P3 (π / 3 - 0.01), 我们有

\cos(\frac{\pi}{3}-0.01)=f(\frac{\pi}{3}-0.01)\cong\frac{1}{2}+\frac{\sqrt{3}}{200}-\frac{1}{40~000}-\frac{\sqrt{3}}{12~000~000},

精确到1 / 2 400 000 000之内.

25.3.6 误差项估算的一般方法

在前面所有例子中, 我们都要对某区间内取值的c来估算|f(N + 1)(c)|. 这里是相应的一些一般对策.

1. 不管c是多少, 你总能使用标准的不等式|sin (c)| ≤ 1和|cos (c)| ≤ 1.

2. 若函数f(N + 1)是递增的, 则它的值在右端点处最大.在前面的前两个例子中, 我们需求ec的最大值, 其中0 < c < 1/ 3. 由于ec关于c递增, 我们可以说ec < e1 / 3. 另一方面, 在24.1.4节的例子中, 我们也需要最大化ec, 不过这次 - 1 / 10 < c < 0. 同样, 由于ec关于c递增, 这个最大值就是e0 = 1, 即ec< e0 = 1.

3. 若函数f(N + 1)是递增的,则它的最大值f(N+1)(c)出现在区间的左端点处. 例如,若已知c介于1和5之间, 则最大值1 / (3 +c)4出现在区间[1,5]的左端点处, 因为1 / (3 + c)4关于c递减.所以上面的表达式在c = 1时最大, 相应的值为1 / 44 = 1 / 256.

4. 一般的, 为了求最大值, 你可能还要求函数f(N+1)的临界点.(具体求法见11.1.1节.)

25.4 误差估算的另一种方法

回想一下交错级数判别法(见22.5.4节). 该判别法表明若级数是交错的,且各项的绝对值递减趋于0, 则级数收敛.收敛的原因是部分和关于真实极限值形成一种像溜溜球一样的东西:这个部分和大点,下一个部分和小点, 再下一个大点, 等等. 每次,部分和都更接近真实极限值, 所以, 就像溜溜球正在失去动力.方法就是在级数中的每个点处, 每加一项都超越真实值,所以整个误差小于下一项的绝对值.

我们用符号来表述这些. 假设从某函数f开始, 并求它关于x =a的泰勒级数.若碰巧你还知道级数对某些特定的x值收敛于f(x)(就像我们讨论的一些函数一样),则可以写为

f(x)=\sum^\infty_{n=0}\frac{f^{(n)}(a)}{n!}(x-a)^n.

对那些你感兴趣的特定的x值,上述级数若是各项绝对值递减趋于0的交错级数, 则误差小于下一项. 即

|R_N(x)|\le\left|\frac{f^{(N+1)}(a)}{(N+1)!}(x-a)^{N+1}\right|.

这里没有讨厌的c可担心,这就足以成为我们运用这个理想结论的原因. 记住,上述结论只有当级数满足交错级数的三个条件时才成立!

 这里是该方法适用的例子.假设我们欲用麦克劳林级数来求定积分

\int^1_0\frac{1-\cos(t)}{t^2}{\rm d}t

误差不大于1 / 3 000的估算值. 该积分好像是一个瑕点在t= 0的反常积分, 但其实t = 0不是瑕点. 由洛必达法则可知

\lim_{t\to0}\frac{1-\cos(t)}{t^2}\mathop{=\!\!\!=}^{\mbox{\scriptsizel'H}}\lim_{t\to0}\frac{\sin(t)}{2t}=\frac{1}{2}.

即, 被积函数在t = 0并没有趋于无穷, 所以积分不是反常的.不管怎样, 刚刚只是观察, 现在我们要解决问题.

第一个有用的方法是先构造一个像上述积分的函数, 令

f(x)=\int^x_0\frac{1-\cos(t)}{t^2}{\rm d}t.

则我们要估算的积分是f(1). 需求f的麦克劳林级数. 为此,将cos (t)用它的麦克劳林级数代换, 该级数我们已在24.2.3节求得. 即

f(x)=\int^x_0\frac{1-(1-\frac{t^2}{2!}+\frac{t^4}{4!}-\frac{t^6}{6!}+\frac{t^8}{8!}-\cdots)}{t^2}{\rm d}t

若稍作化简, 可将其化简成

f(x)=\int^x_0(\frac{1}{2!}-\frac{t^2}{4!}+\frac{t^4}{6!}-\frac{t^6}{8!}+\cdots){\rm d}t.

现在求积分并计算在端点处的值:

\begin{align*}f(x)&=(\frac{t}{2!}-\frac{t^3}{3\times4}+\frac{t^5}{5\times6!}-\frac{t^7}{7\times8!}+\cdots)\bigg|^x_0\\&=\frac{x}{2!}-\frac{x^3}{3\times4!}+\frac{x^5}{5\times6!}-\frac{x^7}{7\times8!}+\cdots.\end{align*}

 尝试将上式用求和号表示是一个很好的做法.总之, 现在可将x = 1代入得

f(1)=\int^1_0\frac{1-\cos(t)}{t^2}{\rm d}t=\frac{1}{2!}-\frac{1}{3\times4!}+\frac{1}{5\times6!}-\frac{1}{7\times8!}+\cdots.

说实话, 这里我将两个更快的方法套在了一起. 首先,我将cos (t)用它的麦克劳林级数代替.还好我们已经在24.2.3节知道这对所有t都成立. 其次,我对无穷级数逐项求积分, 并声明对所有x都可以这么做.我们将在26.2.3看到这么做是可以的(虽然我们不会对其证明). 总之,上面的等式是正确的. 现在给定的积分有一个无穷级数的表达式.

现在唯一的问题是, 要求与真实值误差在1 /3 000内的近似值需取多少项?注意该级数是各项递减趋于0的交错级数,那么我们就可以运用下一项的绝对值大于误差的结论. 例如, 若用首项1 /2!近似积分, 则误差不大于1 / 3 × 4!, 即1 / 72. 这也太大了.那用前两项来近似该积分怎么样?即, 若用

\int^1_0\frac{1-\cos(t)}{t^2}{\rm d}t\cong\frac{1}{2!}-\frac{1}{3\times4!}=\frac{35}{72}?

怎样?那么误差小于下一项的绝对值:

|误差|\le\frac{1}{5\times6!}=\frac{1}{5\times720}=\frac{1}{3~600}.

这小于我们的容忍度1 / 3 000, 所以很好.我们完全可以说积分近似等于35 / 72, 误差小于1 / 3 000.(我们甚至可以说35 / 72是低估的,为什么?)我用能处理这类问题的计算机程序求了一下积分,得到积分值约为0.486 385, 而计算器计算的35 /72值等于0.486 111(精确到6位小数), 这两个数的差的确在1 /3 000内.

 作为练习,试着近似

\int^{1/2}_0\frac{\sin(t)}{t}{\rm d}t

容忍度为1 / 1 000, 用与上面相同的方法做.(你将会用到sin (t)的麦克劳林级数, 这个可在26.2节找到.)


from: http://www.ituring.com.cn/tupubarticle/2333

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值