【数学笔记】泰勒公式

前言

学了泰勒公式几个月了,最近又有了一些新的理解,我尝逝着用一种非中值定理的方式证明泰勒公式,最后没有成功,但是证明了麦克劳林公式(雾)

这种方式可能会让初学者对泰勒公式有一个比较好的理解,所以整理一篇笔记,可以作为初学者学习泰勒公式的入门文章。

泰勒公式的引入

从近似开始

在函数图像上,我们经常会发现,有些函数的图像长得很像。

如图是f(x)=sinxf(x)=\sin xg(x)=xx36g(x)=x-\frac{x^3}{6}的图像,在一段范围内,它们几乎是重合的。

泰勒公式

那么,我们能否通过找一个函数的”近似函数“,来研究原函数的性质呢?

比如sin\sin函数,它是一个周期函数,当我们计算一些含有sin\sin函数的极限时,总是很难计算,如果能找一个函数来代替它,那么多方便啊。

而如何找出一个与原函数近似的函数呢?

求导!求导!

现在有一个人,他沿着直线走了一公里,如果我们想完全模仿他的运动过程,该怎么办呢?

首先,我们走的路程应该是一公里,但是这不够,平均速度也得和那个人一样。

平均速度一样也不够,那个人可能走一走停一停,所以加速度也得一样。

除此之外,加速度变化率也得相同,加速度变化率的变化率也得相同,变化率的变化率的变化率还相同……

如果做到这些,那么我们模仿的运动和那个人的运动也就没什么区别了。

聪明的你可能已经看出来了,如果我们想模仿一个函数,那就让它的导数,二阶导数,三阶导数……一直到nn阶导数都相同,如果这个nn趋近于无穷,那么模仿出来的函数就和原函数没什么区别了。

初中数学很有用

什么函数最容易求导,求极限呢?当然是多项式函数了,在近似函数的过程中,最方便的办法就是找一个多项式函数来近似。

所以,我们可以先设一个函数f(x)=a1+a2x+a3x2+a4x3+a5x4f(x)=a_1+a_2x+a_3x^2+a_4x^3+a_5x^4(后面先不要),然后先来近似一个函数,比如sin\sin函数。

为了方便求值,我们就把x=0x=0代入。

首先,近似函数本身和sin\sin函数的取值应该是相等的,于是我们有

a1+a20+a30+a40+a50=sin0=0a_1+a_2\cdot0+a_3\cdot0+a_4\cdot0+a_5\cdot0=\sin 0=0

a1=0a_1=0

然后两个函数分别求导,得到

a2+2a3x+3a4x2+4a5x3=(sinx)=cosxa_2+2a_3x+3a_4x^2+4a_5x^3=(\sin x) '=\cos x

x=0x=0的情况下,有

a2+2a30+3a402+4a503=1a_2+2a_3\cdot 0+3a_4\cdot 0^2+4a_5\cdot 0^3=1

a2=1a_2=1

依次类推,我们能得到一个方程组

{a1+a2x+a3x2+a4x3+a5x4=sinxa2+2a3x+3a4x2+4a5x3=cosx2a3+6a4x+12a5x2=sinx6a4+24a5x=cosx24a5=sinx\left\{\begin{matrix} a_1+a_2x+a_3x^2+a_4x^3+a_5x^4=\sin x \\a_2+2a_3x+3a_4x^2+4a_5x^3=\cos x \\2a_3+6a_4x+12a_5x^2=-\sin x \\6a_4+24a_5x=-\cos x \\24a_5=\sin x \end{matrix}\right.

x=0x=0代入,就有了一个线性方程组

{a1=sin0=0a2=cos0=12a3=sin0=06a4=cos0=124a5=sin0=0\left\{\begin{matrix} a_1=\sin 0=0 \\a_2=\cos 0=1 \\2a_3=-\sin 0=0 \\6a_4=-\cos 0=-1 \\24a_5=\sin 0=0 \end{matrix}\right.

解这个方程组,我们就得到了

{a1=0a2=1a3=0a4=16a5=0\left\{\begin{matrix} a_1=0 \\a_2=1 \\a_3=0 \\a_4=-\frac{1}{6} \\a_5=0 \end{matrix}\right.

带回原函数,我们发现我们得出来了一个函数f(x)=x16x3f(x)=x-\frac{1}{6}x^3

这就是开头我们引入的那个,和sinx\sin x长得很像的函数。

于是,我们发现,通过这样的待定系数法(初中数学 ),我们竟然推导出了一个函数的近似函数。

那么,透过现象看本质,我们能否总结出近似函数的普遍公式呢?

麦克劳林公式

假如我们现在要求一个函数f(x)f(x)的近似函数,按照刚才的办法,我们先设g(x)=a1+a2x+a3x2+a4x3+a5x4+......+anxn1g(x)=a_1+a_2x+a_3x^2+a_4x^3+a_5x^4+......+a_nx^{n-1}

然后列出方程组

{a1+a2x+a3x2+a4x3+a5x4+......+anxn1=f(x)a2+2a3x+3a4x2+4a5x3+......+(n1)anxn2=f(x)2a3+6a4x+12a5x2+......+(n2)(n1)anxn3=f(x)6a4+24a5x+......+(n3)(n2)(n1)anxn3=f(3)(x)(n1)!an=f(n1)(x)\left\{\begin{matrix} a_1+a_2x+a_3x^2+a_4x^3+a_5x^4+......+a_nx^{n-1}=f(x) \\a_2+2a_3x+3a_4x^2+4a_5x^3+......+(n-1)a_nx^{n-2}=f'(x) \\2a_3+6a_4x+12a_5x^2+......+(n-2)(n-1)a_nx^{n-3}=f''(x) \\6a_4+24a_5x+......+(n-3)(n-2)(n-1)a_nx^{n-3}=f^{(3)}(x) \\\cdots \cdots \\(n-1)!a_n=f^{(n-1)}(x) \end{matrix}\right.

x=0x=0带进去,得到

{a1=f(0)a2=f(0)2a3=f(0)6a4=f(3)(0)(n1)!an=f(n1)(0)\left\{\begin{matrix} a_1=f(0) \\a_2=f'(0) \\2a_3=f''(0) \\6a_4=f^{(3)}(0) \\\cdots \cdots \\(n-1)!a_n=f^{(n-1)}(0) \end{matrix}\right.

于是,我们得到了g(x)g(x)这个多项式函数各项的系数,也就是

{a1=f(0)a2=f(0)a3=f(0)2a4=f(3)(0)6an=f(n1)(0)(n1)!\left\{\begin{matrix} a_1=f(0) \\a_2=f'(0) \\a_3=\frac{f''(0)}{2} \\a_4=\frac{f^{(3)}(0)}{6} \\\cdots \cdots \\a_n=\frac{f^{(n-1)}(0)}{(n-1)!} \end{matrix}\right.

于是,我们能得到一个规律:an=f(n1)(0)(n1)!a_n=\frac{f^{(n-1)}(0)}{(n-1)!}

所以,

g(x)=f(0)+f(0)x+f(0)2x2+f(3)(0)6x3++f(n1)(0)(n1)!xn1g(x)=f(0)+f'(0)x+\frac{f''(0)}{2}x^2+\frac{f^{(3)}(0)}{6} x^3+\cdots+\frac{f^{(n-1)}(0)}{(n-1)!}x^{n-1}

=i=0nf(i)(0)i!xi=\sum_{i=0}^{n}\frac{f^{(i)}(0)}{i!}x^i

这个公式其实就是泰勒公式的一个拓展——麦克劳林公式。

泰勒公式

刚刚我们推导了麦克劳林公式(为什么我不直接推导泰勒公式呢?当然是因为推不出来了),那么泰勒公式又是什么呢?

刚刚我们推导麦克劳林公式时,为了方便直接令x=0x=0,而泰勒公式就是x0x\ne0的情况。

泰勒公式的内容如下:

f(x)f(x0)+f(x0)(xx0)+f(x0)2(xx0)2+f(3)(x0)6(xx0)3++f(n1)(x0)(n1)!(xx0)n1f(x)\approx f(x_0)+f'(x_0)(x-x_0)+\frac{f''(x_0)}{2}(x-x_0)^2+\frac{f^{(3)}(x_0)}{6} (x-x_0)^3+\cdots+\frac{f^{(n-1)}(x_0)}{(n-1)!}(x-x_0)^{n-1}

=i=0nf(i)(x0)i!(xx0)i=\sum_{i=0}^{n}\frac{f^{(i)}(x_0)}{i!} (x-x_0)^i

显然,当x0=0x_0=0的情况下,得到的公式就是麦克劳林公式。

余项是什么鬼?

在各种高等数学的教科书上,在讲述泰勒公式时都讲了余项这个东西,那么余项是什么呢?

我们说过,泰勒公式的本质是近似,近似总会有误差,余项实际上就是那个误差。

余项一般有两种,分别是拉格朗日余项和皮亚诺型余项。

其中,皮亚诺型余项给的定义是Rn(x)=o((xx0)n)R_n(x)=o((x-x_0)^n),这个很好理解,泰勒公式展开到第nn项得到的多项式是f(n)(0)(n)!(xx0)n\frac{f^{(n)}(0)}{(n)!}(x-x_0)^{n},它的更高阶的无穷小就是o((xx0)n)o((x-x_0)^n),如果nn足够大的话,这个余项(误差)就非常小。

拉格朗日余项则是 Rn(x)=f(n+1)(ξ)(xx0)n+1(n+1)!R_n(x)=\frac{f^{(n+1)}(\xi)(x-x_0)^{n+1}}{(n+1)!},它是由拉格朗日中值定理(见我之前的数学笔记)得到的。它主要是来得到第nn项多项式的误差,通过这个公式,我们能够知道,x0x_0的取值和xx越接近,误差就越小,所以使用麦克劳林公式有时的精确度就没有那么高。

一些函数的麦克劳林公式

在未来的数学学习中,我们经常需要一些函数的麦克劳林公式,如果“临阵磨枪”,在使用的时候再去推公式,就会耗费很多时间,所以最好记下一些常用函数的展开公式。

ex=1+x+12!x2+13!x3++1n!xn+o(xn)e^x=1+x+\frac{1}{2!}x^2+\frac{1}{3!}x^3+\cdots+\frac1{n!}x^n{}+o(x^n)

sinx=x13!x3+15!x5+(1)m1(2m1)!x2m1+o(x2m1)\sin x=x-\frac{1}{3!}x^3+\frac{1}{5!}x^5-\cdots+\frac{(-1)^{m-1}}{(2m-1)!}x^{2m-1}+o(x^{2m-1})

cosx=112!x2+14!x4+(1)m(2m)!x2m+o(xm)\cos x=1-\frac{1}{2!}x^2+\frac{1}{4!}x^4-\cdots +\frac{(-1)^m}{(2m)!}x^{2m}+o(x^m)

还有一些常用函数的展开式值得记住,如ln(1+x)\ln(1+x)1x+1\frac{1}{x+1}11x\frac{1}{1-x},限于篇幅,这里就不展示了。

泰勒公式和麦克劳林公式的应用

求极限

在我之前的数学笔记里讲过洛必达法则,那是一种求极限的方法,但是有的时候我们无法单纯通过洛必达法则求出极限,这时候就需要配合泰勒公式使用。

比如这道题

limΔx0xsinxx3\lim_{\Delta x\to 0} \frac{x-\sin x}{x^3}

这道题我们当然可以使用洛必达法则,但是那需要洛很多次(其实很方便 ),在本题中我们使用泰勒公式。

首先,我们发现函数如果没有sinx\sin x,那就变成了一个多项式函数,所以关键是把sinx\sin x展开掉。

那么展开几阶呢?

我们都知道

sinxx+o(x)\sin x\sim x+o(x)

sinxx13!x3+o(x3)\sin x \sim x-\frac{1}{3!}x^3+o(x^3)

sinxx13!x3+15!x5+o(x5)\sin x\sim x-\frac{1}{3!}x^3+\frac{1}{5!}x^5+o(x^5)

(其中,第一个展开式其实就是等阶无穷小,所以等价无穷小的实质就是泰勒展开的低阶形式)

在本题中,我们发现分式底下是x3x^3是三次项,在求极限时,上下应该是同阶的,所以我们展开到13!x3\frac{1}{3!}x^3就够用了。

因此我们得到了

limΔx0xx+13!x3+o(x3)x3\lim_{\Delta x\to 0} \frac{x-x+\frac{1}{3!}x^3+o(x^3)}{x^3}

=limΔx013!x3x3=\lim_{\Delta x\to 0} \frac{\frac{1}{3!}x^3}{x^3}

=16=\frac{1}{6}

总结一下,泰勒公式求极限的方式。

  1. 一般是乘除的时候才使用泰勒公式,如果是加减的话对精度的要求比较高,尽量不要使用。
  2. 如果是分式,上下展开的最高阶数应该相同。
  3. 最好在运算的过程中写一下皮亚诺余项(就是那个o(x3)o(x^3)),它可以帮你确定展开的精度够不够用。

【数学笔记】泰勒公式
http://luhaoren.xyz/2023/09/01/【数学笔记】泰勒公式/
作者
luhaoren
发布于
2023年9月1日
许可协议