先把記號講定,之後不再重複。本篇談的 f 都是實數值函數,定義域至少含著一個閉區間 J = [a, b],而且永遠假設 a < b——這個假設不是裝飾:a = b 時開區間 (a, b) 是空的,「其中存在一點」這句話沒有任何點可挑,結論當場無從成立。所謂「在 J 上連續」依 §20-1 的 20.1 是指在 J 的每一點(含兩個端點)都連續;「在 (a, b) 內有導數」依 §27-1 的 27.1 是指開區間裡的每一點都問得出導數,兩個端點不在要求之內。
27.5 ROLLE'S THEOREM
Assume a < b, let f be continuous on J = [a, b] and differentiable at every point of (a, b), and suppose that f vanishes at both endpoints. Then f′(c) = 0 holds for at least one c in (a, b).
兩個端點的值都是零,中間就一定找得到一點,函數在那裡的導數是零。請留意這裡要求的是「兩端的值都是零」,不只是「兩端的值相等」——後面幾處都會引用這個形式,差一個字就接不上。三個前提各擋一種情形。連續要求在閉區間上,兩個端點也算:少了端點,函數可以在靠近端點時衝到很高卻永遠取不到最大值,那麼「取到最大值的那一點」根本不存在。可微只要求在開區間內,端點不必可微:√(1 − x²) 於 [−1, 1] 就是現成的例子,它在 ±1 這兩點沒有導數(差商在那裡要多大有多大),可是定理照樣適用,而 c = 0 確實是平的。至於 a < b,它保證 (a, b) 裡真的有點可挑。
證明計畫 · 由所求想起 所求是 (a, b) 內一點,導數為零。能生出「導數為零」的工具只有 27.4,所以整個證明就是去湊它的三個前提:內點、relative maximum、導數存在。 第一步:先把 f 在 J 上恆為零的情形挑掉,那時每一點都合格,取中點即可。 第二步:剩下的情形裡 f 取得到非零的值,必要時把 f 換成 −f,可以假設它取得到正值。 第三步:用 22.6 取出一個取到最大值的點。 第四步:兩端的值都是零而最大值是正的,所以那一點不是端點——它被逼進了內部。 第五步:27.4 收尾。
Proof. Suppose first that f is zero at every point of J. Then every point of (a, b) already has derivative zero, and we may take c = (a + b)/2. So assume from now on that f is not zero throughout J. Since neither the hypotheses nor the conclusion changes when f is replaced by −f, there is no loss in assuming that f takes a positive value somewhere on J.
這一步的所求:把「什麼都沒發生」的那個情形先清出去,剩下的才有東西可談。先看恆為零的情形:此時任取 c ∈ (a, b),差商 (f(x) − f(c))/(x − c) 的分子恆為零,整條差商恆為零,於是它與 0 的誤差恆為零,任何 δ 都符合 27.1 的要求,f′(c) = 0。挑中點是為了寫得出一個具體的點,而中點確實落在開區間內:由 a < b 得 a < (a + b)/2 < b,這一格正是前提 a < b 在出力。接著是換號這個動作:f 不恆為零時它至少取得到一個非零的值,可能是正的也可能是負的,而我們只想處理正的那一種——遇到負的就把整個函數上下翻過來。這個代換在 §27-2 的內部極小值版(把 f 換成 −f 就把極小翻成極大)已經用過一次:−f 的差商是 f 的差商整條變號,誤差的絕對值一字不改,所以導數存在與否不變,值恰好是 −f′(c);而 −f′(c) = 0 與 f′(c) = 0 是同一句話。拿一組數字走一次:f(x) = x² − 1 於 [−1, 1] 兩端的值都是零,它在 0 取到 −1,是負的;換成 −f(x) = 1 − x² 之後 0 這一點的值變成 1,是正的,而兩個函數在 0 的導數同時是零。
The interval J is closed and bounded, hence compact by the Heine-Borel Theorem 11.3, and f is continuous on it. Therefore 22.6 supplies a point c of J at which f takes the value M = sup {f(x) : x ∈ J}. Because f is positive somewhere on J, we get M > 0.
這一步的所求:一個「值不比 J 上任何地方小」的點。要拿到它得先確認 22.6 的前提。§11-2 的 11.3 Heine-Borel 定理(ℝᵖ 的子集為 compact 的充要條件是 closed 且 bounded)把閉區間換成 compact 集:[a, b] 被 a 與 b 夾住所以 bounded,兩個端點都算在內所以 closed。前提到齊,22.6 最大最小值定理就交出兩個點,我們只用取到 sup 的那一個。這裡順帶看得出前提為什麼要求在閉區間上連續:端點被剔除的話 J 就不再 closed,22.6 用不上,而值域的 sup 很可能只是被逼近、不被取到。至於 M > 0:上一步已經安排好 f 在某一點取到正值,而 M 不小於 f 在任何一點的值,於是 M 也是正的。
Because f(a) = f(b) = 0 while f(c) = M > 0, the point c agrees with neither a nor b. Since c belongs to J, it follows that a < c < b, so c is an interior point of J.
這一步的所求:把 c 逼進開區間 (a, b)。整個證明真正的關卡就在這裡——22.6 只答應把 c 交在 J 裡,而 J 含著兩個端點;c 若剛好是 a 或 b,下一步的 27.4 就用不上了,因為端點不是內點。把它擋掉的正是「兩端的值都是零」這個前提:兩個端點上的值是 0,而 c 上的值是 M,一個正數不等於零,所以 c 不可能是它們其中之一。閉區間裡扣掉兩個端點剩下的就是 a < c < b,也就是內點。拿數字對照下圖:f(x) = 1 − x² 於 [−1, 1] 的最大值 M = 1 在 c = 0 取到,而兩個端點的值都是 0,0 確實落在 (−1, 1) 內部。順帶一提,前提 a < b 在這一格也不能少:a = b 時 J 只有一個點,那個點同時是左端點也是右端點,逼不進任何地方去。
這張圖在證「c 不是端點」這一步:紅色虛線是 f 在 J 上取得到的最高高度,它是正的;兩個端點卻被釘在高度零的那條線上。取到最高高度的點必須站在紅線上,而端點站在灰線上,兩條線不同高,所以那個點只能落在中間。這一步用掉的正是「兩端的值都是零」,而不是別的前提。
The hypothesis gives the existence of f′(c), since c lies in (a, b). Moreover f(x) ≤ f(c) holds for every x in J, so f certainly has a relative maximum at c. Therefore 27.4 forces f′(c) = 0.
這一步的所求:把「這一點的值最大」翻譯成「這一點的導數是零」。§27-2 的 27.4 內部極大值定理(內點上有 relative maximum 而且導數存在時,導數必為零)的三個前提逐條核對一次。內點:上一步剛剛逼出來的 a < c < b。relative maximum:依定義只需要找到某個 δ,使 c 的 δ 鄰域內的值都不超過 f(c);而這裡 f(c) = M 不小於整個 J 上的每一個值,隨便挑一個 δ 都合格,條件被滿足得綽綽有餘。導數存在:前提說 (a, b) 內處處有導數,而 c 剛好落在裡面——這也是為什麼上一步非把 c 逼進內部不可,它同時解決了「27.4 要內點」與「導數要存在」兩件事。
Assume a < b and let f be continuous on J = [a, b] and differentiable at every point of (a, b). Then some c in (a, b) satisfies f(b) − f(a) = f′(c)(b − a).
把等式兩邊同時除以 b − a(前提 a < b 保證它不是零),右邊是 f′(c),左邊是兩端的值差除以兩端的距離。也就是說:兩個端點之間的平均變化,在中間某一點被瞬間的變化率一次講完。這正是它到處都用得上的原因——凡是「知道導數、想說值」的問題,它就是那道橋。前提與 27.5 一模一樣,只是拿掉了「兩端的值都是零」,可見這一條並不比 27.5 更難,只是形式更一般:把 f(a) = f(b) = 0 代進等式右邊,左邊變成零,於是 f′(c)(b − a) = 0,而 b − a 不是零,就退回 27.5。要留意 c 只保證存在,位置一般算不出來,也不保證唯一。
27.5 只吃「兩端的值都是零」的函數,而現在手上這個 f 在兩端的值一般既不相等也不是零。缺的就只有這一格:其餘兩個前提(J 上連續、(a, b) 內可微)現成就有。
證明計畫 · 由所求想起 所求是一個等式,把兩端的值差換算成某一點的導數。能生出導數的工具只有 27.5,而它只收兩端為零的函數。 第一步:把 f 減掉通過兩個端點的那條一次函數,得到一個新的函數。 第二步:驗這個新函數符合 27.5 的三個前提——J 上連續、(a, b) 內可微、而且兩端的值都是零。 第三步:27.5 交出一點,新函數在那裡的導數是零。 第四步:新函數的差商與 f 的差商只差一個常數,把導數換寫回去,等式就出來了。
Proof. Write m = (f(b) − f(a))/(b − a) for the slope of the segment joining (a, f(a)) to (b, f(b)), and let φ be the function defined on J by φ(x) = f(x) − f(a) − m(x − a). Thus φ measures how far f stands above that segment.
這一步的所求:一個在兩端都取零、而且導數與 f 的導數只差一個固定量的函數。先看它是怎麼造的。通過兩個端點 (a, f(a)) 與 (b, f(b)) 的那條直線,傾斜程度是兩端的值差除以兩端的距離,也就是 m;由於它在 x = a 時高度是 f(a),它在一般的 x 的高度就是 f(a) + m(x − a)。把 f 在每一點的值減掉這條直線在同一點的高度,得到的 φ 量的就是「曲線比直線高出多少」——而兩個端點上曲線與直線正好碰在一起,高出的量自然是零,這就是後面要用的那一格。前提 a < b 在這裡先出了一次力:b − a 不是零,m 才寫得出來。緊接著用一組數字算一次:取 f(x) = x² 於 [0, 2],則 m = (4 − 0)/(2 − 0) = 2,於是 φ(x) = x² − 0 − 2(x − 0) = x² − 2x。 兩端驗一下:φ(0) = 0、φ(2) = 4 − 4 = 0,確實都是零。下圖畫的就是這個相減的動作。
這張圖在證明的第一步造出 φ:藍線是通過兩個端點的一次函數,虛線是曲線高出藍線的量,紅色那一段就是某個 x 上的 φ(x)。兩個端點處曲線與藍線碰在一起,高出的量收縮成零——這正是接下來要送進 27.5 的那個條件。中間各處高出多少則由曲線自己決定。
The function x ↦ f(a) + m(x − a) is continuous on J, so 20.6 shows that φ is continuous on J as well. Next, for distinct x and c in J, (φ(x) − φ(c))/(x − c) = (f(x) − f(c))/(x − c) − m. Because the two difference quotients differ by the constant m, the same δ works for both; hence φ′(x) = f′(x) − m at every x in (a, b).
這一步的所求:確認 φ 通得過 27.5 前兩格的檢查,也就是連續與可微。連續那一格靠 §20-5 的 20.6(連續函數的和、差、積,以及分母不為零處的商,仍然連續):f 依前提在 J 上連續,而 f(a) + m(x − a) 是常數與恆等函數用加法和乘法組出來的,也連續,兩者相減仍然連續。可微那一格不必引用任何組合律,直接把差商寫開就看得出來:分子多減掉的 m(x − a) − m(c − a) = m(x − c) 除以 x − c 之後恰好是常數 m。兩條差商既然永遠差一個固定的 m,「離某個數不到 ε」這件事就同進同退——27.1 要的 δ 一個都不必重挑,於是 f′(x) 存在的每一點 φ′(x) 也存在,值是 f′(x) − m。接著仍以 f(x) = x² 於 [0, 2] 對照:那裡 m = 2,φ(x) = x² − 2x,而 φ′(x) = 2x − 2,確實就是 f′(x) − 2。
At the endpoints, φ(a) = f(a) − f(a) − 0 = 0, and φ(b) = f(b) − f(a) − m(b − a) = 0 by the definition of m. Since a < b, all three hypotheses of Rolle's Theorem 27.5 now hold for φ, so there is a point c with a < c < b and φ′(c) = 0.
這一步的所求:把 27.5 缺的最後一格補上——兩端的值都是零。左端直接代入即可:φ(a) = f(a) − f(a) − m·0,三項相消得零。右端要用到 m 是怎麼定的:m = (f(b) − f(a))/(b − a) 兩邊乘上 b − a 得 m(b − a) = f(b) − f(a),代進 φ(b) 就把整條式子減成零。請注意這裡兌現的是 27.5 的原始形式「兩端的值都是零」,不是「兩端的值相等」——φ 之所以恰好是零而不只是相等,是因為減掉的那條直線在兩個端點上的高度剛好就等於 f 在那裡的值。三格湊齊之後(連續、可微、兩端為零,再加上 a < b 讓 (a, b) 非空),27.5 洛爾定理就交出那一點。以數字驗收:φ(x) = x² − 2x 於 [0, 2] 的 φ′(x) = 2x − 2 在 c = 1 為零,而 1 確實落在 (0, 2) 內。
這張圖在說相減之後畫面變成什麼:前一張圖裡那些垂直虛線的長度被立起來,就是這條紅色曲線 φ。兩個端點同時落到高度零上,於是 27.5 的前提到齊,它交出中間那個切線水平的點 c。這張圖上的 c 與前一張圖是同一個橫座標——換的只是縱向的參考高度。
Since φ′(c) = f′(c) − m, the equation φ′(c) = 0 says exactly that f′(c) = m. Multiplying by b − a therefore gives f(b) − f(a) = f′(c)(b − a).
這一步的所求:把結論從 φ 翻回 f。前一步在 (a, b) 內每一點都建立了 φ′(x) = f′(x) − m,而 c 就落在 (a, b) 內,所以 0 = f′(c) − m,也就是 f′(c) = m。把 m 的定義代回去是一個除法,要移回乘法就兩邊同乘 b − a;由於 a < b,這個量不是零,剛才除得下去,現在乘得回來。最後用數字整條驗收一次:f(x) = x² 於 [0, 2] 得到 c = 1,右邊是 f′(1)·(2 − 0) = 2·2 = 4,左邊是 f(2) − f(0) = 4 − 0 = 4,兩邊對上。
這張圖在說最後一步把結論搬回原來的畫面:φ 在 c 的導數是零,代表曲線在 c 的切線與端點連線一樣斜——紅線與藍虛線平行。等式 f(b) − f(a) = f′(c)(b − a) 講的就是這件事:由兩端算出來的傾斜程度,被中間這一點的導數複製了一份。
兩端的值差可以被中間某一點的導數一次講完,而那一點的存在只需要閉區間上連續、開區間內可微。∎
27.7 COROLLARY
Assume a < b and let f be differentiable at every point of J = [a, b]. Then some c in (a, b) satisfies f(b) − f(a) = f′(c)(b − a).
證明計畫 · 由所求想起 所求就是 27.6 的結論,因此只要湊齊 27.6 的前提即可。三格之中 a < b 與 (a, b) 內可微都現成,唯一缺的是 J 上連續——而 27.2 正好從可微推得連續,逐點套一次就補起來。
Proof. By hypothesis f′(x) exists at every point x of J. Lemma 27.2 then makes f continuous at each such point, so f is continuous on J; and its derivative certainly exists on the smaller set (a, b). Since a < b as well, Theorem 27.6 applies and delivers the required point c.