§28-7 泰勒定理
均值定理只用到一階導數,就把兩端的值差講完了。如果願意用到更高階的導數,能不能把函數在一點附近用多項式逼得更準——而多出來的那個誤差,寫不寫得出確定的形狀?
用多項式逼近,誤差寫得出來
導航說「再 3 分鐘抵達」。它是怎麼算的?最省事的算法是拿現在的車速去除剩下的距離——整個估計只用到「此刻跑多快」這一件事。可是前面那一段正在塞車,車速一路往下掉;把「速度正在變慢」也算進去,估出來的時間就會準一點。再進一步,連「變慢的幅度本身也在變」都算進去,又更準一點。
每多用一層資訊,預測就多貼一點。麻煩的是下一個問題:多貼多少?如果只答得出「會比較準」,那它就不是一個拿得來用的答案。真正有用的是知道差距最多有多大——差 10 秒還是差 3 分鐘,決定了要不要現在打電話說會遲到。本篇要做的就是把這件事寫成一條定理:用一個多項式去貼一個函數,貼完之後剩下的那一截誤差,形狀是寫得出來的。
「多用一層資訊」在數學上是什麼意思,得先講清楚。導數量的是函數的變化率,而「變化率本身怎麼變」就是對導數再求一次導數。這個動作要能一直做下去,得先確認每一次都做得成——所以先把它定義好。
Proceeding one order at a time defines the third, fourth, … derivatives, the n-th being written f⁽ⁿ⁾(c), with the convention f⁽⁰⁾ = f.
這張圖在說高階導數的定義為什麼是一階一階疊的:上面兩條實線代表 f 與 f′ 在整段上都有值,這是往下再求一次導數的前提;最下面那條畫成虛線,因為最後一階只需要在單獨一點上問得出來。每往下走一格,上面那一格就必須是一個處處有定義的函數,不能只是幾個孤立的數值。
有了高階導數,「用多項式貼一個函數」才有明確的意思:在 α 這一點,把多項式的值、一階變化率、二階變化率⋯⋯逐階與 f 對齊,能對齊到第幾階,就看 f 在那裡有幾階導數。對齊之後兩者離開 α 仍然會分開,而分開多少正是下面這條定理要交代的事。
f(β) = Σ_{k=0}^{n−1} f⁽ᵏ⁾(α)(β − α)ᵏ/k!
+ f⁽ⁿ⁾(γ)(β − α)ⁿ/n!.
這張圖在說 28.6 承諾的是什麼:藍線是那個 n − 1 次多項式,它在 α 與黑線緊緊貼在一起——不只值相同,前 n − 1 階的變化率也都相同。往右走兩者慢慢分開,而定理說 β 處那一小段紅色的落差,恰好等於 f⁽ⁿ⁾ 在中間某一點的值乘上 (β − α)ⁿ/n!。圖上看不出那一點在哪裡,它要等證明造出來。
手上的工具有兩件。§27-3 的 27.5 Rolle 定理(閉區間上連續、開區間內可微、兩端的值都是零,則中間至少有一點的導數為零)是唯一能無中生有地交出一個點的工具;§28-1 的求導四則(和、差、積、商的求導規則,其中乘積那一條是 (fg)′ = f′g + fg′)負責把一長串乘積逐項拆開。缺的那一格有兩個:Rolle 只吃兩端為零的函數,而 f 在 α 與 β 的值一般既不為零也不相等;而且我們要的結論不是「某處導數為零」,是一個含著 f⁽ⁿ⁾(γ) 的等式。(記號約定:以下把 α 與 β 為兩端的那個閉區間寫成 I。兩點都落在 J 裡而且相異,所以 I ⊆ J 而且 I 不是單點;I 的內部整個落在 (a, b) 之內,這正是前提只要求 f⁽ⁿ⁾ 在開區間上存在仍然夠用的原因。)
證明計畫 · 由所求想起
所求是一個等式:把 f(β) 寫成一串多項式加上一塊餘項,而餘項裡那個未知的導數值,要落在兩點之間的某一處。
第一步:先不管餘項長什麼樣,把它的係數當成一個未知數直接解出來——這樣等式當場成立,代價是還不知道那個未知數是誰。
第二步:造一個輔助函數,做法是把等式裡的展開基點從 α 換成一個會滑動的變數。
第三步:驗這個輔助函數在兩個端點的值都是零——一端由造法自動成立,另一端正好就是第一步那個未知數的定義。
第四步:Rolle 定理交出中間一點,輔助函數在那裡的導數是零。
第五步:把輔助函數逐項求導,每一項用乘積律拆成兩塊,相鄰兩項的塊互相抵銷,整串只剩一塊。
第六步:把剩下的那一塊代回去,未知數的身分就認出來了。
f(β) = Σₖ₌₀ⁿ⁻¹ f⁽ᵏ⁾(α)(β − α)ᵏ/k! + P(β − α)ⁿ/n!.
At this stage P is merely a number solved for; the equation holds by construction.
1 = 0 + P·1²/2,
解得 P = 2。請注意此刻 P 只是一個解出來的數字,它跟 f″ 有沒有關係還完全看不出來——那要等最後一步才知道。下圖把這個分解畫出來。
這張圖在證明的第一步在做什麼:整條長條是 f(β) 這一個數,藍色那一段是多項式算得出來的部分,紅色那一小段就是差額。把差額除以 (β − α)ⁿ/n! 得到的商就是 P——所以 P 是被定義出來的,不是猜出來的。圖上只用到「兩點相異」這一個前提,因為那個除數不能是零。
φ(x) = f(β) − Σₖ₌₀ⁿ⁻¹ f⁽ᵏ⁾(x)(β − x)ᵏ/k!
− P(β − x)ⁿ/n!.
Each f⁽ᵏ⁾ with k ≤ n − 1 is continuous on J, and each such f⁽ᵏ⁾ has a derivative throughout (a, b). Hence φ is continuous on I and differentiable at every interior point of I.
φ(x) = 1 − [x³ + 3x²(1 − x)] − 2(1 − x)²/2
= 2x³ − 4x² + 2x。
拿 x = ½ 驗一下:2·⅛ − 4·¼ + 1 = ¼,是一個實實在在的數。下圖畫的就是「基點從固定變成滑動」這個動作。
這張圖在證明的第二步造出 φ:上面那條線代表第一步那個固定基點的等式,下面那條把基點換成一個可以左右滑動的紅點。換掉基點之後,「一個成立的等式」就變成「一個定義在整段上的函數」,而 Rolle 定理要吃的正是函數,不是等式。紅點滑回左端時 φ 的值退回零,這一格下一步就要用到。
這張圖在說第三步把畫面變成什麼:輔助函數的兩個端點同時被壓到高度零上。左端的零是第一步用 P 的定義換來的,右端的零是代入之後自己塌掉的——來歷不同,效果一樣。到這裡 Rolle 定理要的三格(連續、內部可微、兩端為零)全部到齊。
這張圖在說第四步拿到了什麼:兩端被壓到零之後,Rolle 定理保證中間至少有一處的切線是水平的,那個橫座標就叫 γ。圖上畫了一個這樣的點,可是定理只承諾「至少一個」,曲線多繞幾次就會有好幾個,而它們都符合結論。γ 嚴格落在兩端之間這件事,下一步還要再用一次。
d/dx [f⁽ᵏ⁾(x)(β − x)ᵏ/k!]
= f⁽ᵏ⁺¹⁾(x)(β − x)ᵏ/k! − f⁽ᵏ⁾(x)(β − x)ᵏ⁻¹/(k − 1)!,
while the term k = 0 contributes f′(x). Consecutive summands cancel in pairs, so the whole sum telescopes and
φ′(x) = −[f⁽ⁿ⁾(x) − P](β − x)ⁿ⁻¹/(n − 1)!.
f(x) → f′(x)
f′(x)(β − x) → f″(x)(β − x) − f′(x)
f″(x)(β − x)²/2 → f‴(x)(β − x)²/2 − f″(x)(β − x)
P(β − x)³/6 → −P(β − x)²/2
把四行加起來:f′(x) 與 −f′(x) 相消、f″(x)(β − x) 與 −f″(x)(β − x) 相消,只剩 [f‴(x) − P](β − x)²/2,前面補上 φ 的負號恰好就是公式在 n = 3 的樣子。回到前面那組數字驗收:n = 2、P = 2、f(x) = x³ 時公式給 −(6x − 2)(1 − x) = 6x² − 8x + 2,而 φ(x) = 2x³ − 4x² + 2x 直接求導也是 6x² − 8x + 2,兩邊對上。
這張圖在證第五步為什麼一長串會塌成一項:左欄是每一項求導生出的加號塊,右欄是減號塊。斜的虛線把上一列的加號塊與下一列的減號塊連起來,每一對都一字不差,相加為零——這就是伸縮和的相消。走完之後只剩兩塊紅色的:最後一項的加號塊,以及 P 那一項的減號塊,而它們差在 f‴(x) 與 P 這一格上。
(1 − θ)ⁿ⁻¹ f⁽ⁿ⁾(α + θ(β − α))(β − α)ⁿ/(n − 1)!。
推法與上面同一條路,只要在第一步把未知項寫成 (β − α)Q/(n − 1)!,並讓輔助函數的最後一項跟著換成 (β − x)Q/(n − 1)!,其餘完全照走。兩種形狀各有各的好用之處:Lagrange 形式的分母增長得快,估起來乾脆;Cauchy 形式多留了一個 (1 − θ)ⁿ⁻¹ 因子,在某些收斂性的討論裡反而更管用。備齊積分的工具之後還有第三種寫法,那要留到後面的章節。
證明到此結束,剩下的是把它拿去用。這中間可以停一下:把視線從螢幕移開,看看窗外最遠的那棟樓,讓眼睛換個焦距,再回來看例 1。
- 取 f(x) = √x、J = [1, 1.2]、α = 1、β = 1.2、n = 2。先核前提。由 §28-2 的有理冪定理(x > 0 與有理數 r 時 (xʳ)′ = r·xʳ⁻¹),x > 0 時
f′(x) = ½·x^(−1/2) = 1/(2√x),
再求一次得 f″(x) = −¼·x^(−3/2)。f 與 f′ 在 J 上都有定義且連續(J 離零很遠,分母不會塌掉),f″ 在內部存在——n = 2 的前提到齊。 - 多項式那一截(k = 0 與 k = 1):
f(1) + f′(1)(β − α) = 1 + ½ · 0.2 = 1.1。
這一截完全不需要知道 √1.2 是多少,只用到 √1。 - 餘項那一截:f″(γ)(0.2)²/2,其中 γ 落在 1 與 1.2 之間。代進 f″ 的式子得
−0.04/(8·γ^(3/2)) = −0.005/γ^(3/2)。
它是負的,所以 √1.2 一定小於 1.1——這件事光看多項式那一截是看不出來的。 - 把 γ 夾住,餘項就跟著被夾住。下界那一側:γ > 1 使 γ^(3/2) > 1,於是餘項的絕對值小於 0.005,餘項大於 −0.005。上界那一側要的是 γ^(3/2) 的上界,所以先隨手取一個粗估:1.1² = 1.21 > 1.2 給出 √1.2 < 1.1,於是
1.2^(3/2) = 1.2 · √1.2 < 1.2 × 1.1 = 1.32。
由 γ < 1.2 得 γ^(3/2) < 1.32,於是餘項小於 −0.005/1.32 = −0.00378⋯。方向要看準:分母越大、餘項的絕對值越小,所以這裡需要的是分母的上界,拿下界代進去會得到一個推導不出來的結論。 - 兩側合起來:1.1 − 0.005 < √1.2 < 1.1 − 0.00378,也就是
1.0950 < √1.2 < 1.0963。
實際值是 1.095445⋯,確實落在裡面。 - 拿一階的做法對照。§28-3 的 28.2(用均值定理估數值並同時交出誤差界)給 √1.2 − 1 = 0.1/√c,c 在 1 與 1.2 之間。由 1.1² = 1.21 > 1.2 得 1 < √c < 1.1,於是 0.0909⋯ < √1.2 − 1 < 0.1,也就是 1.0909 < √1.2 < 1.1000。
- 比一下寬度:一階那組約 0.0091,二階這組約 0.0012,窄了將近一個數量級。多花的力氣只是多算一次導數。
這張圖在說例 1 換到了多少精度:上面灰色那一段是只用一階導數框出來的範圍,下面紅色那一小段是多用一階之後的範圍。兩段都框住了真值(數線上那個黑點),可是後者的寬度只有前者的七分之一左右。多用一階導數換到的不是「感覺比較準」,是一個窄了將近一個數量級的具體區間。
本篇把導數一階一階疊起來得到高階導數,再把均值定理逐階加強成 28.6:用 n − 1 次多項式在 α 對齊 f 的前 n − 1 階資訊,剩下的誤差恰好是 f⁽ⁿ⁾ 在中間某一點的值乘上 (β − α)ⁿ/n!。證明的技術核心是那個伸縮和——輔助函數逐項求導時,相鄰兩項生出的塊一字不差地互相抵銷,一長串只剩一塊。例 1 用 √1.2 量出這件事值多少:多算一次導數,估計的區間窄了將近一個數量級。本節到此收工——闔上螢幕站起來,走到窗邊看遠一點的東西,肩膀轉兩圈,喝點水再回來。
順帶一則。泰勒定理最誠實的地方是它從不假裝知道 γ 在哪裡,只保證那一點存在——這大概是數學裡講得最理直氣壯的一句「我不知道」。
下一幕預告
回頭看整節,做的事其實只有兩件。前半把求導從定義裡解放出來:四則、鏈鎖律、反函數、有理冪,備齊之後幾乎所有初等的式子都能直接寫出導數,不必再回頭數 ε 與 δ。後半把均值定理反覆拿去換東西——換出根的位置、換出帶誤差界的數值估計、換出從自然數指數推廣到有理指數的不等式、換出逐項求導的充分條件,最後換出本篇這條用多項式逼近的定理。換來換去用的都是同一句話:兩端的資訊,可以由中間某一點的導數一次講完。
下一節換一個方向走。到目前為止量的都是「變化」——某一點變得多快、兩端差了多少。接下來要量的是累積:一個函數在一整段區間上總共累積了多少,而且這句話要能被嚴格地定義,不能只靠「把圖形下面的面積加起來」這種畫面上的說法。做法是把區間切成很多小段、在每一小段上取一個代表值乘上該段的權重,再讓切法越來越細,看看這些和會不會逼近同一個數。
真正有意思的是那個「權重」。最自然的選擇是每一小段的長度,可是它不必是長度——權重可以由另一個函數來指定,讓某些區段算得重、某些區段算得輕,甚至讓某一個點單獨佔一份份量。同一套定義因此一口氣涵蓋了兩種看起來很不一樣的東西:連續地累積,以及一格一格地相加。下一節要做的就是把這個定義寫清楚,並問它在什麼條件下真的存在。
另外記一筆本節留下的帳。正弦與餘弦在本節出場過兩次,可是每一次用的都只是它們的性質——互為導數、絕對值不超過 1、在 π 的整數倍上取到的值——而那些性質本身在這裡都是先借來用的。要把這兩個函數從頭嚴格地建立起來,得等到級數的工具備齊;到那時它們會以定義的身分重新登場,而本節借過的每一條性質都要補上證明。