為什么會(huì)有泰勒公式
對(duì)于一些復(fù)雜的函數(shù),為了便于研究火欧,往往希望用一些簡(jiǎn)單的函數(shù)來近似表達(dá)棋电。
由于用多項(xiàng)式表示的函數(shù),只要對(duì)自變量苇侵,進(jìn)行有限次加赶盔、減、乘三種算術(shù)運(yùn)算榆浓,便能求出它的函數(shù)值來于未,因此我們經(jīng)常用多項(xiàng)式來近似表達(dá)函數(shù)。
——《高等數(shù)學(xué)》同濟(jì)七版
舉個(gè)例子陡鹃,cosx = 鄰邊/斜邊烘浦,所以cos35°,我們很難求出它的值萍鲸,最多只能判斷出它介于1到(√2)/2之間闷叉。
如果我們要較為準(zhǔn)確地求出cos35°的話,就可以使用泰勒公式(cos35° = c1 + c2x + c3x^2 + ...)脊阴,即用多項(xiàng)式來逼近原函數(shù)片习。
可能你會(huì)說,cos35°有什么難求的蹬叭,計(jì)算器一鍵搞定(其實(shí)計(jì)算器在計(jì)算cos35°的時(shí)候藕咏,也是用了泰勒公式)。
泰勒公式和麥克勞林
泰勒(Taylor)中值定理1:如果函數(shù)f(x)在x0處具有n階導(dǎo)數(shù)秽五,那么存在x0的一個(gè)鄰域孽查,對(duì)于該鄰域內(nèi)的任一x,有f(x) = f(x0) + f'(x0)*(x-x0) + f''(x0)/2!*(x-x0)^2 + ... +f(n)(x0)/n!*(x-x0)^n + Rn(x)坦喘,其中Rn(x) = o((x*x0)^n)盲再。
泰勒(Taylor)中值定理2:如果函數(shù)f(x)在x0的某個(gè)鄰域U(x0)內(nèi)具有n+1階可導(dǎo)西设,那么對(duì)于任一x∈U(x0),有f(x) = f(x0) + f'(x0)*(x-x0) + f''(x0)/2!*(x-x0)^2 + ... +f(n)(x0)/n!*(x-x0)^n + Rn(x)答朋,其中Rn(x) = f(n+1)(ξ)/(n+1)!*(x-x0)^(n+1)贷揽,這里 ξ是x0與x之間的某個(gè)值。
在 泰勒中值定理1 中梦碗,如果取x0 = 0禽绪, 那么有帶有皮亞諾余項(xiàng)的麥克勞林(Maclaurin)公式,f(x) = f(0) + f'(0)x + f''(0)/2!*x^2 + ... + f(n)(0)/n!*x^n + o((x)^n)洪规。
在?泰勒中值定理2中印屁,如果取x0 = 0, 那么有帶有皮亞諾余項(xiàng)的麥克勞林(Maclaurin)公式斩例,f(x) = f(0) + f'(0)x + f''(0)/2!*x^2 + ... + f(n+1)(ξ)/(n+1)!*(x-x0)^(n+1)? (x0< ξ <x)雄人。
——《高等數(shù)學(xué)》同濟(jì)七版
我們歸納一下,總而言之就是:如下圖2-1念赶。
幾何直觀理解
為什么f(x) = f(x0) + f'(x0)*(x-x0) + f''(x0)/2!*(x-x0)^2 + ... +f(n)(x0)/n!*(x-x0)^n + Rn(x)能近似地表達(dá)原函數(shù)础钠?泰勒公式的本質(zhì)到底是什么?
為了回答這個(gè)問題叉谜,我們需要借助幾何工具來直觀地理解泰勒公式珍坊。
先以展開點(diǎn) = 0為例(x0 = 0),即麥克勞林公式正罢,也以文章開頭提到的cosx為例,即cos0處的泰勒展開驻民。
因?yàn)樘├盏脑硎怯?b>多項(xiàng)式來逼近原函數(shù)翻具,所以設(shè):cosx = c1 + c2x + c3x^2 +...(c1、c2回还、c3...皆為常數(shù))裆泳。
現(xiàn)在我們用c1 + c2x + c3x^2 +...這個(gè)式子來層層逼近cosx在0處的情況。
(1)∵當(dāng)x=0時(shí)cosx的零階導(dǎo)數(shù)(即cox自己) = 1 ∴c1 + c2x + c3x^2 +... 的零階導(dǎo)數(shù)= 1柠硕,推出c1 = 1工禾。
(2)∵當(dāng)x=0時(shí)cosx的一階導(dǎo)數(shù) = -sinx = 0?∴c1 + c2x + c3x^2 +...的一階導(dǎo)數(shù) = c2 + 2*c3x?+... = 0,推出c2 = 0蝗柔。
(3)∵當(dāng)x=0時(shí)cosx的二階導(dǎo)數(shù) = -cosx = -1 ∴c1 + c2x + c3x^2 +...的二階導(dǎo)數(shù) = 2*c3 + 3*c4x?+... = 0闻葵,推出c3 = 1/2。
(4)以此類推癣丧,∵當(dāng)x=0時(shí)cosx的n階導(dǎo)數(shù) = a?∴c1 + c2x + c3x^2 +... 的n階導(dǎo)數(shù) = a槽畔,推出n!*c(n+1) + ...= a,則c(n+1) = a/n!
這種做法的原理是什么呢胁编?就是根據(jù)不斷地對(duì)cosx求導(dǎo)厢钧,來獲取更多關(guān)于cosx的信息鳞尔,通過這些信息從而模擬出cosx的函數(shù),從而近似計(jì)算cosx在某點(diǎn)的值早直。
如圖3-1所示:
第(1)步推出c1 = cosx寥假,使得c1 + c2x + c3x^2 +...和cosx在x = 0這個(gè)點(diǎn)上的值是一樣的。
第(2)步推出c2 = -sinx霞扬,使得c1 + c2x + c3x^2 +...和cosx在x = 0這個(gè)點(diǎn)上的斜率是一樣的糕韧,即你遞增的時(shí)候,我也遞增祥得。(為了方便觀看兔沃,我把藍(lán)線畫很直,看著好像不可導(dǎo)级及,不要在意這個(gè)乒疏。)
第(3)步推出c3 = -cosx,使得c1 + c2x + c3x^2 +...和cosx在x = 0這個(gè)點(diǎn)上的凹凸性是一樣的饮焦,即你凸起來的地方怕吴,我也凸起來。(甚至曲率也是一樣的县踢,即曲線的不平坦程度转绷,曲率公式為K = |y''|/(1+y'^2)^(3/2)。)
以此類推硼啤,證明了這種做法的原理议经,就是通過不斷地求導(dǎo),獲取更多的信息谴返,從而逼近原函數(shù)煞肾。
現(xiàn)在我不再以展開點(diǎn) = 0為例,即x0 ≠ 0嗓袱,這時(shí)就不再是麥克勞林公式了籍救,而是真正的泰勒公式。
繼續(xù)用cosx來當(dāng)小白鼠渠抹,設(shè)展開點(diǎn) = a蝙昙,即x0 = a,則我們現(xiàn)在就要層層逼近當(dāng)x = a時(shí)cosx的情況梧却。
還記得初中的時(shí)候奇颠,我們初學(xué)函數(shù)幾何,老師教了我們一些東西(旋轉(zhuǎn)和平移)放航,f(x)的幾何圖形如果想要往左平移a個(gè)單位大刊,則x要減去a,即f(x)要變成f(a-x)。
如圖3-2所示缺菌,這就是cosx向左平移了a個(gè)單位的結(jié)果葫辐。
和之前的展開點(diǎn)為0的例子一樣,只不過這次的展開點(diǎn)為a伴郁,但是我們照樣也搬用展開點(diǎn)為0的做法耿战,只要我們把cosx向左平移a個(gè)單位就好了,即cosx變成了cos(x-a)焊傅。
剩下的步驟剂陡,我就不一一寫出了。
故狐胎,麥克勞林公式是長成這樣的:f(x) = f(0) + f'(0)x + f''(0)/2!*x^2 + ... + f(n)(0)/n!*x^n + Rn(x)
而鸭栖,泰勒公式卻是長成這樣的:f(x) = f(x0) + f'(x0)*(x-x0) + f''(x0)/2!*(x-x0)^2 + ... +f(n)(x0)/n!*(x-x0)^n + Rn(x)