1 泰勒展開:多項式逼近函數
多項式是一個很棒的函數,好處之一是它可以求導無限多次。這種函數應該發予良⺠
證,實在太棒了!不過就這點而言還不夠特別,指數函數、三⻆函數也都可以發予良⺠證。
多項式還有一個好處是比較好代值,譬如說p(x)= x23− 5x18+ 7x11+ 6x3− 8,如果我
們要算p(3.01),很煩,但起碼還能算。那如果是遇到其它函數呢?譬如說sin(1),就不會
算那麼久了,因為根本不會。
數學上常常是化繁為簡、化未知為已知。所以就有個想法,當我遇到一個函數 f (x), 可不可以寫出一個多項式p(x),是可以跟它非常接近的呢?至少,在我要算的點的附近 是很接近的。譬如說剛剛的sin(1),如果我的多項式只能在[−1,2]上跟sin(x)很接近,那 其實也夠用了。待我將這個多項式寫出來之後,凡是在這「附近」裡面,我就可以將原本
想對 f (x)做的事情,改對p(x)做,舉凡加、減、乘、除、次方、代入、微分、積分等等。
所以當然,這個「附近」的範圍,能越大就越好。
舉個例子,下圖有條曲線 f (x)=x3−6x2+9x+3
1.58x ,它並不是多項式。現在,我找到一個 三次多項式p(x)= 12.241687 − 8.2648x + 1.7988x2− 0.1065x3,它與 f (x)在 x= 3的附近還 蠻接近的。離x= 3遠一點之後,兩條曲線才越差越多。千萬不要被我的例子的函數⻑相 嚇到了,在後面我們並不需要找出⻑這麼醜的多項式。
y
x f (x) p(x)
3
圖 1: 以多項式逼近函數
牛頓在處裡某些函數時,用了一些奇技淫巧寫出多項式來逼近1。後來他的一個學生,
Brook Taylor
,在 1715 年時,提出一般性的理論,探討求出一個函數的多項式逼近的一 般方法。如果我們現在想找個 p(x)在 x= a 的附近去逼近 f (x)。這個逼近的想法是這樣的:
首先,兩個函數值 f (a)與p(a)當然希望能一樣。接著,假如 f (x)可導的話,若它們在 x= a處的切線斜率也能夠一樣,那麼這兩個就更接近了。也就是說,兩者一階導數相等 f′(a)= p′(a),這叫做一階切近。再來,假如 f (x)二階可導,如果又有 f′′(a)= p′′(a),那 麼這兩個便更加接近了,這叫做二階切近。以此類推、得寸進尺。只要 f (x)是k 階可導,
我都希望 f(k)(a)與p(k)(a)能夠相等,這叫做k階切近。如果 f (x)在x= a處無窮可導的 話,那我就希望寫一個冪級數,可以與 f (x)在x= a處的任意階導數都相等。
1事實上,在微積分草創時期,除了牛頓也有其它許多數學家諸如Gregory、萊布尼茲、Johan Bernoulli、
隸美弗等等,都寫出某些函數的多項式逼近。
k階切近 f (x) p(x) f (a) = p(a) f′(a) = p′(a)
...
fk(a) = fk(a)
按此想法,便可以將一個無窮可導的函數 f (x)在x= a處展開成:
f (x)= f (a) + f′(a)(x− a) + f′′(a)
2! (x− a)2+ ··· + f(n)(a)
n! (x− a)n+ ...
= ∑∞
n=0
f(n)(a)
n! (x− a)n
(1.1)
它的一般項形式是 fn(a)
n! (x− a)n。為什麼會這樣呢?為了檢驗等號右邊的確就是我們理想 中的p(x),我們試著在等號右邊代x= a、微分之後代 x= a、微分兩次之後代x= a、···
看看是否分別都等於 f (a)、f′(a)、f′′(a)、···。
直接代a,一次項以上全部都有(x− a),所以代入以後全是零,只剩 f (a):
f (a)= f (a) + 0 + 0 + ··· (1.2)
若是我們對等號兩邊先微分一次,得到
f′(x)= 0 + f′(a)+f′′(a)
2! × 2(x − a) + ··· +f(n)(a)
n! × n(x − a)n−1+ ··· (1.3) 此時常數項 f (a)微分後不見了。至於二次以上的項,微分完都至少還有一個(x− a)。接 著代x= a,得到
f′(a)= 0 + f′(a)+ 0 + ··· + 0 + ··· (1.4) 所以在微分完之後代a 時,二次以上的項也全跟著不見了,於是只剩一次項。而原 來一次項 f′(a)(x− a)微分後,就是 f′(a)。
一般而言,微分n 次後
f(n)(x)= 0 + 0 + ··· + f(n)(a)+ f(n+1)(a)× (x − a) + ··· (1.5) 再代a。微分n次以後所有n−1次以下的項全部變成零,而n+1次以上的項,在微分完 以後全部都還有至少一個(x− a),所以之後再代a時,它們也全跟著不見了,於是只剩n 次項。而n次項 f(n)(a)
n! (x− a)n 微分n 次以後,也成為常數。值是多少呢?因為微分n次 以後會乘以n!2,所以就是 f(n)(a)
n! ×n! = f(n)(a)。在以上的檢驗過程中,你大概就能明白
為什麼一般項⻑那樣了,擺個n!在分⺟就是特意要拿來消的。
現在知道用k 階切近的辦法來將函數展開成多項式了,刻不容緩,我們馬上來試刀 吧!
2微分第一次會乘以n,微分第二次乘以n− 1,微分第三次乘以n− 2,···
試求ex 的馬克勞林展開。
解
所謂的馬克勞林 (Maclaurin) 展開,意思只不過是在x= 0處的泰勒展開,也就是 說
f (x)= f (0) + f′(0)x+f′′(0)
2! x2+ ... + f(n)(0)
n! xn+ ... (1.6)
我們想要寫出這個出來,就必須知道ex 在x= 0處的各階導數。不過這太容易了,ex 不管怎麼微分都還是ex,代0以後就是1。於是有
ex=1 + x +x2 2! +x3
3! + ... +xn n! + ...
=∑∞
n=0
xn n!
例題 11
試求sin(x)的馬克勞林展開。
解
sin(x)的高階導函數具有規律
f (x) = sin(x) f′(x) = cos(x) f′′(x) = −sin(x) f(3)(x) = −cos(x) f(4)(x) = sin(x) f(5)(x) = cos(x)
... ...
再配合sin(0)= 0、cos(0)= 1,便易知
sin(x)=x −x3 3! +x5
5! −x7 7! + ...
=∑∞
n=0
(−1)nx2n+1 (2n+ 1)!
cos(x)的情況十分類似,你就自己動手寫吧!
例題 12
ex 與sin(x)及cos(x)的高階導函數都有很簡單的規律,所以用一般的方法寫出馬克
勞林展開都是很容易的。而且收斂區間都是整個實數 3,所以就算代一百萬,兩邊也是 相等的。現在我們來檢查一件事,我剛剛說,只要在收斂區間內,本來想對 f (x),做的一 些事,可以改對p(x)做。我們知道ex 求導後是自己,於是我們將
1+ x +x2 2! +x3
3! + ... +xn n! + ...
作逐項求導,得到
0+ 1 + x +x2 2! +x3
3! + ... +xn n! + ...
3判斷收斂區間的方法留待後面介紹。
真的等於自己。我們再檢查sin(x)求導後是cos(x),將
x−x3 3! +x5
5! −x7 7! + ...
作逐項求導,得到
1−x2 2 +x4
4! −x6 6! + ...
果然就是cos(x)的展開。
式子 (1.1) 好用在它具有一般性。一般而言,只要 f (x)能夠求導k次,我就可以照著 操作寫出一個k 次多項式來逼近它。卻不代表我們只能這樣做,有時候用這個方法會因 為高階導數不太好寫而變得較為繁複。
事實上,我們還是可以根據各種不同函數的不同⻑相,用一些特殊的方法來寫出逼 近多項式出來。在 Brook Taylor 於 1715 年提出他的理論以前,那些十七世紀的微積分先 鋒們就各自寫出sin(x)、cos(x)、arctan(x)等等函數的展開,各自用了些奇奇怪怪的辦法。
不過放心,在此我們只介紹些基本、好掌握的辦法。
譬如說 1
1− x,除了用那個一般的做法外,也可直接寫出 1+ x + x2+ x3+ ... + xn+ ... = ∑∞
n=0
xn
為什麼呢?因為這就是無窮等比級數的和呀。從此還得知了,收斂區間就是−1 < x < 14。 那麼 1
1+ 2x 呢?把它看成 1
1− (−2x) 就可以了,也就是說,將−2x 代在 1
1− x 中的 x裡 面。於是就成為
1+ (−2x) + (−2x)2+ ... + (−1)n2nxn+ ... =∑∞
n=0(−1)n2nxn
至於收斂區間,我們也將−2x 代入−1 < x < 1,得到−1 < −2x < 1,再化簡成−1
2< x <12。 至於ln(1+ x)呢?我們知道它的導函數是 1
1+ x,所以我們先寫出 1− x + x2− x3+ ... =∑∞
n=0
(−1)nxn
然後作逐項積分,得到
C+ x −x2 2 +x3
3 − ... = C +∑∞
n=0
(−1)nxn+1 n+ 1
為了決定C 是多少,代x= 0,得到ln(1+ 0) = 0 = C + 0 + 0 + ...,所以C= 0。於是
ln(1+ x) =∑∞
n=0
(−1)nxn+1 n+ 1 = ∑∞
n=1
(−1)n−1xn n
5
4公比的絕對值要小於1
5這裡對足碼做了一點平移,新的n是舊的n加上1,原來的n從0開始,那麼新的n就會從1開始。而 (−1)n−1若改寫成(−1)n+1亦可,畢竟(−1)2= 1。
至於收斂區間的問題,原本 1
1+ x 的收斂區間是−1 < x < 1,我們是拿它作積分來的,所以 範圍大致一樣,唯有端點可能發生改變,變成−1 < x ≤ 16。如果你想知道為什麼會多個 1,你可以將1代入冪級數,得到 ∑∞
n=1
(−1)n−1
n ,交錯級數收斂7。
那如果是sin(x) cos(x)呢?可以先各自展開再相乘。也可以看成 sin(2x)
2 ,所以從sin(x) 的展開用2x代,然後整個除以2,便有
sin(2x)
2 =1
2
(2x−23x3 3! + ...)
=(
x−22x3 3! + ...)
那如果是arctan(x)怎麼辦呢?它求導後是 1
1+ x2 嘛,所以我們先寫出 1− x2+ x4− ... = ∑∞
n=0
(−1)nx2n
然後做逐項積分,得到
C+ x −x3 3 +x5
5 − ... = C +∑∞
n=0
(−1)nx2n+1 2n+ 1 為了決定 C 是多少,代x= 0,得到
arctan(0)= C + 0 + 0 + ...
所以C= 0,便知arctan(x)的展開就是
arctan(x)= x −x3 3 +x5
5 − ... =∑∞
n=0
(−1)nx2n+1 2n+ 1
接著各自將−1和1代入冪級數,都有交錯級數收斂,因此收斂區間也是從原本的−1 < x < 1 變成−1 ≤ x ≤ 1。
那如果是 p1+ x又怎麼辦呢?它就是(1+ x)12,高中曾學過二項式定理
(x+ y)n= C0nyn+C1nyn−1x+C2nyn−2x2+ ... +Cnnxn (1.7) 若 y= 1就是
(x+ 1)n= C0n+C1nx+C2nx2+ ... +Cnnxn
那是用在次方n 是正整數的情況,我們現在次方不是正整數,也可以用嗎?牛頓在處理 這問題的時候,將二項式定理推廣了,所以答案是可以的!所以我重寫一次
(x+ 1)α= C0α+C1αx+C2αx2+ ... (1.8) 這對任何實數α都成立。這樣你可能產生一個問題,像C
1 2
3 該如何計算?回想一下,
C37=7× 6 × 5 1× 2 × 3
6不包含−1是顯而易見的,因為代入ln(1+ x)會變成ln 0,然而對數裡必須是正的。
7一般來說,冪級數收斂不代表它就會收斂到原來函數,後面會再談這部份。
推廣方法就是照著寫
C
1 2
3 =
1
2× (−12)× (−32) 1× 2 × 3 = 1
16
從這推廣方法也可得知,本來式子 (1.7) 的寫法會停在Cnnxn。但次方非正整數的時候,式 子 (1.8) 可以一直寫下去,無窮多項。
於是我們現在就來處理 p1+ x,寫成
(1+ x)12= C012+C112x+C212x2+C312x3+ ...
前兩項的係數都不須特地算,因為任何數取0都是1、任何數取1都是自己。另外算一下
C
1 2
2 =
1
2× (−12) 1× 2 = −1
8
C
1 2
3 = 1 2× (−1
2)× (−3 2) 1× 2 × 3 = 1
16
假如你還要繼續多算幾項的話,其實不須要慢慢寫,只要每次都在分子分⺟各補一項就 好了。以C12
4 為例,
C
1 2
4 = 1 2× (−1
2)× (−3
2)×(−52)
1× 2 × 3×4 =1×(−52) 16×4 以此類推,要計算C512 時,就分子補上−7
2,分⺟補上5。所以 (1+ x)12 = 1 +x
2−x2 8 +x3
16− ... =∑∞
n=0
C
1
n2xn
至於arcsin(x),它求導後是 p 1
1− x2,我們可以先做(1+ t)−12 的展開 1−t
2+C2−12t2+C3−12t3+ ... = 1 −t 2+3t2
8 −5t3 16 + ...
接著代t= −x2,便有
1+x2 2 +x4
8 +5x6 16 + ...
好啦,接著可以做逐項積分啦,
C+ x + x3 2· 3+ x5
8· 5+ 5x7 16· 7+ ...
代x= 0,得到
arcsin(0)= 0 = C + 0 + 0 + ...
所以C= 0,於是arcsin(x)的展開就是
arcsin(x)= x + x3 2· 3+ x5
8· 5+ 5x7 16· 7+ ...
收斂區間由−1 < x < 1變成−1 ≤ x ≤ 1。判斷方法較難,但不知道亦無妨。
目前為止寫了這一堆,就是想呈現給你看,在許多時候我們都避開了需要高階求導 的辦法。因為那好用歸好用,但寫起來常常很麻煩。幸好我們常可以透過求導、積分、代 入、加減乘除等等手段,來將所要處理的函數,用更基本、我們知道如何展開的函數來導 出它的展開。以下將一些基本常見的函數展開整理在下面:
函數 冪級數展開 收斂區間
⋆ ex 1+ x +x2!2+x3!3+ ... +xn!n + ···
⋆ sin(x) x−x3!3+x5!5−x7!7+ ···
⋆ cos(x) 1−x2!2+x4!4−x6!6+ ···
⋆ 1− x1 1+ x + x2+ x3+ ··· + xn+ ··· (−1,1)
⋆ 1+ x1 1− x + x2− x3+ ··· + (−1)nxn+ ··· (−1,1)
⋆ ln(1+ x) x−x22+x33− ··· (−1,1]
arctan(x) x−x33+x55− ··· [−1,1]
⋆ (x+ 1)α C0α+C1αx+C2αx2+ ··· (−1,1) p1+ x 1+x2−x82+x163− ··· [−1,1]
arcsin(x) x+2·3x3 +8·5x5 + ··· [−1,1]
⋆ 請你背起來,其它的便可由這些推得。
⋆ 可以不背,能背起來更好。
只有五個要背而已,而且第一個實在很好記,第二、三個⻑得和第一個很像可以一起背,
第四個是無窮等比級數,第五個也只是二項式定理的推廣,所以記誦的負擔並不大。
試求xex 的馬克勞林展開。
解
先展開
ex= 1 + x +x2 2! +x3
3! + ···
接著整個乘以x,便有
xex= x + x2+x3 2! +x4
3! + ···
例題 13
求e−x2 的馬克勞林展開。
解 例題 14
先展開
et= 1 + t +t2 2!+t3
3!+ ···
接著用t= −x2代入,便有
e−x2= 1 − x2+x4 2! −x6
3! + ···
求 x2
1+ x3 的馬克勞林展開。
解
我們可以將 x2
1+ x3 拆成x2·1+ x1 3,所以先展開 1
1− (−x3)= 1 − x3+ x6− x9+ ···
然後跟x2相乘,也就是說每一項的次方都增加二,變成 x2
1+ x3= x2− x5+ x8− x11+ ···
也可以將其視為ln(1+ x3)的導函數再除以3,但應該還是前一個方法快些。
這題若以∑的形式來寫,就是 x2· 1
1+ x3= x2·∑∞
n=0
(−x3)n= x2·∑∞
n=0
(−1)nx3n= ∑∞
n=0
(−1)nx3n+2 例題 15
求 1
3− 2x 的馬克勞林展開。
解
注意分⺟那邊是3不是1,所以沒辦法直接套我們有背的那個。但這很容易解決,
只要將3提出來,便有 1 3· 1
1−2x3 =1 3·
(
1+ (2x 3 )+ (2x
3 )2+ (2x 3 )3+ ···
) 例題 16
將ex 於x= 2處做泰勒展開。
解
這次不是馬克勞林展開了,而是要在 x= 2的地方展開。有個小技巧!我先設 t= x − 2,那麼ex= et+2,在x= 2處就是在t= 0處。因此我們就有
et+2= e2· et= e2 (
1+ t +t2 2!+t3
3!+ ...
) 例題 17
此時再用t= x − 2代回去
e2+ e2(x− 2) +e2
2!(x− 2)2+e2
3!(x− 2)3+ ...
若以∑的形式來寫,就是
e2· et= e2·∑∞
n=0
tn n!
用t= x − 2代回去
e2·∑∞
n=0
(x− 2)n n! = ∑∞
n=0
e2
n!(x− 2)n
將ln(x)於x= 3處做泰勒展開。
解
這題也類似,在x= 3處做泰勒展開會做出形如∑an(x−3)n的冪級數,所以我們
就設 t= x − 3,使ln(x)變成ln(t+ 3),然後作馬克勞林展開,做完再代回 x。由於是
t+ 3不是t+ 1,所以寫成
ln(t+ 3) =ln3 + ln( 1+ 3t)
=ln3 + (
(t
3)−(t
3)2 2 +(t
3)3 3 − ···
)
接著代t= x − 3回去
=ln3 +(x− 3)
3 −((x− 3)
3 )2
2 +((x− 3)
3 )3 3 + ···
=ln3 +(x− 3)
3 −(x− 3)2
18 +(x− 3)3 81 + ···
若以∑的形式來寫,就是
ln(t+ 3) =ln3 + ln(1 +t 3)
=ln3 +∑∞
n=1
(−1)n+1 3n tn 接著代t= x − 3回去
=ln3 +∑∞
n=1
(−1)n+1
3n (x− 3)n
用這樣寫好像比較好喔。不但寫的人比較簡便,看的人也較一目了然。
例題 18
求ln( √1+ x
1− x
)的馬克勞林展開。
解
不要被ln
( √1+ x 1− x
)
的⻑相嚇到了,對數裡的乘除就是加減、對數裡的次方就是 乘。所以
ln( √1+x 1− x
)=1 2·(
ln(1+ x) − ln(1 − x))
=1 2·(∑∞
n=1
(−1)n+1xn
n −∑∞
n=1
−xn n
)
=1 2·∑∞
n=1
(−1)n+1+ 1
n xn
觀察當n是奇數的時候,(−1)n+1+1 = 1+1 = 2,然而當n是偶數的時候,(−1)n+1+1 =
−1 + 1 = 0。所以
=1 2·∑∞
n=0
2
2n+ 1x2n+1
=∑∞
n=0
x2n+1 2n+ 1 例題 19
求tan(x)的馬克勞林展開。
解
由於tan(x)= sin(x)
cos(x) 所以可以拿sin(x)與cos(x) 的展開來相除。這裡介紹另外一
招,待定係數法。就是先設
tan(x)= a0+ a1x+ a2x2+ a3x3+ ···
注意到tan(x)是奇函數,所以它必然只有奇次項。於是可以寫成
tan(x)= a1x+ a3x3+ ···
沒注意到也沒關係,等下還是會解出a0= a2= ··· = 0。然後我們寫成 sin(x)= tan(x) · cos(x)
所以就有
x−x3
3! + ··· =(
a1x+ a3x3+ ···)
· (
1−x2 2! + ···
)
比較等號兩邊的一次項,我們有
1= a1× 1 例題 110
接著再比較三次項,我們有
−1
6= a1×(
−1 2
)+ a3× 1
看我們需要將tan(x)展開到幾次項,就比較到幾次項。
2 泰勒展開的應用
在一開始介紹為什麼要做泰勒展開時,便已提過我們可以很好代值。譬如說sin(1), 我們可以寫出它的泰勒展開
x−x3 3! +x5
5! −x7 7! + ···
然後將x= 1代入
1− 1 3!+1
5!− 1 7!+ ···
你如果做這無窮多次的加減乘除,便可以得到sin(1)的精確值了。當然,我是說笑的,實 務上怎麼可能真的做無窮多項。實際上我們可以只做幾項就好,雖然只做前幾項就不是
sin(1)的精確值了,但所做出來的近似值與精確值通常相差不遠8。
估計e 的近似值。
解
我們可以利用ex= 1 + x +x2
2! + ···,代入x= 1,便有 e= 1 + 1 +1
2+1 6+ 1
24+ ···
≑1+ 1 +1 2+1
6+ 1
24 = 2.7083
只取前五項加起來是2.7083,而精確值是2.718281828 . . .,看起來已經頗為接近。
例題 21
估計ln 2的近似值。
解
從ln(1+ x)代x= 1之後就是ln 2了。檢查一下收斂區間,的確有包含到1,所以 可以代。假使要估計ln 3,便不可以直接從ln(1+ x)代了,因為x= 2並不在收斂區間 內。
ln 2=1 −1 2+1
3−1 4+ ···
≑1−1 2+1
3−1 4
= 7 12 例題 22
8實際上有些級數可能會收斂得很慢,以致於我們要算很多項才有辦法讓誤差夠小。因此在微積分課程 裡我們要學會估算誤差大約是多少,這留待後面介紹。
但這個級數收斂得很慢,ln 2的精確值大約是0.693,然而我們只算前四項的結果 7
約是0.583,這誤差有點大。若想估得更精確的話,須要算很多項才行。 12
估計π的近似值。
解
想估計 π 有很多種辦法,其中一個方法是利用 arctan(1)= π4,也就是說 π = 4 arctan(1),所以我們先做arctan(x)的展開
x−x3 3 +x5
5 − ···
然後代x= 1,再乘以4,於是
π =4arctan(1)
=4 (
1−1 3+1
5− ···
)
不過用這個方法也是有收斂得很慢的問題,算到一千項了才精確到小數點後三位。想 估計π還可以有很多其它辦法,譬如說sin(π
2)= 1,那麼π = 2·arcsin(1)。於是就可以
先將arcsin(x)展開後代1,再兩倍。但很不幸地,這個方法也收斂得挺慢。
例題 23
估計∫ 1
0 ex2d x的近似值。
解
ex2 並沒有初等反導函數,所以我們無法利用微積分基本定理,來求出這個積分 的精確值。但是我們可以利用泰勒展開,計算前幾項,來求近似值:
∫ 1
0
ex2d x=
∫ 1
0
(
1+ x2+x4 2! + ···)
d x
=( x+x3
3 + x5
5· 2!+ ···)¯¯
¯¯1
0
=1 +1 3+ 1
5· 2!+ ···
≑1+1 3+ 1
5· 2!+ 1
7· 3!+ 1 9· 4!
≑1.4618
用數學軟體去估這個積分,大約是1.46265,我們取前五項做起來就已經頗接近了。
例題 24
求 lim x→0
tan(x)− sin(x)
x3 。
解 例題 25
我們將tan(x)與sin(x)都展開,得到
xlim→0
(
x+x33+ ···)
−(
x−x3!3+ ···) x3
= lim
x→0 x3
2 + ···
x3 =1 2
因為x→ 0,所以我們直接只比較次方最小的,因此展開到三次項就可以了。
由此題可見,在做極限時使用泰勒展開,可能會簡化不少過程。反觀羅必達法則,
它許多時候好用,但有一些缺點。其一是,你可能事先不知道要求導幾次才結束,甚 至可能根本沒有結束的時候。其二是,就算你知道要求導七次好了,你有那個勇氣做 下去嗎?等你做完一題,秦始皇都已經把萬里⻑城蓋好了。因此,許多時候用泰勒展 開也是處理極限式的一個好選擇。
求 lim x→0
sin(x) ex− 1。 解
這題用羅必達也可很快做出來,不過沒關係,我們還是拿來練習用泰勒展開解。
上下各展開成
xlim→0
x− ···
(1+ x + ···)
− 1= 1
實在很快,才展開到一次項而已。像這種題目簡直可以不拿筆算,直接盯著題目就心 算出來了。然後對著題目說:「我一眼就把你看穿了!」。
例題 26
判斷級數 ∑∞
n=1
[pn n− 1]
的斂散性。
解
nn1 − 1 =eln nn − 1
=[
1+ln n n +1
2 (lnn
n )2
+ ···]
− 1
=ln n n +1
2 (lnn
n )2
+ ··· >ln n n > 1
n 因 ∑∞
n=1 1
n 發散,故原級數發散。
例題 27
高階導數的規律有時是不容易找出來的,所以前面便演示了,如何一直避開高階求 導來泰勒展開。而巧妙地,我們卻可因此回頭來解決高階導數問題。就是說,若展開出
f (x)= a0+ a1x+ a2x2+ ··· + anxn+ ···
而如果我們要用一般的方法
f (x)= f (0) + f′(0)x+ f′′(0)
2! x2+ ··· + f(n)(0) n! x+ ···
也會做出一樣的展開。於是,我可以兩相比較,得到 f (0)=a0
f′(0)=a1
f′′(0) 2! =a2
... f(n)(0)
n! =an
所以,如果我們想知道 f(23)(0),我就可以將f (x)做馬克勞林展開,然後將第23階係數乘 以23!,便會等於 f(23)(0)。這是因為
f(23)(0) 23! = a23
而如果是想知道 f(23)(3),便不能用馬克勞林展開,必須使用a= 3的泰勒展開
f (x)= f (3) + f′(3)(x− 3) + f′′(3)
2! (x− 3)2+ ··· + f(n)(3)
n! (x− 3)n+ ...
接著因為
f(23)(3) 23! = a23
所以將第23階係數乘以23!,便是 f(23)(3)。 若 f (x)= x6ex3,求 f(60)(0)。 解
先展開出
et= 1 + t +t2
2!+ ··· +tn n!+ ···
然後代t= x3,得到
ex3= 1 + x3+x6
2! + ··· +x3n n! + ...
再整個乘以x6,也就是每一項的次方都加6,得到
x6ex3= x6+ x9+x12
2! + ··· +x3n+6 n! + ...
從中找出第60階,就是 x60
18!。將它的係數乘以60!,得到 f(60)(0)= 1
18!× 60!
例題 28
3 泰勒定理與餘項
如前所示,雖然我們實際上沒辦法寫出無窮多項出來,但常常只要寫個前幾項就已 有不錯的近似,寫越多項就越逼近。如下圖所示,sin(x)的馬克勞林展開,寫得越多項,
在x= 0附近就與sin(x)越像。
y
x
f(x) = sin(x) P1 = x P3 = x −x3!3 P5 = x −x3!3 + x5!5 P7 = x −x3!3 + x5!5 −
x7 7!
圖 2: sin(x) 與k 階切近
現在我們來討論,如果我們預想好要近似到某種準確度,譬如說想要準確到小數點 後四位,那我們能不能在展開前,預先估一下我們大概要算幾項呢?或者是,當我寫了n 項出來,我如何知道我估的近似值跟精確值的誤差有多少呢9?
定理 3.1 泰勒定理
若 f (x)在某個包含a點的開區間I 上n+1階可導,則對於任意的x∈ I,f (x)都可 以展開為
f (x)= f (a) + f′(a)(x− a) + ··· + f(n)(a)
n! (x− a)n+ Rn(x) 其中
Rn(x)= f(n+1)(c)
n! (x− a)n+1 , c 介於x和a之間
這個定理告訴我們,如果一個函數在某個開區間上可以求導17 次的話,那麼我們就 可以照著這個一般式來寫出泰勒展開,寫到第16階。至於它與原來的函數的差,我們就 用R16(x)來代表這個差。就是說
R16(x)= f (x) − p16(x) , p16(x)是展開到第16階的泰勒多項式 一般來說,展開出n 階的話,便有Rn(x)來代表差。也就是說
Rn(x)= f (x) − pn(x) , pn(x)是展開到第n 階的泰勒多項式
這叫做餘項 ( remainder ),也可稱之為誤差項 ( error term )。在這定理中還告訴我們餘項
⻑什麼樣子,只要先照著泰勒多項式的一般項寫法,寫出下一項 fn+1(c)
(n+ 1)!(x− a)n+1
9在前面幾題我們直接列出精確值與近似值作比較,那是因為我用數學軟體跑出來的。實際上我們紙筆 計算時,當然不知道精確值是多少。
但注意 fn+1( )裡面,那邊不是照著抄a,而是改成某一個c。這個c 是介於x和a 之間的 某個數。這樣寫就剛好會是原函數與n 階泰勒多項式之間的差。接著再把這個差,掛上 絕對值,就是誤差。也就是說
誤差=¯¯Rn(x)¯¯=¯¯f (x)−pn(x)¯¯=¯¯
¯¯¯
fn+1(c)
(n+ 1)!(x− a)n+1¯¯
¯¯¯
至於c,我們只知道是x和a 間的某個數,並不知道到底是多少,這樣有用嗎?實際上我 們可以用估計的方式,來說:無論c 是何值,這個誤差都小於等於某個值,如此一來雖無 法確知誤差是多少,但至少可確定誤差不會超過那個值。
來點實際的例子讓你更了解我在說什麼。
以5階泰勒多項式估計sin(1)的近似值時,誤差大約是多少?
解
sin(x)的5階馬克勞林展開是
x−x3 3! +x5
5!
代入x= 1,得到
1− 1 3!+ 1
5! = 101
120 ≑ 0.8416667
這就是我們對sin(1)的估計值。現在我們想知道,這個估計值與精確值的誤差大概是 多少。我們知道餘項
R5(x)= f(6)(c) 6! x6
因是馬克勞林展開所以a= 0,接著代x= 1,並且誤差要掛絕對值,所以應該寫
¯¯R5(1)¯¯=¯¯
¯¯¯ f(6)(c)
6!
¯¯¯¯
¯
而sin(x)的六階導函數就是−sin(x),所以是
¯¯R5(1)¯¯=¯¯
¯¯sin(c) 6!
¯¯¯¯
不知道c 是多少沒有關係,反正我們知道|sin(x)| ≤ 1恆成立,所以我們可以說
¯¯R5(1)¯¯=¯¯
¯¯sin(c) 6!
¯¯¯¯≤ 1
6!≑0.0013889
這樣寫的意思是說,我不知道誤差的大小究竟如何。但最少最少,可以確定的是它不
會超過0.0013889。也許事實上c 離0很近,使得sin(c)很小,也就是說誤差值實際上
又遠小於0.0013889。但我不管那麼多,反正我也求不出c。至少我能確定,它一定不
會超過0.0013889就對了。
實際用數學軟體去求¯¯¯¯sin(1)−101
120
¯¯¯¯,得到大約是0.000195682。還真的比0.0013889 小了許多,不到它的六分之一。
例題 31
以4階泰勒多項式估計e 的近似值時,誤差大約是多少?
解
ex 的4階馬克勞林展開,並且代 x= 1,得到 1+ 1 + 1
2!+1 3!+ 1
4!≑2.708333333 誤差則是
¯¯R4(1)¯¯=¯¯
¯¯¯ ec
5!
¯¯¯¯
¯
ex 的5階導函數仍是ex,接著代c。x是代1,所以0< c < 1,這代表e0< ec< e1。e 大約是2.7,為了簡便,我說它小於3也沒關係。所以
¯¯R4(1)¯¯=¯¯
¯¯¯ ec
5!
¯¯¯¯
¯ <
e 5!< 3
5!= 0.025
我 們 不 知 道 誤 差 是 多 少, 但 至 少 有 信 心 說 誤 差 不 超 過 0.025。 而 精 確 誤 差 值 是 2.718281828− 2.708333333≑0.009948495,的確沒有超過。
例題 32
請估計sin(1)的近似值使誤差小於0.0001。
解
剛剛是指定寫出5階泰勒展開,估計誤差是多少。現在是反過來,指定誤差應控 制在一定範圍內,我們要估一下我們必須至少寫到幾階。
我們知道誤差
¯¯R2k+1(1)¯¯=¯¯
¯¯ sin(c) (2k+ 2)!
¯¯¯¯< 1 (2k+ 2)!
所以只要 1
(2k+ 2)!< 0.0001,便可確保誤差也小於0.0001。所以我們解
1
(2k+ 2)!< 1
10000 ⇒ (2k + 2)! > 10000
動手算算看,6!= 720不夠,8!= 720×56 >a700×50 = 35000 > 10000。所以只要2k+2 = 8 就可滿足誤差要求,也就是說2k+ 1 = 7,我們要寫出7階泰勒展開。
a只是要確認大於10000,並不關心精確值。所以不必傻傻地慢慢算,直接說它大於某個好算的值。
例題 33
請估計∫ 1
0 e−x2dx使其誤差小於0.001。 解
e−x2 並沒有初等反導函數,所以我們沒辦法套用微積分基本定理來做出這個積 例題 34
分的精確值。但我們可以將它展開
∫ 1
0
(1− x2+x4 2! −x6
3! + ···) dx
=x −x3 3 + x5
5· 2!− x7
7· 3!+ ···¯¯¯1
0
=1 −1 3+ 1
5· 2!− 1 7· 3!+ 1
9· 4!− ···
≑0.7475
最後那個無窮級數,它是個交錯級數,我只加到 1
9· 4! 那一項。而根據交錯級數的誤差 估計法,誤差會小於將下一項掛絕對值,所以我們這裡的誤差會小於
1
11· 5!= 1
1320< 0.001 這樣的確就確保誤差值小於0.001了。
你可能有疑問,我怎麼那麼厲害知道要加到 1
9· 4! 那一項?這是因為我首先知道交 錯級數的誤差估計法,誤差會小於將下一項掛絕對值。於是我就直接看看哪一項我是 可以很確定它掛絕對值會小於0.001的,便看到− 1
11· 5! 這一項。既然這一項掛絕對值
會小於0.001,那麼我加到它的前一項,誤差就會小於0.001了。
現在知道餘項該怎寫,便可以用它來看收斂區間了。首先必須慎重強調的是,同樣是
「收斂區間」,泰勒展開的收斂區間 與冪級數的收斂區間,意義並不相同。
冪級數的收斂區間是指,只要x 在這區間內,代入冪級數以後,所形成的無窮級數 會收斂。而泰勒展開的收斂區間是指,只要x在這區間內,代入泰勒級數以後,所形成的 無窮級數不但會收斂,還要等於直接將x代在原函數。
兩者真的有區別嗎?舉例來說,這個函數 f (x)=
{e−
1
x2 , x,0
0 , x= 0 (3.1) 它在x= 0處的各階導數都是0
f (0)= f′(0)= f′′(0)= ··· = 0 於是它的馬克勞林展開便是
0+ 0 + 0 + ···
這個⻑相很特別的「冪級數」,不管x代多少,都是每項皆0,所以冪級數的收斂區間是
。但函數 f (x)只有在x= 0的時候函數值才是0,其它時候函數值皆不為0,所以泰勒 展開的收斂區間只有 x= 0處。
求sin(x)馬克勞林展開的收斂區間。
解
將sin(x)展開至第2k+ 1階a,則餘項為 R2k+1(x)= sin(c)
(2k+ 2)!x2k+2 例題 35
所以2k+ 1階泰勒多項式與原函數的誤差是
¯¯R2k+1(x)¯¯=¯¯
¯¯ sin(c)
(2k+ 2)!x2k+2¯¯
¯¯≤¯¯
¯¯¯
x2k+2 (2k+ 2)!
¯¯¯¯
¯
如果我們做出無窮多項,那麼誤差便是
k→∞lim ¯¯R2k+1¯¯≤ lim
k→∞
¯¯¯¯
¯
x2k+2 (2k+ 2)!
¯¯¯¯
¯ =0
這意思是說,無論x 是多少,餘項都會隨著k 越來越大而趨近到0。也就是收斂區間 是整個實數。
a因為sin(x)的泰勒展開只有奇次項。
前面在求泰勒展開的收斂區間時,直接求展開出來的冪級數收斂區間。但現在又說,
泰勒展開的收斂區間與冪級數收斂區間是不同一回事,應該要用 lim
n→∞Rn= 0來確認。這 並不是因為我還沒介紹餘項,所以前面姑且用錯誤的方法求出錯誤的區間。而是因為,雖 然對於有些函數,例如前面的 (3.1) ,其泰勒展開的收斂區間與冪級數收斂區間並不相同,
但還是有某些函數,這兩區間是一模一樣的。像這種函數,實在太棒了!將它寫出泰勒級 數出來,只要冪級數收斂的地方,也必然就收斂到原來的函數。這種函數,我們稱之為解 析函數,並且頒予特級良⺠證,以資感謝。一般常見的多項式、指數函數、對數函數、三
⻆函數等等,都是解析函數。而解析函數彼此拿來做加減乘除、合成,出來的結果也是解 析函數。既然是解析函數,那我只須求泰勒級數的冪級數收斂區間,就會等同於泰勒展開 的收斂區間了。
最後做點補充,一般讀者不一定要看。其實,餘項有不止一種寫法。前面所介紹的,
叫做拉格朗日型餘項 ( Lagrange form of the remainder)。我們回想一下拉格朗日均值定理:
f (b)− f (a) = f′(c)(b− a), b > c > a 仔細一看,它根本就是做零階泰勒展開
f (x)= f (a) + R0(x)
然後再代x= b嘛!所以帶有拉格朗日型餘項的泰勒定理,其實就是更高階的均值定理。
餘項的另一種寫法,叫做皮亞諾型餘項 ( Peano form of the remainder)。
定理 3.2 皮亞諾型餘項的泰勒定理
若 f (x)在某個包含a點的開區間I 上n+1階可導,則對於任意的x∈ I,f (x)都可 以展開為
f (x)= f (a) + f′(a)(x− a) + ··· + f(n)(a)
n! (x− a)n+ Rn(x) 其中
Rn(x)= o(
(x− a)n)
這個寫法,涉及了 Landau 小 o 記號,這是德國數學家
Edmund Landau
用來描述函數的漸近行為的符號。如果 lim x→0
f (x)
x3 = 0,我們就記為f (x)= o(x3),意思是說 f (x)是比x3 更高階的無窮小。換句話說,f (x)跑到0比x3跑到0還快!