前言
学了泰勒公式几个月了,最近又有了一些新的理解,我尝逝着用一种非中值定理的方式证明泰勒公式,最后没有成功,但是证明了麦克劳林公式(雾)
这种方式可能会让初学者对泰勒公式有一个比较好的理解,所以整理一篇笔记,可以作为初学者学习泰勒公式的入门文章。
泰勒公式的引入
从近似开始
在函数图像上,我们经常会发现,有些函数的图像长得很像。
如图是f(x)=sinx和g(x)=x−6x3的图像,在一段范围内,它们几乎是重合的。

那么,我们能否通过找一个函数的”近似函数“,来研究原函数的性质呢?
比如sin函数,它是一个周期函数,当我们计算一些含有sin函数的极限时,总是很难计算,如果能找一个函数来代替它,那么多方便啊。
而如何找出一个与原函数近似的函数呢?
求导!求导!
现在有一个人,他沿着直线走了一公里,如果我们想完全模仿他的运动过程,该怎么办呢?
首先,我们走的路程应该是一公里,但是这不够,平均速度也得和那个人一样。
平均速度一样也不够,那个人可能走一走停一停,所以加速度也得一样。
除此之外,加速度变化率也得相同,加速度变化率的变化率也得相同,变化率的变化率的变化率还相同……
如果做到这些,那么我们模仿的运动和那个人的运动也就没什么区别了。
聪明的你可能已经看出来了,如果我们想模仿一个函数,那就让它的导数,二阶导数,三阶导数……一直到n阶导数都相同,如果这个n趋近于无穷,那么模仿出来的函数就和原函数没什么区别了。
初中数学很有用
什么函数最容易求导,求极限呢?当然是多项式函数了,在近似函数的过程中,最方便的办法就是找一个多项式函数来近似。
所以,我们可以先设一个函数f(x)=a1+a2x+a3x2+a4x3+a5x4(后面先不要),然后先来近似一个函数,比如sin函数。
为了方便求值,我们就把x=0代入。
首先,近似函数本身和sin函数的取值应该是相等的,于是我们有
a1+a2⋅0+a3⋅0+a4⋅0+a5⋅0=sin0=0
a1=0
然后两个函数分别求导,得到
a2+2a3x+3a4x2+4a5x3=(sinx)′=cosx
再x=0的情况下,有
a2+2a3⋅0+3a4⋅02+4a5⋅03=1
a2=1
依次类推,我们能得到一个方程组
⎩⎨⎧a1+a2x+a3x2+a4x3+a5x4=sinxa2+2a3x+3a4x2+4a5x3=cosx2a3+6a4x+12a5x2=−sinx6a4+24a5x=−cosx24a5=sinx
把x=0代入,就有了一个线性方程组
⎩⎨⎧a1=sin0=0a2=cos0=12a3=−sin0=06a4=−cos0=−124a5=sin0=0
解这个方程组,我们就得到了
⎩⎨⎧a1=0a2=1a3=0a4=−61a5=0
带回原函数,我们发现我们得出来了一个函数f(x)=x−61x3
这就是开头我们引入的那个,和sinx长得很像的函数。
于是,我们发现,通过这样的待定系数法(初中数学 ),我们竟然推导出了一个函数的近似函数。
那么,透过现象看本质,我们能否总结出近似函数的普遍公式呢?
麦克劳林公式
假如我们现在要求一个函数f(x)的近似函数,按照刚才的办法,我们先设g(x)=a1+a2x+a3x2+a4x3+a5x4+......+anxn−1
然后列出方程组
⎩⎨⎧a1+a2x+a3x2+a4x3+a5x4+......+anxn−1=f(x)a2+2a3x+3a4x2+4a5x3+......+(n−1)anxn−2=f′(x)2a3+6a4x+12a5x2+......+(n−2)(n−1)anxn−3=f′′(x)6a4+24a5x+......+(n−3)(n−2)(n−1)anxn−3=f(3)(x)⋯⋯(n−1)!an=f(n−1)(x)
把x=0带进去,得到
⎩⎨⎧a1=f(0)a2=f′(0)2a3=f′′(0)6a4=f(3)(0)⋯⋯(n−1)!an=f(n−1)(0)
于是,我们得到了g(x)这个多项式函数各项的系数,也就是
⎩⎨⎧a1=f(0)a2=f′(0)a3=2f′′(0)a4=6f(3)(0)⋯⋯an=(n−1)!f(n−1)(0)
于是,我们能得到一个规律:an=(n−1)!f(n−1)(0)
所以,
g(x)=f(0)+f′(0)x+2f′′(0)x2+6f(3)(0)x3+⋯+(n−1)!f(n−1)(0)xn−1
=i=0∑ni!f(i)(0)xi
这个公式其实就是泰勒公式的一个拓展——麦克劳林公式。
泰勒公式
刚刚我们推导了麦克劳林公式(为什么我不直接推导泰勒公式呢?当然是因为推不出来了),那么泰勒公式又是什么呢?
刚刚我们推导麦克劳林公式时,为了方便直接令x=0,而泰勒公式就是x=0的情况。
泰勒公式的内容如下:
f(x)≈f(x0)+f′(x0)(x−x0)+2f′′(x0)(x−x0)2+6f(3)(x0)(x−x0)3+⋯+(n−1)!f(n−1)(x0)(x−x0)n−1
=i=0∑ni!f(i)(x0)(x−x0)i
显然,当x0=0的情况下,得到的公式就是麦克劳林公式。
余项是什么鬼?
在各种高等数学的教科书上,在讲述泰勒公式时都讲了余项这个东西,那么余项是什么呢?
我们说过,泰勒公式的本质是近似,近似总会有误差,余项实际上就是那个误差。
余项一般有两种,分别是拉格朗日余项和皮亚诺型余项。
其中,皮亚诺型余项给的定义是Rn(x)=o((x−x0)n),这个很好理解,泰勒公式展开到第n项得到的多项式是(n)!f(n)(0)(x−x0)n,它的更高阶的无穷小就是o((x−x0)n),如果n足够大的话,这个余项(误差)就非常小。
拉格朗日余项则是 Rn(x)=(n+1)!f(n+1)(ξ)(x−x0)n+1,它是由拉格朗日中值定理(见我之前的数学笔记)得到的。它主要是来得到第n项多项式的误差,通过这个公式,我们能够知道,x0的取值和x越接近,误差就越小,所以使用麦克劳林公式有时的精确度就没有那么高。
一些函数的麦克劳林公式
在未来的数学学习中,我们经常需要一些函数的麦克劳林公式,如果“临阵磨枪”,在使用的时候再去推公式,就会耗费很多时间,所以最好记下一些常用函数的展开公式。
ex=1+x+2!1x2+3!1x3+⋯+n!1xn+o(xn)
sinx=x−3!1x3+5!1x5−⋯+(2m−1)!(−1)m−1x2m−1+o(x2m−1)
cosx=1−2!1x2+4!1x4−⋯+(2m)!(−1)mx2m+o(xm)
还有一些常用函数的展开式值得记住,如ln(1+x),x+11,1−x1,限于篇幅,这里就不展示了。
泰勒公式和麦克劳林公式的应用
求极限
在我之前的数学笔记里讲过洛必达法则,那是一种求极限的方法,但是有的时候我们无法单纯通过洛必达法则求出极限,这时候就需要配合泰勒公式使用。
比如这道题
Δx→0limx3x−sinx
这道题我们当然可以使用洛必达法则,但是那需要洛很多次(其实很方便 ),在本题中我们使用泰勒公式。
首先,我们发现函数如果没有sinx,那就变成了一个多项式函数,所以关键是把sinx展开掉。
那么展开几阶呢?
我们都知道
sinx∼x+o(x)
sinx∼x−3!1x3+o(x3)
sinx∼x−3!1x3+5!1x5+o(x5)
(其中,第一个展开式其实就是等阶无穷小,所以等价无穷小的实质就是泰勒展开的低阶形式)
在本题中,我们发现分式底下是x3是三次项,在求极限时,上下应该是同阶的,所以我们展开到3!1x3就够用了。
因此我们得到了
Δx→0limx3x−x+3!1x3+o(x3)
=Δx→0limx33!1x3
=61
总结一下,泰勒公式求极限的方式。
- 一般是乘除的时候才使用泰勒公式,如果是加减的话对精度的要求比较高,尽量不要使用。
- 如果是分式,上下展开的最高阶数应该相同。
- 最好在运算的过程中写一下皮亚诺余项(就是那个o(x3)),它可以帮你确定展开的精度够不够用。