泰勒公式及其在高中的运用
对于一些特殊的函数,由于多项式的运用更加简单,我们希望能使用多项式函数去近似地表达以便于研究这些函数的性质
而泰勒公式就可以帮助我们利用导数来拟合这些特殊函数(前面都是定义,想知道怎么推出来泰勒可以转到“推导与证明”部分)
首先根据导数我们可以很容易地得出一个式子
f(x)≈f(x0)+f′(x0)(x−x0)
也就是
f(x0+Δx)≈f(x0)+f′(x0)Δx
但是显然这个式子的精度并不高,仅在 Δx 较小的时候才接近,当 Δx 很大时误差就会很大
其实这个式子就是泰勒公式的一阶形式,下面给出泰勒展开的完整形式
f(x)=f(x0)0!(x−x0)0+f′(x0)1!(x−x0)1+f′′(x0)2!(x−x0)2+⋯+f(n)(x0)n!(x−x0)n+⋯
换种优雅的写法就是
f(x)=∞∑i=0f(i)(x0)i!(x−x0)i
当 f(x) 在包含 x0 的区间 (a,b) 上存在 (n+1) 阶导时,对于任意的 x∈(a,b) 这个式子都成立
这里我们可以把 f(x) 中第 n 项之后的项用一个函数 Rn(x) 表示,把第 0 项到第 n 项用一个函数 Pn(x) 表示,那么显然有
Rn(x)=f(n+1)(x0)(n+1)!(x−x0)n+1+f(n+2)(x0)(n+2)!(x−x0)n+2+⋯=∞∑i=n+1f(i)(x0)i!(x−x0)iPn(x)=n∑i=0f(i)(x0)i!(x−x0)if(x)=Pn(x)+Rn(x)
我们称这样的 f(x) 为 n 阶泰勒公式,Pn(x) 为 n 次泰勒多项式,Rn(x)=f(x)−Pn(x) 为 n 阶泰勒余项
特别地,当 x0=0 时我们称这个公式为麦克劳林公式
泰勒余项
我们令 ε 为 x 与 x0 之间的某个数,那么有
Rn(x)=f(n+1)(ε)(n+1)!(x−x0)n+1
用 n+1 阶导数表示的泰勒余项称为拉格朗日余项
Rn(x) 是比 (x−x0)n 高阶的无穷小,我们可以把它记作 o((x−x0)n),这样表示的余项称为皮亚诺余项
拉格朗日余项是需要定量讨论余项时使用的,皮亚诺余项是需要定性讨论余项时使用的
推导与证明
泰勒公式的推导
显然对于任意的特殊函数 h(x) ,我们一定可以找到一个无穷次的多项式函数 f(x),使得 h(x) 与 f(x) 上的任意一个点的取值均相等,即 h(x)=f(x),那么问题就转化为了如何求 f(x) 每一次项的系数
定理一
对于两个 n 次多项式函数 f(x) 与 g(x)
若在 x0 处满足 f(x0)=g(x0),f′(x0)=g′(x0),⋯,f(n)(x0)=g(n)(x0)
则 f(x)=g(x)
证明
设这两个多项式函数分别为 f(x)=a0+a1x+a2x2+⋯+anxn 与 g(x)=b0+b1x+b2x2+⋯+bnxn
由题有
f(x0)=a0+a1x0+a2x20+⋯+anxn0=b0+b1x0+b2x20+⋯+bnxn0=g(x0)f′(x0)=a1+2a2x0+⋯+nanxn−10=b1+2b2x0+⋯+nbnxn−10=g′(x0) ⋮f(n)(x0)=n!an=n!bn=g(n)(x0)
所以有 an=bn,把 这个式子依次往回代入,就能得到 an−1=bn−1,an−2=bn−2,⋯,a0=b0
那么我们就知道了 f(x) 与 g(x) 任意次项的系数都相等,即 f(x)=g(x)
启发
为了求 f(x) 每一次项的系数
不妨设 g(x)=a0+a1x+a2x2+⋯+anxn+⋯
我们希望能找到所有的 ai 使得 f(x)=g(x)
由定理一得,当 f(x0)=g(x0),f′(x0)=g′(x0),⋯,f(n)(x0)=g(n)(x0),⋯ 时 f(x)=g(x)
又因为 h(x)=f(x)
所以当 h(x) 在 x0 处 n 阶可导时有 h(x0)=g(x0),h′(x0)=g′(x0),⋯,h(n)(x0)=g(n)(x0),⋯
h(x0)=a0+a1x0+a2x20+⋯+anxn0+⋯=g(x0)h′(x0)=a1+2a2x0+⋯+nanxn−10+(n+1)an+1xn0+⋯=g′(x0) ⋮h(n)(x0)=n!an+(n+1)!an+1x0+⋯=g(n)(x0) ⋮
我们令 x0=0 则有
h(0)=a0h′(0)=a1h′′(0)=2!a2 ⋮h(n)(0)=n!an ⋮
从而有
a0=h(0)0!a1=h′(0)1!a2=h′′(0)2! ⋮an=h(n)(0)n! ⋮
那么我们就得到了 g(x) 的所有系数,写出来就是
h(x)=g(x)=h(0)0!+h′(0)1!x+h′′(0)2!x2+⋯+h(n)(0)n!xn+⋯
那么我们就成功地推导出了麦克劳林公式
同理我们只需要在最开始令 g(x)=a0+a1(x−a)+a2(x−a)2+⋯+an(x−a)n+⋯
就可以推出泰勒公式了
带皮亚诺余项泰勒公式的证明
这里再给出带皮亚诺余项的泰勒公式的证明方法,证明过程很有意思,感兴趣可以研究一下
即证明 Rn(x) 是比 (x−x0)n 高阶的无穷小
即证明 limx→x0Rn(x)(x−x0)n=0
根据 Rn(x) 的定义有
Rn(x)=f(x)−Pn(x)=f(x)−f(x0)0!(x−x0)0−f′(x0)1!(x−x0)1−⋯−f(n)(x0)n!(x−x0)n
两边同时反复求导
R′n(x)=f′(x)−f′(x0)0!(x−x0)0−f′′(x0)1!(x−x0)1−⋯−f(n)(x0)(n−1)!(x−x0)n−1R′′n(x)=f′′(x)−f′′(x0)0!(x−x0)0−f′′′(x0)1!(x−x0)1−⋯−f(n)(x0)(n−2)!(x−x0)n−2 ⋮R(n−1)n(x)=f(n−1)(x)−f(n−1)(x0)−f(n)(x0)(x−x0)
不难发现当 x=x0 时,有
R′n(x0)=R′′n(x0)=⋯=R(n−1)n(x0)=0
那么 limx→x0Rn(x)(x−x0)n 就是洛必达法则中的 00 型,由于每次使用之后上下都仍然是 00 型,那么我们就可以连续使用 n−1 次洛必达法则(不能连续使用 n 次是因为最后一次使用洛必达时的邻域可导性不满足),那么我们就可以得到
limx→x0Rn(x)(x−x0)n=limx→x0R′n(x)n(x−x0)n−1=⋯=limx→x0R(n−1)n(x)n!(x−x0)
我们把 n! 提出来并且把 R(n−1)n(x) 展开,得到
limx→x0R(n−1)n(x)n!(x−x0)=1n!limx→x0f(n−1)(x)−f(n−1)(x0)−f(n)(x0)(x−x0)x−x0=1n!limx→x0[f(n−1)(x)−f(n−1)(x0)x−x0−f(n)(x0)]=1n!limx→x0[f(n−1)(x)−f(n−1)(x0)x−x0−f(n)(x0)]=1n!limx→x0[f(n)(x0)−f(n)(x0)]=0
常见泰勒公式
无特殊说明均为麦克劳林公式
f(x)=ex=f(0)0!x0+f′(0)1!x1+f′′(0)2!x2+⋯=10!x0+11!x1+12!x2+⋯=1+x+x22!+x33!+⋯
f(x)=sinx=f(0)0!x0+f′(0)1!x1+f′′(0)2!x2+⋯=0+11!x+0−13!x3+0−⋯=x−x33!+x55!−x77!+⋯
f(x)=cosx=f(0)0!x0+f′(0)1!x1+f′′(0)2!x2+⋯=1+0−12!x2+0+14!x4+0−⋯=1−x22!+x44!−x66!+⋯
运用
估计函数值
泰勒公式的运用极其广泛,我们平时用电脑,手机或者计算器可以点一下就直接算出任意值的三角函数,log 等等,而这些几乎都是使用泰勒公式去近似拟合之后给出的估计值,由于阶数很高,所以精度也非常高,是很高效有用的估计特殊函数值的方法
要手算泰勒也很简单,主要是通过在方便计算函数取值的 x0 处(一般是 0 或者 1 处)展开来估值
注意到三角函数如果是在 0 处展开,如果要求 x 很大或很小时的函数值误差会很严重,我们可以先转换到 [−π,π] 区间后再估值
例子一
2022年高考全国甲卷理科数学第十二题
已知 a=3132,b=cos14,c=4sin14,求 a,b,c 的大小关系。
这道题如果用常规方法来做需要构造函数,个人认为考场上其实不太好想到,如果会使用泰勒公式,那么这题就可以不动脑轻松秒杀
b=cos14=1−142⋅2!+144⋅4!−⋯c=4sin14=4(14−143⋅3!+145⋅5!−⋯)
由于是和 3132 比较大小,所以精度就跟着感觉走,不需要太高,这里先展开两阶试试
b≈1−132=3132c≈1−196=9596
发现 b 和 a 一样大了,那就再展开一阶
b≈1−132+144⋅4!=3132+144⋅4!
所以 b>a
又因为 c−a≈9596−3132=148 远远大于 b 最后加上的 144⋅4!
所以 c>b>a 就搞定了
其实这种估值可以用一个小 trick,感性理解一下,当 x−x0<1 时,后一项多半会比前一项小很多,所以当下一项是正数时当前的泰勒展开就会比特殊函数小,当下一项是负数时当前的泰勒展开就会比特殊函数大,当然这个只是感性理解,并不严谨,如果遇到不确定大小的还是再多展开几阶才稳妥
例子二
2022年新高考全国卷I数学第七题
已知 a=0.1e0.1,b=19,c=−ln0.9,求 a,b,c 的大小关系。
没有区别,这里就不多说了
直接套公式展开就行
放缩
其实放缩也比较简单,直接把后面的多余项给除掉就可以了
不过如果展开式中有类似于 sinx 展开中的一会儿加一会儿减就不太能放缩(只在一定区间上满足恒大于或者恒小于)
例如 ex 的泰勒展开 ex=1+x+x22!+x33!+⋯
我们直接从中间截断,比如直接取前面的两项,当 x≥0 时显然有 ex≥1+x,当且仅当 x=0 时取等
类似于这样使用泰勒就可以用来放缩了
证明欧拉公式
这似乎不太是在高中的应用
有了泰勒展开,我们就有一种极为巧妙的方法证明欧拉公式
eix=isinx+cosx
写出 eix,sinx,cosx 的泰勒展开式(麦克劳林公式)
f(x)=eix=f(0)0!x0+f′(0)1!x1+f′′(0)2!x2+⋯=ieix00!x0+i2eix01!x1+i3eix02!x2+⋯=i0!x0+i21!x1+i32!x2+⋯=1+ix−x22!−ix33!+x44!+ix55!−⋯
sinx,cosx 前面写过这里就不写了,直接给结论
g(x)=sinx=x−x33!+x55!−x77!+⋯h(x)=cosx=1−x22!+x44!−x66!+⋯
然后我们惊讶地发现
i⋅g(x)+h(x)=x−x33!+x55!−x77!+⋯ +1−x22!+x44!−x66!+⋯=1+ix−x22!−ix33!+x44!+ix55!−⋯=f(x)
所以有
eix=isinx+cosx
UPD
2022.7.1 更改了部分格式和排版,增加了一个例子,另外对于放缩做了简单的介绍
博客园传送门
知乎传送门
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~