第 9 章 極限直觀與符號操作¶
本章重點:
- 從直觀的角度理解「極限」:趨近但不一定到達。
- 使用數表與圖形觀察函數在某點附近的行為。
- 用 SymPy 計算基本極限:代入、因式分解、通分、洛必達法則等。
- 理解左右極限、無窮遠處的極限與垂直/水平漸近線概念。
- 從極限觀點連結到「連續」的概念,為微分與積分鋪路。
本章不強調嚴格的代數定義,而著重在直觀與實作, 讓你能使用 Python / SymPy 來探索與驗證極限行為。
9.1 極限的直觀:趨近但不一定到達¶
想像函數 $f(x)$ 在 $x=a$ 附近的行為:
- 當 $x$ 一步步接近 $a$ 時,$f(x)$ 的值是否也接近某個固定數 $L$?
- 若是,則我們說:$\displaystyle \lim_{x\to a} f(x) = L$。
重點是:
- 極限只在乎「附近」,不在乎函數在 $x=a$ 這個點的值為何,甚至可以沒定義。
我們先用數表來觀察一個例子:
$f(x) = \dfrac{x^2-1}{x-1}$,當 $x \to 1$ 時?
這個函數在 $x=1$ 時分母為 0,沒有定義,但在附近卻有值。
def f_numeric(x):
return (x**2 - 1)/(x - 1)
for x_val in [0.5, 0.9, 0.99, 1.01, 1.1, 1.5]:
print(f"x = {x_val}, f(x) = {f_numeric(x_val)}")
x = 0.5, f(x) = 1.5 x = 0.9, f(x) = 1.9 x = 0.99, f(x) = 1.990000000000001 x = 1.01, f(x) = 2.009999999999999 x = 1.1, f(x) = 2.1 x = 1.5, f(x) = 2.5
從表中可看到,$f(x)$ 的值似乎接近 2。
實際上,若我們代數化簡:
$\dfrac{x^2-1}{x-1} = \dfrac{(x-1)(x+1)}{x-1} = x+1$(當 $x \ne 1$)。
因此,當 $x \to 1$ 時,$f(x)$ 的極限就是 $1 + 1 = 2$。
9.2 使用 SymPy 計算極限:limit¶
SymPy 提供 limit 函數直接計算極限:
import sympy as sp
sp.init_printing()
x = sp.symbols('x')
expr = (x**2 - 1)/(x - 1)
sp.limit(expr, x, 1)
再試幾個基本例子:
- $\displaystyle \lim_{x\to 0} \dfrac{\sin x}{x}$。
- $\displaystyle \lim_{x\to 0} \dfrac{1-\cos x}{x^2}$。
expr1 = sp.sin(x)/x
expr2 = (1 - sp.cos(x))/x**2
lim1 = sp.limit(expr1, x, 0)
lim2 = sp.limit(expr2, x, 0)
lim1, lim2
9.3 左極限與右極限¶
有些函數在某點附近左右兩側的行為不同,這時要分別考慮:
- 左極限:$\displaystyle \lim_{x\to a^-} f(x)$。
- 右極限:$\displaystyle \lim_{x\to a^+} f(x)$。
在 SymPy 中可以使用 Piecewise 來表示:
f_piece = sp.Piecewise((-x, x <= 0), (x, x > 0))
f_piece
計算在 $x \to 0$ 時的左極限與右極限:
left_lim = sp.limit(f_piece, x, 0, dir='-')
right_lim = sp.limit(f_piece, x, 0, dir='+')
left_lim, right_lim
結果顯示:
- 左極限為 0。
- 右極限為 0。
因此整體極限 $\lim_{x\to 0} f(x)$ 存在。
9.4 無窮遠處的極限與漸近線¶
考慮函數在 $x \to \infty$ 或 $x \to -\infty$ 時的行為:
- 若 $\displaystyle \lim_{x\to\infty} f(x) = L$,則 $y=L$ 是一條水平漸近線。
- 若 $\displaystyle \lim_{x\to a} f(x) = \pm\infty$,則 $x=a$ 是一條垂直漸近線。
例 1:$f(x) = \dfrac{1}{x}$。
expr_inf = 1/x
lim_inf_pos = sp.limit(expr_inf, x, sp.oo) # +∞
lim_inf_neg = sp.limit(expr_inf, x, -sp.oo) # -∞
lim_to_0 = sp.limit(expr_inf, x, 0)
lim_inf_pos, lim_inf_neg, lim_to_0
結果代表:
- 當 $x \to \infty$ 或 $x \to -\infty$,$1/x \to 0$,因此 $y=0$ 是水平漸近線。
- 當 $x \to 0$,函數發散(極限為無窮大或無窮小,視左右側而定),$x=0$ 是垂直漸近線。
例 2:$f(x) = \dfrac{2x^2 + 1}{x^2 - 3}$。
當 $x \to \infty$ 時,最高次項主導:大概像 $\dfrac{2x^2}{x^2} = 2$, 所以極限應該是 2。用 SymPy 檢查:
expr_rational = (2*x**2 + 1)/(x**2 - 3)
sp.limit(expr_rational, x, sp.oo)
因此 $y=2$ 是函數的水平漸近線。
9.5 基本極限技巧:代入、因式分解、通分¶
在很多簡單情況下,極限可以靠直接代入得到:
- 若 $f$ 在 $x=a$ 連續,則 $\displaystyle \lim_{x\to a} f(x) = f(a)$。
例:$\lim_{x\to 2} (3x+1) = 7$。
但若代入後得到 $0/0$ 形式(未定形),就需要進一步變形:
- 因式分解後約分。
- 通分、化簡。
例:$\displaystyle \lim_{x\to 1} \dfrac{x^2-1}{x-1}$,前面已經看過,可以因式分解之後約分,最後代入。
再看一個例子:
$\displaystyle \lim_{x\to 2} \dfrac{x^2 - 4}{x-2}$。
因式分解:$x^2 - 4 = (x-2)(x+2)$,約分後變成 $x+2$, 代入 $x=2$ 得極限 4。用 SymPy:
expr = (x**2 - 4)/(x - 2)
sp.factor(x**2 - 4), sp.simplify(expr), sp.limit(expr, x, 2)
9.6 洛必達法則(概念示意)¶
當極限出現某些「未定形」如 $0/0$ 或 $\infty/\infty$, 在微積分中常使用洛必達法則:
若在某區間內 $f$ 與 $g$ 可微,且在 $x \to a$ 時:
$\lim_{x\to a} f(x) = 0$, $\lim_{x\to a} g(x) = 0$,且 $g'(x) \ne 0$,
在適當條件下,
$\displaystyle \lim_{x\to a} \frac{f(x)}{g(x)} = \lim_{x\to a} \frac{f'(x)}{g'(x)}$。
SymPy 支援 limit 自動執行類似操作(內部可能使用導數等工具),
我們這裡先不深究理論,只用來計算一些例子。
例:$\displaystyle \lim_{x\to 0} \dfrac{\sin x}{x}$。前面已經計算過,其實就是 1。
再看例:
$\displaystyle \lim_{x\to 0} \dfrac{1-\cos x}{x^2}$。
SymPy 直接計算得到 $1/2$,其背後可用二階導數或泰勒展開解釋。
9.7 極限與連續:符號與圖形¶
我們說函數 $f$ 在點 $x=a$ 連續,若同時滿足:
- $f(a)$ 有定義。
- $\displaystyle \lim_{x\to a} f(x)$ 存在。
- $\displaystyle \lim_{x\to a} f(x) = f(a)$。
極限幫助我們精確描述「圖形在某點附近是否有裂縫或跳躍」。
例:考慮
$f(x) = \begin{cases} x^2, & x \ne 1 \\ 1, & x = 1 \end{cases}$。
在 SymPy 中:
f_piece2 = sp.Piecewise((x**2, x != 1), (1, True))
f_piece2
計算:
- $f(1)$?
- $\displaystyle \lim_{x\to 1} f(x)$?
f_at_1 = f_piece2.subs(x, 1)
lim_at_1 = sp.limit(f_piece2, x, 1)
f_at_1, lim_at_1
這顯示:
- $f(1) = 1$。
- $\lim_{x\to 1} f(x) = 1$。
因此 $f$ 在 $x=1$ 處「連續」(極限與函數值相等)。
9.8 啟發性例子一:速度與瞬間變化率的極限想像¶
考慮物體的位置函數 $s(t)$,平均速度在時間區間 $[t, t+h]$ 上為:
$\displaystyle v_{avg} = \frac{s(t+h) - s(t)}{h}$。
當 $h \to 0$ 時,這個平均速度極限若存在,就稱為「瞬間速度」:
$\displaystyle v(t) = \lim_{h\to 0} \frac{s(t+h) - s(t)}{h}$。
例如 $s(t) = t^2$,我們用 SymPy 模擬這個極限:
t, h = sp.symbols('t h', real=True)
s = t**2
diff_quot = ( (t+h)**2 - t**2 )/h
sp.simplify(diff_quot), sp.limit(diff_quot, h, 0)
這裡極限結果是 $2t$,也就是未來微分中會學到的:$\dfrac{d}{dt} t^2 = 2t$。
這個例子展示了:
- 極限可以用來描述「變化率」在時間間隔縮小到 0 的行為。
- 微分的核心其實就是一個極限。
9.9 啟發性例子二:數列極限與無窮小¶
極限不只適用於函數,也適用於數列 $a_n$:
若當 $n \to \infty$ 時,$a_n$ 越來越接近某個數 $L$, 則我們說:$\displaystyle \lim_{n\to\infty} a_n = L$。
例:$a_n = (1/2)^n$。用 Python 觀察:
seq = [ (1/2)**n for n in range(0, 11) ]
for n, val in enumerate(seq):
print(f"n = {n}, a_n = {val}")
n = 0, a_n = 1.0 n = 1, a_n = 0.5 n = 2, a_n = 0.25 n = 3, a_n = 0.125 n = 4, a_n = 0.0625 n = 5, a_n = 0.03125 n = 6, a_n = 0.015625 n = 7, a_n = 0.0078125 n = 8, a_n = 0.00390625 n = 9, a_n = 0.001953125 n = 10, a_n = 0.0009765625
你會看到 $a_n$ 越來越接近 0,雖然永遠不會真正變成 0。
在微積分中,我們常說這是一個「收斂到 0 的無窮小序列」。 函數極限與數列極限之間,有許多平行的概念。
9.10 啟發性例子三:用極限理解「無窮大的比較」¶
當 $x \to \infty$ 時,$x^2$ 與 $x^3$ 都趨近於無窮大, 但我們可以比較哪一個「長得更快」,方法是考慮它們的比值極限:
$\displaystyle \lim_{x\to\infty} \frac{x^3}{x^2} = \lim_{x\to\infty} x = \infty$。
這表示 $x^3$ 成長速度「遠大於」 $x^2$。
再比較 $e^x$ 與任何多項式,例如 $x^{10}$:
考慮 $\displaystyle \lim_{x\to\infty} \dfrac{e^x}{x^{10}}$。
x = sp.symbols('x')
expr_compare = sp.exp(x)/x**10
sp.limit(expr_compare, x, sp.oo)
結果是 $\infty$,表示指數函數最終會「壓過」任何固定次數的多項式, 這在複雜度分析(演算法成長率比較)與機率分布尾端行為分析中都非常重要。
9.11 本章小結¶
本章你學到了:
- 極限描述的是函數在某點附近或在無窮遠處的趨近行為,而不一定要求在該點有定義。
- 使用 Python 做數表、SymPy 的
limit函數計算各種極限。 - 左極限與右極限、無窮遠極限與漸近線的觀念。
- 基本極限技巧:代入、因式分解、通分,與洛必達法則的概念示意。
- 連續性的三個條件,以及如何用極限判斷是否存在「洞」或「跳躍」。
- 極限在物理(瞬間速度)、數列收斂及函數成長速度比較中的應用。
9.12 練習題¶
請在本 Notebook 中新增儲存格,試著完成以下練習:
基本極限計算
使用 SymPy 計算:
(a) $\displaystyle \lim_{x\to 2} (3x^2 - x + 1)$
(b) $\displaystyle \lim_{x\to -1} \dfrac{x^2-1}{x+1}$
(c) $\displaystyle \lim_{x\to 0} \dfrac{\sin 3x}{3x}$。因式分解與極限
(a) 手動因式分解 $x^2 - x - 6$ 並約分,計算 $\displaystyle \lim_{x\to 3} \dfrac{x^2 - x - 6}{x-3}$。
(b) 使用 SymPy 的factor與limit驗證你的結果。左右極限與不連續
定義函數:
$f(x) = \begin{cases} 1, & x < 1 \\ 2, & x \ge 1 \end{cases}$
(a) 使用Piecewise表示此函數。
(b) 計算 $\displaystyle \lim_{x\to 1^-} f(x)$ 與 $\displaystyle \lim_{x\to 1^+} f(x)$。
(c) 判斷 $\lim_{x\to 1} f(x)$ 是否存在,並說明理由。無窮遠極限與漸近線
考慮 $f(x) = \dfrac{3x-1}{x+2}$。
(a) 計算 $\displaystyle \lim_{x\to\infty} f(x)$。
(b) 計算 $\displaystyle \lim_{x\to -2} f(x)$(左右極限可額外探討)。
(c) 根據結果寫出其水平與垂直漸近線方程式,並在可能情況下畫圖確認。連續性的判斷
定義函數:
$f(x) = \begin{cases} x^2, & x \ne 2 \\ 5, & x = 2 \end{cases}$
(a) 求 $\lim_{x\to 2} f(x)$。
(b) 比較 $f(2)$ 與極限的值,判斷在 $x=2$ 是否連續。
(c) 若要讓此函數在 $x=2$ 連續,應該把 $f(2)$ 改成多少?數列極限
(a) 使用 Python 產生數列 $a_n = \dfrac{n}{n+1}$ 的前 10 項。
(b) 觀察數列趨近於哪個值?用 SymPy 計算 $\displaystyle \lim_{n\to\infty} \dfrac{n}{n+1}$。
(c) 思考這個數列可以代表什麼現實情境(例如某種比例、效率等等)。加分題:速度的極限詮釋
假設位置函數為 $s(t) = t^3$:
(a) 寫出平均速度 $\dfrac{s(t+h)-s(t)}{h}$ 的解析式並化簡。
(b) 使用 SymPy 計算 $\displaystyle \lim_{h\to 0} \dfrac{s(t+h)-s(t)}{h}$。
(c) 試著用文字說明:為什麼這個極限可以被解讀為「瞬間速度」, 並與日常中的加速、煞車情境連結起來。