第 11 章 不定積分與定積分¶

本章重點:

  • 從「面積」與「累積量」的角度理解積分。
  • 認識不定積分(反導數)與定積分,及兩者的關係。
  • 使用 SymPy 計算基本不定積分與定積分。
  • 了解積分與導數之間的「微積分基本定理」。
  • 用定積分處理面積、路程、總成本等應用問題的基本模型。

本章不是要把所有積分技巧一網打盡,而是希望用 Python / SymPy 幫你建立直觀: 什麼情況會想到用積分?積分結果代表什麼量?

11.1 從面積到積分的直觀¶

先回想國中、高中學過的簡單面積:

  • 長方形:$A = 長 \times 寬$。
  • 三角形:$A = \dfrac{1}{2} 底 \times 高$。

若我們想求某條曲線 $y = f(x)$ 與 $x$ 軸之間,從 $x=a$ 到 $x=b$ 的面積, 可以將區間 $[a,b]$ 切成許多小段,每小段用長方形近似,再把所有面積加總。

當切得越來越細,這種「近似和」會漸漸收斂到一個極限, 這個極限就是定積分:

$$\int_a^b f(x)\,dx.$$

在 SymPy 中,我們不需要手算這些和,而是直接使用 integrate 幫我們算出極限值, 但背後的想法就是「無限多個極小長方形的面積和」。

11.2 不定積分:反導數¶

導數告訴我們:給定 $F(x)$,可以算出 $F'(x)$。 「不定積分」則是反過來的問題:

已知 $f(x)$,找一個 $F(x)$ 使得 $F'(x) = f(x)$。

此時我們寫成:

$$\int f(x)\,dx = F(x) + C,$$

其中 $C$ 是任意常數,稱為積分常數。

例:若 $f(x) = 2x$,則其中一個原函數是 $F(x) = x^2$, 但 $x^2 + 1$ 或 $x^2 - 3$ 的導數也是 $2x$, 因此所有原函數可以寫成 $x^2 + C$。

11.3 使用 SymPy 計算不定積分:integrate¶

SymPy 提供 integrate 進行符號積分。

例:計算 $\int 2x\,dx$。

In [1]:
import sympy as sp
sp.init_printing()

x = sp.symbols('x', real=True)
expr = 2*x
F = sp.integrate(expr, x)
expr, F
Out[1]:
$\displaystyle \left( 2 x, \ x^{2}\right)$

再試幾個常見例子:

  • $\int x^2\,dx$
  • $\int \sin x\,dx$
  • $\int e^x\,dx$
  • $\int \dfrac{1}{x}\,dx$($x>0$ 時是 $\ln x$)
In [2]:
examples = [x**2, sp.sin(x), sp.exp(x), 1/x]
[sp.integrate(f, x) for f in examples]
Out[2]:
$\displaystyle \left[ \frac{x^{3}}{3}, \ - \cos{\left(x \right)}, \ e^{x}, \ \log{\left(x \right)}\right]$

11.4 基本不定積分公式(反導數對照表)¶

由導數公式反向整理,可以得到一些基本的不定積分:

  1. $\displaystyle \int x^n\,dx = \frac{x^{n+1}}{n+1} + C$($n \ne -1$)
  2. $\displaystyle \int \cos x\,dx = \sin x + C$
  3. $\displaystyle \int \sin x\,dx = -\cos x + C$
  4. $\displaystyle \int e^x\,dx = e^x + C$
  5. $\displaystyle \int \frac{1}{x}\,dx = \ln|x| + C$($x \ne 0$)

在 SymPy 中,我們可以利用 diff 檢查積分結果是否正確:將結果微分,應該回到原函數。

In [3]:
test_expr = sp.sin(x)
F = sp.integrate(test_expr, x)
sp.simplify(sp.diff(F, x)), test_expr
Out[3]:
$\displaystyle \left( \sin{\left(x \right)}, \ \sin{\left(x \right)}\right)$

11.5 定積分:帶上下限的積分¶

定積分 $\displaystyle \int_a^b f(x)\,dx$ 可以直觀地理解為:

  • 曲線 $y=f(x)$ 與 $x$ 軸之間、從 $x=a$ 到 $x=b$ 之「有符號」面積。

若 $f(x) \ge 0$,則定積分就是一般的面積; 若 $f(x)$ 在部分區間為負,則定積分會把那部分視為「負面積」。

SymPy 的 integrate 若多指定區間,就會計算定積分。

In [4]:
expr = x
I = sp.integrate(expr, (x, 0, 3))  # ∫_0^3 x dx
expr, I
Out[4]:
$\displaystyle \left( x, \ \frac{9}{2}\right)$

從幾何角度來看,$y=x$ 與 $x$ 軸、$x=0$ 與 $x=3$ 圍成一個三角形, 面積應為 $\dfrac{1}{2}\cdot 底(=3) \cdot 高(=3) = 9/2$, 與定積分結果一致。

11.6 微積分基本定理(直觀版)¶

微積分基本定理 告訴我們導數與定積分之間有深刻的關係:

若 $F'(x) = f(x)$,則:

$$\int_a^b f(x)\,dx = F(b) - F(a).$$

也就是:

  1. 先找到 $f(x)$ 的反導數(原函數) $F(x)$。
  2. 再把上限 $b$ 與下限 $a$ 代入,做差。

這就是我們在做定積分時常用的「先積分、再代上下限」的理論基礎。

例:計算 $\displaystyle \int_0^1 2x\,dx$。

  1. 先求不定積分:$\int 2x\,dx = x^2 + C$。
  2. 套用基本定理:$\int_0^1 2x\,dx = [x^2]_0^1 = 1^2 - 0^2 = 1$。

用 SymPy 驗證:

In [5]:
expr = 2*x
I = sp.integrate(expr, (x, 0, 1))
I
Out[5]:
$\displaystyle 1$

11.7 常見定積分例子¶

  1. $\displaystyle \int_0^\pi \sin x\,dx$
  2. $\displaystyle \int_1^e \frac{1}{x}\,dx$
  3. $\displaystyle \int_0^1 (x^2 + 1)\,dx$
In [6]:
expr1 = sp.sin(x)
expr2 = 1/x
expr3 = x**2 + 1

I1 = sp.integrate(expr1, (x, 0, sp.pi))
I2 = sp.integrate(expr2, (x, 1, sp.E))
I3 = sp.integrate(expr3, (x, 0, 1))
I1, I2, I3
Out[6]:
$\displaystyle \left( 2, \ 1, \ \frac{4}{3}\right)$

從幾何與解析角度:

  • $\int_0^\pi \sin x\,dx = 2$:對應到半個「正弦波鼓起來」的面積。
  • $\int_1^e \dfrac{1}{x}\,dx = 1$:對應到自然對數的定義性質之一。
  • $\int_0^1 (x^2 + 1)\,dx$ 可拆成 $\int_0^1 x^2 dx + \int_0^1 1 dx$。

11.8 用圖形輔助理解定積分(概念說明)¶

在 Jupyter Notebook 中,可以搭配繪圖工具把「曲線下的面積」畫出來, 加深對定積分作為面積/累積量的直觀。

純用 SymPy 的 plot 雖然不直接填色,但仍可視覺化 integrand 的形狀。
若想要更漂亮的塗色,可以搭配 matplotlib 自行處理(這超出本書主線,只作提示)。

下面範例僅畫出函數,以 $y=x^2$ 在 $[0,1]$ 為例:

In [7]:
sp.plot(x**2, (x, 0, 1), title='The graph of y = x^2 on the interval [0,1]')
No description has been provided for this image
Out[7]:
<sympy.plotting.backends.matplotlibbackend.matplotlib.MatplotlibBackend at 0x7f56f1f79fd0>

11.9 不定積分的基本技巧示意:拆解與代換(簡單版)¶

實務上處理積分時,常用兩個基本想法:

  1. 線性性質:

    $\displaystyle \int (af(x) + bg(x))\,dx = a\int f(x)\,dx + b\int g(x)\,dx$。

  2. 代換(u-substitution)直觀:

    當 integrand 中出現某個組合 $g(x)$ 及其導數 $g'(x)$ 時, 可以嘗試令 $u = g(x)$,將積分轉換成對 $u$ 的積分。

例:$\displaystyle \int 2x(x^2+1)^3\,dx$,令 $u = x^2+1$,則 $du = 2x\,dx$。

在 SymPy 中,我們通常不需要顯式做這個代換,integrate 會自動完成:

In [8]:
expr = 2*x*(x**2 + 1)**3
F = sp.integrate(expr, x)
F
Out[8]:
$\displaystyle \frac{x^{8}}{4} + x^{6} + \frac{3 x^{4}}{2} + x^{2}$

可以再微分一次檢查:

In [9]:
sp.simplify(sp.diff(F, x) - expr)
Out[9]:
$\displaystyle 0$

11.10 啟發性例子一:速度函數的積分給出位移¶

在物理中,如果已知速度函數 $v(t)$, 那麼在時間 $[t_1, t_2]$ 之間的位移可以寫成定積分:

$$\text{位移} = \int_{t_1}^{t_2} v(t)\,dt.$$

例:$v(t) = 3t^2$,求從 $t=0$ 到 $t=2$ 的位移。

In [10]:
t = sp.symbols('t', real=True)
v = 3*t**2
displacement = sp.integrate(v, (t, 0, 2))
v, displacement
Out[10]:
$\displaystyle \left( 3 t^{2}, \ 8\right)$

結果為 $\int_0^2 3t^2 dt = [t^3]_0^2 = 8$。

你可以想像速度是「每秒增加多少距離」,把這些小距離累積起來就是位移。

11.11 啟發性例子二:總成本與邊際成本的積分¶

若 $C(q)$ 是總成本函數,則 $C'(q)$ 是邊際成本,表示在產量附近微小變化時的成本變動率。

反過來說,若已知邊際成本函數 $MC(q)$,則總成本可以藉由積分「累積」出來:

$$C(q) = C(q_0) + \int_{q_0}^{q} MC(x)\,dx.$$

例:假設邊際成本為 $MC(q) = 5 + 0.2q$,且當產量為 0 時固定成本為 1000, 求產量為 $q$ 時的總成本。

In [11]:
q = sp.symbols('q', real=True)
MC = 5 + 0.2*q
C_q = 1000 + sp.integrate(MC, (q, 0, q))
sp.simplify(C_q)
Out[11]:
$\displaystyle 0.1 q^{2} + 5.0 q + 1000$

這說明了:

  • 導數可以被解讀為「瞬間變化率」。
  • 積分則可以把變化率「累積」回原本的量。

11.12 啟發性例子三:機率密度函數與面積為 1¶

在機率論中,連續型隨機變數 $X$ 常用機率密度函數(pdf) $f(x)$ 描述, 其性質之一是:

  • $f(x) \ge 0$ 對所有 $x$。
  • $\displaystyle \int_{-\infty}^{\infty} f(x)\,dx = 1$。

例如簡化例子,令:

$f(x) = \begin{cases} 2x, & 0 \le x \le 1 \\ 0, & 其他 \end{cases}$。

我們檢查 $\int_0^1 2x\,dx$ 是否為 1:

In [12]:
x = sp.symbols('x', real=True)
f = 2*x
I = sp.integrate(f, (x, 0, 1))
I
Out[12]:
$\displaystyle 1$

結果為 1,符合機率密度函數的要求。

某區間(例如 $[0.5, 1]$)的機率,就對應到該區間下的「面積」:

$$P(0.5 \le X \le 1) = \int_{0.5}^{1} 2x\,dx.$$

用 SymPy 計算看看:

In [13]:
P = sp.integrate(f, (x, 0.5, 1))
P
Out[13]:
$\displaystyle 0.75$

這個例子顯示:定積分不只代表幾何面積,也可代表「累積機率」。

11.13 本章小結¶

本章你學到了:

  • 不定積分(反導數)的概念,與導數之間的對偶關係。
  • 使用 SymPy 的 integrate 計算常見函數的不定積分與定積分。
  • 微積分基本定理:定積分可以透過原函數 $F(b)-F(a)$ 來計算。
  • 如何從圖形與應用角度理解定積分:曲線下的面積、累積量。
  • 積分在物理(速度→位移)、經濟(邊際成本→總成本)、 機率(密度→機率)等領域中的基本應用。

11.14 練習題¶

請在本 Notebook 中新增儲存格,試著完成以下練習:

  1. 基本不定積分
    使用 SymPy 計算並簡化:
    (a) $\displaystyle \int (3x^2 - 4x + 1)\,dx$
    (b) $\displaystyle \int (\cos x + 2\sin x)\,dx$
    (c) $\displaystyle \int (e^x + \dfrac{1}{x})\,dx$(注意 $\ln|x|$)。

  2. 檢查反導數
    對上一題所得的不定積分結果,使用 diff 對 $x$ 微分, 確認可以回到原 integrand(可能差一個常數)。

  3. 簡單定積分
    使用 SymPy 計算:
    (a) $\displaystyle \int_0^2 x\,dx$
    (b) $\displaystyle \int_0^1 (2x+1)\,dx$
    (c) $\displaystyle \int_0^{\pi} \sin x\,dx$,並嘗試從圖形解釋為什麼結果為 2。

  4. 利用原函數計算定積分
    不使用 SymPy 的定積分功能,而是:
    (a) 先用 integrate(f, x) 找出原函數 $F(x)$。
    (b) 再手動計算 $F(b)-F(a)$。
    以 $f(x) = 3x^2$,$[a,b] = [1,3]$ 為例,檢查是否得到相同的結果。

  5. 應用題:速度與位移
    假設某物體速度為 $v(t) = 4t + 1$,單位為 m/s。
    (a) 求從 $t=0$ 到 $t=3$ 的位移(當作速度只在這段時間定義)。
    (b) 若起始位置為 0,寫出位置函數 $s(t)$(可用不定積分 + 初始條件)。
    (c) 檢查 $s(3) - s(0)$ 是否與定積分結果一致。

  6. 應用題:邊際成本與總成本
    某產品的邊際成本為 $MC(q) = 10 + 0.5q$(每增加一單位的額外成本)。
    (a) 假設固定成本為 800,求總成本函數 $C(q)$。
    (b) 計算生產 20 單位時的總成本。
    (c) 計算從 20 單位增加到 21 單位時成本大約增加多少(可用邊際成本或直接算 $C(21)-C(20)$ 比較)。

  7. 加分題:機率密度函數的驗證
    令 $f(x) = \begin{cases} 3x^2, & 0 \le x \le 1 \\ 0, & 其他 \end{cases}$。
    (a) 使用定積分檢查 $\int_0^1 3x^2 dx$ 是否等於 1。
    (b) 計算 $P(0.5 \le X \le 1) = \int_{0.5}^1 3x^2 dx$。
    (c) 嘗試解釋:為什麼「面積」可以代表機率?此模型可能對應到哪種現實情境?

回首頁