JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

斜率、速度,與平均變化率

你在代數裡早就認識斜率了——縱向變化除以橫向變化,衡量一條直線有多陡。微積分正是從一個普通斜率回答不了的、揮之不去的問題中長出來的:某樣東西**此刻**、在某一個瞬間,變化得有多快?這篇導讀拿起「平均速度」和「平均陡度」這些熟悉的想法,把它們推到幾乎崩裂,再讓你清楚看見極限正是為了填補哪一道縫隙才被發明出來。

斜率,你早已擁有的那個想法

想像一條筆直的路爬上山坡。你每往前走10米,就升高2米。這個比值——縱向變化除以橫向變化,這裡是2/10——就是斜率:一個數字,說明這條線有多陡。路越陡,數字越大;平路,斜率為零;下坡,斜率為負。早在有人說出*微積分*這個詞之前,你就在代數裡見過它,而它正是整門學科賴以生長的種子。

同樣的算術能描述任何一種變化,不只是山坡。如果一個[[function-calculus|函數]] f 告訴你某個量在每個輸入處的值——帳戶裡的錢隨月份變化、走過的距離隨秒數變化——那麼它兩點之間的斜率,就是[[rate-of-change|平均變化率]]:輸出移動了多少,除以輸入移動了多少。對一條直線,這個數字處處不變。對一條曲線,它就變了,而正是這一個事實,讓故事開始變得有趣。

把平均變化率寫下來

取一個函數 f 和兩個輸入 a 與 b。a 處的點位於高度 f(a),b 處的點位於高度 f(b)。把這兩點連成一條直線——它穿切過曲線,所以叫作割線(取自拉丁文的*切割*之意)。它的斜率就是 f 從 a 到 b 的[[rate-of-change|平均變化率]],公式不過又是縱向除以橫向:

average rate of change  =  ( f(b) - f(a) ) / ( b - a )

Example:  f(x) = x^2,   from a = 1 to b = 3
   f(3) - f(1)     9 - 1      8
  -------------  = -------  =  ---  =  4
     3 - 1          3 - 1      2
穿過 (a, f(a)) 與 (b, f(b)) 兩點的割線的斜率。在 x = 1 到 x = 3 之間,曲線 y = x^2 平均每橫向移動一個單位,就升高 4 個單位。

所有例子裡最熟悉的,是運動。如果 f(t) 是一輛車到時刻 t 為止走過的距離,那麼 ( f(b) - f(a) ) / ( b - a ) 就是總距離除以總時間——也就是樸素的平均速度。兩小時開了120公里,你的平均速度就是每小時60公里,無論這趟旅程實際上是怎麼開的。

平均答不上來的那個問題

現在瞥一眼你的車速表。它顯示的不是*整趟旅程*的60公里每小時——它顯示的是你此時此刻開得有多快,而且你一碰油門它就變。這是一個全然不同的量:不是兩小時裡平均出來的速度,而是某一個時間點上的速度,那一刻根本沒有時間流逝。這正是微積分為之而生的問題——而請注意,我們的公式在它面前噎住了。

試著把 b 設得等於 a,去算單一瞬間的速度。橫向 b - a 變成了0,縱向 f(b) - f(a) 也變成了0。公式塌縮成 0/0——毫無意義。單一瞬間只是一個點,而你沒法只穿過一個點畫出割線;要有斜率,你至少需要兩個點。所以與其去要求那不可能之事,我們改用一招更聰明的:讓 b 離 a *稍微*有點距離,然後把它越挪越近,盯著割線的斜率會怎麼變。

  1. 鎖定你關心的那一瞬間——比如曲線 f(x) = x^2 上的 a = 1。
  2. 選一個離它一小步的第二點 b,算出割線斜率 ( f(b) - f(1) ) / ( b - 1 )。
  3. 把 b 挪得更靠近1——試 1.1,再試 1.01,再試 1.001——每次都重新算一遍。
  4. 看這些斜率是否朝著某一個數字歸攏。如果是,這個數字就是瞬時變化率。

看著割線斜率安頓下來

我們就真的為 f(x) = x^2 在 a = 1 處做一遍這個實驗。我們絕不把 b 設得正好等於1——那會給出 0/0——而是讓它一點點逼近,把每一次的割線斜率記下來。幾行算術就讓這個規律藏不住了。

def f(x):
    return x * x

a = 1.0
for b in [2.0, 1.5, 1.1, 1.01, 1.001, 1.0001]:
    secant_slope = (f(b) - f(a)) / (b - a)
    print(b, secant_slope)

# b        secant slope
# 2.0      3.0
# 1.5      2.5
# 1.1      2.1
# 1.01     2.01
# 1.001    2.001
# 1.0001   2.0001
隨著 b 滑向1,割線斜率步步逼向2——始終不曾真正抵達,卻無止境地靠近。我們說,當 b 趨於1時,割線斜率**趨於2**。

看看剛才發生了什麼。我們從來無法直接代入 b = 1,可這些斜率對自己要去往哪裡毫不含糊:2。那個目標值——當兩點擠到一起時割線斜率所趨向的數字——就是我們很快要稱之為[[limit|極限]]的東西。它們安頓下來的那個斜率,就是恰好在那一個點上輕擦過曲線的[[tangent-line|切線]]的斜率,而它*就是*瞬時變化率。把這套構造推到它的極限,整件事就成了[[derivative-calculus|導數]]——下一條學習線的引擎。