大一小朋友注意!泰勒展式,学长眼中的泰勒展式!
(一些补充声明:1.本文适合理工科非数学系大一小朋友阅读。2.非学术贴,请当作低端科普娱乐贴阅读。) 以下为原文:
最近被不少大一小朋友问到关于泰勒展式的问题。作为一名终日翘课在外游手好闲不务正业的学长,看见小朋友们学习如此勤奋刻苦,我实在是既欣慰又惭愧啊!恰逢今晚宅在自习室无所事事,我就把自己对泰勒级数的一些残留印象贴出来,给可爱的小朋友们做个参考吧~
这几天我发现,很多小朋友在初学泰勒展式时,光顾着记公式、看证明,对泰勒展式的含义却没有理解透彻。这是不好的~
泰勒展式的目的其实十分明确:在某一点附近,用多项式函数去逼近(近似代替)一个函数。为了近似效果着想,我们恨不得这个多项式函数在那一点的值、导数乃至n阶导数都与原函数相等。这样一来,泰勒展式那一长串的式子也就很好理解了:它刚好满足我们的近似要求,不信自己动手求求导试试。
同样好理解的是,n取得越大,式子越长,近似效果也就越好。为了形象地说明这一过程,我们可以把n从小到大的一系列多项式函数画出来进行对比。下图是某函数在原点附近展开的图像(红色为该函数),n取1-5,x取0-1.
(p.s.顺便把这段图像的MATLAB代码放出来,考考小朋友们的编程能力。能猜到函数是什么吗?)
代码:
clear
x=0:.001:1;
y=1;
hold
on
for i=1:5
y=y+x.^i/factorial(i);
plot(x,y);
end
plot(x,exp(x),'r');hold off
图像:
http://fmn.rrimg.com/fmn056/20111108/2235/b_large_PKPo_20c7000188a8126a.jpg
可以看见,展开到3阶以上,即n>3时,多项式函数与原函数已经很贴近了。然而值得注意的是,泰勒展式只能在某点附近近似替代函数,是一种局部性质。当x取值太远,被忽略的余项就要发飙了。
http://fmn.rrimg.com/fmn061/20111108/2235/b_large_pyLw_20d400018944126a.jpg
当然,可以采用增大n的方式来暴力对抗余项误差:
http://fmn.rrfmn.com/fmn058/20111108/2240/b_large_XJ2B_254f0001a2b61262.jpg
上图取n=11,逼近效果又好起来了,但可以预见的是,当x继续增大,误差也会再次变大。
爱动脑筋的小朋友可能会问,有没有什么办法一劳永逸地解决误差问题?有,但是比较麻烦,那就是:把n取为无穷大。细心的小朋友会顿生疑窦,无穷多个数相加有意义吗?
问得好。无穷个数作和,这正是[级数]研究的问题。因此,泰勒公式又称为泰勒级数。级数理论定义,无穷个数的和是一个有限数的话,便称级数“收敛”;无穷则叫“发散”。对于一列由无穷个函数相加构成的级数,若x取某值时,函数的和收敛,称级数在该点“点态收敛”;使函数项级数点态收敛的点构成级数的“收敛域”。级数理论告诉我们,幂函数级数(即n取无穷时的泰勒展式)满足一定条件时是存在收敛域的。至于条件是什么,小朋友们不要着急,今后总会学的~
顺便提一句,如果只展开到x最低次方项,泰勒展式就成了微分公式。因此,泰勒展式也可以看作高级微分公式,或者微分公式的推广~
有的小朋友可能会问:这么复杂的公式学了有什么用?别着急,不会让你白学的。事实上,翻开任何一本物理教材,你都会发现,泰勒公式几乎无处不在--好在大都只用求一两阶就够了。因此,(语重心长地)小朋友们一定要学好泰勒展式啊!
现在我们看一下另一段代码。
clear
x=-pi:.001:pi;
y=1/2;
for i=1:10000
y=y-2*sin((2*i-1)*x)/(2*i-1)/pi;