哈喽,我是草稿先生。今天“漫谈”的是泰勒公式。
泰勒公式是什么呢?简单地说,它就是一个计算工具,能够把像e^x, ln (1+x), sin x这类不易计算的函数近似成多项式:(以按x的幂展开为例)
这样计算起来就方便了。
严谨一点的写法是这样:
其中o(x^n)叫佩亚诺余项,可以简单理解为近似的误差。
近似结果叫泰勒公式,近似的过程叫展开成泰勒公式。
现在草稿先生解释一下自己理解的泰勒公式:
我们用微元法,把函数f(x)全部切成宽为Δx的小段,Δx极小;每一段的函数值相等,比如我们可以让这个值是左端点的函数值:
(类似的,各阶导数值也取左端点的,比如
是f'(x0),而不是f'(x0+Δx))
这个函数的表达式很复杂,所以我们想把它近似成多项式。
首先,我们确定一个“基底”x0,f(x0)和f(x0)的各阶导数是要能(轻松)算/表示出来的,以这个基底为起点去近似多项式(用p(x)表示)。所以p(x)=f(x).
p(x)是按(x-x0)的幂展开的多项式,
即
p(x)下面的n是展开的阶数,一会儿解释;o(x^n)是极小量,暂时不用管。
(可以理解为现在x0的地位类似于正常坐标系里的y轴)
下一步,我们确定p(x)中的常数项a0。因为p(x0)=f(x0)=a0,所以a0=f(x0).
接着,我们把次数+1,去考察a1(x-x0)中的系数a1.注意:此时代x=x0没用,因为a1(x0-x0)=0。怎么办?
分析:这一步我们要达到的目标是a1(x-x0)+a0,(直线),其斜率就是a1=f'(x0).
直线的表达式g(x)就是g(x)=f'(x0)(x-x0)+g(x0).显然g(x0)就是第一步求出来的a0,a1=f'(x0).
这时候我们要有一个思想:近似宽度(我自己起的名)。画出这条直线,我们已经精确出了x0和x0+Δx的函数值,但对于x>x0+Δx还没有模拟到,还有误差。
再下一步,我们确定a2,同样是近似,这一次要得到a2(x-x0)^2+a1(x-x0)+a0,由二次函数的求导公式,h(x)=a2(x-x0)^2+a1(x-x0)+a0在x=x0处的导数是2a2(x-x0)+a1,二阶导是2a2=f''(x0),所以a2=f''(x0)/2.
此时近似宽度为x0~x0+2Δx。
类似的方法,我们可以扩展到三次函数,四次函数……直到n次函数。因为
在x=x0处的n阶导为
所以
n可以无限大,我们的近似宽度也可以无限大;向x0左边也可以做类似的近似,结果类似(此时让函数/导数值为右端点的函数值即可)。
所以我们就得到了函数f(x)按(x-x0)的幂展开的带有佩亚诺余项的n阶泰勒公式:
PS:当n够大的时候o(x^n)就极小,所以也有写法去掉了o(x^n);
余项的写法有两种:一种是佩亚诺余项,另一种是拉格朗日余项Rn(x);
当“基底”刚好就是x=0时泰勒公式也叫麦克劳林公式。
实际应用中e^x,ln (1+x)和正余弦函数做泰勒展开的较多。
以e^x为例,很显然这个函数唯一好算的值就是x=0时e^0=1,所以展开成麦克劳林公式:
又因为e^x求导还是本身,所以x=0时函数值和各阶导的值都是1,即
(WPS编辑器自带,不用敲字了哈哈哈)
比如我们把x=0.1代入3阶公式,e^0.1=1+0.1+0.01/2+0.001/6
=1.105017,和计算器算的比一下:
已经很接近了!
ln(1+x)和e^x类似,唯一好算的函数/导数值就是x=0时ln(1+0)=0,对ln(1+x)求一阶导得到1/(1+x)=1(x=0时),二阶导是-1/(1+x)^2=-1,三阶导又变回1……具体过程不写了,直接上结果:
sinx的特点是导数是cosx~-sinx~-cosx~sinx~...一直循环的(cosx也差不多),麦克劳林公式是这样的:
今天的内容就到此为止了,泰勒公式本质上就是用各阶导一步一步逼近函数拟合的多项式,在计算函数值时十分好用。
联系客服