2013年12月11日 星期三

基礎先奠好:泰勒級數 Taylor Series


這條式子想必很多人在中學的時候看過,我第一眼看到的反應是「怎麼又長又湊巧啊wwww」。巧在於:後面分子上,x的次方剛好就是分母的階乘。這有什麼用啊?可以吃嗎?


數學在「根號2是1.414」這時起就已經「腐化不能吃,只能神領意會的蠢東西」了,如果你只是想找一些可以吃的東西,很抱歉,這裡的東西都不能吃,甚至有毒,會產生頭暈、目眩、噁心等症狀。


回歸正題,e^x這東西最重要的在於「求值」。試想一下e的數值吧,2.718,對嗎?我們來把x用1帶回上面的那條式子裡試試看:


瞧!這不就算出來了嘛!阿哈!這個自然底e不管怎麼瞪他就是瞪不出2.718,用那個展開式竟然算的出來!真是太神奇了,泰勒!


是時候該來看看泰勒級數( Taylor Series)的真面目了。泰勒級數長得像文章一開始那樣子一大串:


如果f(x)是無限可微函數,那麼f(x)就可以用泰勒級數表示為上面的形式。等號左邊那一坨裡,左邊大大的符號是Σ,讀作「西格瑪」,是「總和」的意思;中間分數上面是f(x)的n次微分,並且用a代進去;下面則是n階乘;右邊是(x-a)的n次方。

至於這個a,它代表的是「泰勒級數收斂的點」,這是很多教科書或資料會講的東西;其實就是「出發點」啦,畢竟泰勒級數是無窮的,不可能只用幾項就可以把像e或sin這些函數表達完整,因此我們需要一個「出發點」或「錨點」,好用來「固定」我們的函數,這樣求出來的值才會準確。隨著x和a的距離越拉越大,在n次方下差距就會和原來的函數越來越明顯。


如同上面這張圖,我們讓g(x)的a代0,而h(x)的a代-2,瞧,神奇的事發生了!在x=-2時,「固定點」為0的g(x)竟然和f(x)有差距!而在x=0時,換成h(x)和f(x)有落差!詳細的數字可以參考圖右的試算表,左中右行分別為:f(x)、g(x)、h(x)。

而泰勒級數取的多寡,也會影響級數對於原本的函數「描述的夠不夠準確」。我們先前提過,像e這種「莫名其妙」的函數是不可能單單用幾項x就可以完美地表達的。因此除了選取適當的固定點外,我們也會「盡我們運算能力所及」地多算幾項。


這裡我們繼續用上面的g(x),而另外定義i(x)、j(x)、k(x)、l(x)和m(x),讓他們等於前一個再加上一項指數更大,分母的階乘也更大的分數。我們可以看到的是:隨著x的次數越來越高,函數對於e^x的描述能力也就越強:雖然這樣看來還是有點不足,那是因為x次數再高下去,人就算不出來啦!那樣要算到天荒地老也只能算到一半!

真正電腦並不知道所謂的「e^x」或「sin x」是什麼鬼,程式的設計反而是利用泰勒級數開下去計算,就跟計算函數值的拉格朗日插值法類似:電腦運算能力比人強多了,x次數再高再繁雜也算的出來。


我們討論過了泰勒級數裡的a和後面被「......」省略掉的部份,現在該來談點嚴肅的話題了:我們在一開始見過e^x的展開,那麼為何(d e^x)(d x)=e^x?

看看e^x展開式裡的第三項,事實上是這樣的:


式子右邊分數上頭,用括號括起來的,正是e^a對a微分兩次(因為第二項其n=2),而a=0,得到e^0=1。也就是說,在這裡e^x的微分就是他自己。至於微分的證明,超出本文章的討論範圍,我會在這篇文章中跟諸看倌說清楚。



又是泰勒級數,這次是令人頭疼的sin!

看到這裡,諸位看倌難免有一種想法:「我是知道e^x算的出數值,可是印象中老師只教我們sin的特殊角啊?」

沒有錯,sin在x為某些特定的數值(如30°或60°等)跑出來的樣子很討喜,但是沒有辦法所有場合都可以用30°或45°塞進去sin求值:萬一是15°

不過在把15°塞進去之前,我們要先驗算看看30°塞進去是不是會得到0.5。


這樣子根本看不出來是什麼鬼嘛!問題出在哪裡?

問題出在單位換算。我們所講的「30°」跟「0、1、2、......」是有所不同的;這時我們勢必要採用「π」,也就是弧度來表示角度:至少「2π」還可以跟「6.28」畫上等號,「2°」就不行了。

我們已經知道,一個圓的弧度為2π,角度為360°,因而得知π弧度=180°角度=3.1416純粹數字。因此我們用π/6來代替30°:


算出來了!sin 30°=0.5!

因此我們再用π/12代替15°,至於過程就交由諸看倌和算盤吧!我們得到sin 15°≒0.25882。如果你背過的sin 15°是(√6-√2)/4,那也無妨,只是人能記得有限:萬一是。sin 18°呢?sin 9°呢?乃至sin 1°呢?

我們只要有一台計算機,和經過轉換的角度:sin π/10、sin π/20和sin π/180,再代進去sin的泰勒級數就可以了。但是實際上我們拿來計算的計算機,大多本身就有sin的功能了,所以還是在沒有計算機,非得要手算時才可能派上用場。


但是,他的二次項呢?

我們看到e^x的泰勒級數,有一個二次項x^2/2!,但是sin的泰勒級數裡,找不到二次項!雖然說sin函數是因此而被稱作「奇函數」,它沒有偶次項而最高次一定是奇次項。但是為什麼?

我們先就sin的泰勒級數來看:會只跑出一個x,那必定是分母為1或1!,而分子剛好也是一,右邊裡應當出現的(x-a)裡面的a變成了0:微分過後的函數,代a=0後其值為1!

sin 0=0,沒問題吧?因為「被神隱」的常數項,就是直接拿sin去代a=0,而任何數乘上0都是0,所以常數項會被消去。但是sin的微分──我們在一次項見到的那樣,我們設它為t(x)──把a=0帶進去,t(0)=1!

諸看倌有那麼一瞬間想到了cos 0,對嗎?

畢竟sin微分下去不會脫離三角函數的範疇太遠,我們得以知下面這條式子:


也就是說,sin的微分會變成cos。而cos的導函數(cos微分過後求得的函數)把0代進去仍會變成0,也就是sin,但是他的導函數代0進去反而會變成-1?

其實上面那句話「cos的導函數......也就是sin」其實是有謬誤的,這點我會在這裡解釋。


行文至此,想必諸看倌對於泰勒級數或多或少有點了解吧?

其實它就是一種「公式」,把想要展開的函數代進去,再代一個a就可以求得他的級數:再代一個x就可以求值。

畢竟,e^x或sin x再怎麼看,也看不出他的值。

沒有留言:

張貼留言