跳轉到

03.3 曲線積分與曲面積分#

本節目標#

單變數積分 \(\int_a^b f(x)\,dx\) 只會沿 x 軸走。多變數世界裡,路徑可以是任何曲線、曲面可以是任何曲面,積分跟著升級為四件事:

  1. 第一類線積分(純量 × 路徑長): \(\int_C f\,ds\)
  2. 第二類線積分(向量場做功): \(\int_C \mathbf{F}\cdot d\mathbf{r}\)
  3. 曲面面積: \(\displaystyle\iint_S \|\mathbf{r}_u \times \mathbf{r}_v\|\,du\,dv\)
  4. 通量積分: \(\displaystyle\iint_S \mathbf{F}\cdot\mathbf{n}\,dS\)

全部用參數化 + SymPy 實作,不需要背任何「特殊曲線公式」。


3.3.1 第一類線積分:沿鐵軌撒的錢#

設 \(f\) 是純量場,曲線 \(C\) 由 \(\mathbf{r}(t) = \mathbf{r}(a\ldots b)\) 參數化。把 \(f\) 沿路徑累加:

\[ \int_C f\,ds = \int_a^b f(\mathbf{r}(t))\,\left\|\mathbf{r}'(t)\right\|\,dt \]

幾何直覺: \(\|\mathbf{r}'(t)\|dt = ds\) 是微小路徑長, \(f\) 在這一段近乎常數,乘起來是「這段路收穫的量」。 \(f=1\) 時積分就是曲線長度; \(f\) 是線密度時積分是鐵絲質量。

實作:計算螺旋線長度。 \(\mathbf{r}(t) = (\cos t, \sin t, t),\ t\in[0, 2\pi]\) :

import sympy as sp

t = sp.symbols("t", positive=True)
r = sp.Matrix([sp.cos(t), sp.sin(t), t])
speed = sp.sqrt(sum(sp.diff(r, t).applyfunc(lambda c: c**2)))
L = sp.integrate(speed, (t, 0, 2*sp.pi))
print(sp.simplify(L))    # 2*sqrt(2)*pi  (圓周 2π × 因爬升而多出的因子 sqrt(2))

3.3.2 第二類線積分:向量場沿路做功#

物理直覺:在風中拖車前進,做的功 = 風力在行進方向的分量 × 距離 = \(\mathbf{F}\cdot d\mathbf{r}\) 。累加成積分:

\[ W = \int_C \mathbf{F}\cdot d\mathbf{r} = \int_a^b \mathbf{F}(\mathbf{r}(t))\cdot \mathbf{r}'(t)\,dt \]

流程模板(所有線積分都這樣做):參數化 → 代入 → 點積/放大 \(ds\) → 積分。

實作:沿拋物線的重力做功。 \(\mathbf{F} = (0,0,-mg)\) ,路徑 \(\mathbf{r}(t) = (t, t^2, 1-t)\) , \(t: 0\to 2\) :

m, g = sp.symbols("m g", positive=True)
r = sp.Matrix([t, t**2, 1 - t])
F = sp.Matrix([0, 0, -m*g])
W = sp.integrate(F.dot(sp.diff(r, t)), (t, 0, 2))
print(W)                 # m*g  —— 上升1格再下降?終點 z=-1,總下落 2 格?檢查:z(0)=1, z(2)=-3,共降 4? 

跑一下會發現答案與直覺不符——因為 \(z(t) = 1-t\) 恰下降 \(2\) ,而 \(F\cdot r' = -mg \cdot(-1) = mg\) , \(W = 2mg\) 。實驗精神:把上面第四行註解換成 print(F.dot(sp.diff(r, t)), sp.integrate(F.dot(sp.diff(r,t)), (t,0,2))),確認被積函數確實是常數 \(mg\) 。

保守場的重要結論:若 \(\mathbf{F} = \nabla f\) (位能場;重力、理想彈簧都是),則

\[ \int_C \nabla f \cdot d\mathbf{r} = f(\text{終點}) - f(\text{起點}) \]

路徑無關!驗證:用上節的方法確認 \(\nabla\times\mathbf{F} = 0\) ,即可(在單連通區域上)找到位能 \(f\) ,Instagram 銷帳式地只需看端點。

3.3.3 曲面積分之一:面積#

曲面 \(S\) 用兩參數 \(\mathbf{r}(u,v)\) 覆蓋。小面元是切向量 \(\mathbf{r}_u\,du\) 與 \(\mathbf{r}_v\,dv\) 張成的平行四邊形,其面積為叉積長度:

\[ dS = \|\mathbf{r}_u \times \mathbf{r}_v\|\,du\,dv, \qquad \text{面積} = \iint \|\mathbf{r}_u \times \mathbf{r}_v\|\,du\,dv \]

實作:半徑 \(R\) 的球面面積。 球座標參數化 \(\mathbf{r}(\theta, \phi) = (R\sin\phi\cos\theta,\ R\sin\phi\sin\theta,\ R\cos\phi)\) :

T, Phi = sp.symbols("theta phi", positive=True)
R = sp.symbols("R", positive=True)
ru = sp.diff(sp.Matrix([R*sp.sin(Phi)*sp.cos(T), R*sp.sin(Phi)*sp.sin(T), R*sp.cos(Phi)]), T)
rv = sp.diff(sp.Matrix([R*sp.sin(Phi)*sp.cos(T), R*sp.sin(Phi)*sp.sin(T), R*sp.cos(Phi)]), Phi)
dS = sp.sqrt((ru.cross(rv)).dot(ru.cross(rv)))
A = sp.integrate(sp.integrate(dS, (T, 0, 2*sp.pi)), (Phi, 0, sp.pi))
print(sp.simplify(A))    # 4*pi*R**2

3.3.4 曲面積分之二:通量#

通量 = 場垂直穿過曲面的總量(雨水打在窗上的總流量)。法向量由叉積給出:

\[ \mathbf{n}\,dS = \mathbf{r}_u \times \mathbf{r}_v\,du\,dv \ (\text{方向由參數化順序決定}), \qquad \Phi = \iint_S \mathbf{F}\cdot(\mathbf{r}_u\times\mathbf{r}_v)\,du\,dv \]

實作:放射場過球面的通量。 \(\mathbf{F} = \mathbf{r}/\|\mathbf{r}\|^3\) ,球面半徑 \(a\) (向外法向)。已知散度為零但通量應為 \(4\pi\) (源頭在球心):

a = sp.symbols("a", positive=True)
rr = sp.Matrix([a*sp.sin(Phi)*sp.cos(T), a*sp.sin(Phi)*sp.sin(T), a*sp.cos(Phi)])
Frr = rr / a**3            # 場在此球面上:r/|r|^3 = 球面點/a^3
flux = sp.integrate(sp.integrate(Frr.dot(ru.cross(rv)), (T, 0, 2*sp.pi)), (Phi, 0, sp.pi))
print(sp.simplify(flux))   # 4*pi

注意:ru, rv 未隨 a 縮放——請把參數化的兩行改成函式,或用一般 R 重新代入再積分。這是刻意安排的除錯練習:若通量的極限( \(a\to 0\) )仍是 \(4\pi\) ,就驗證了「源頭強度與面積無關」。

3.3.5 閉合迴路的功與環流量#

取閉曲線 \(C\) (起點=終點), \(\oint_C \mathbf{F}\cdot d\mathbf{r}\) 稱環流量。若 \(\mathbf{F}\) 保守,環流量必為 \(0\) (繞一圈回到原處,位能沒變)。實驗:

# 渦旋場 F = (-y, x),繞單位圓 C: r(t)=(cos t, sin t)
u = sp.Matrix([sp.cos(t), sp.sin(t)])
Fv = sp.Matrix([-u[1], u[0]])
circ = sp.integrate(Fv.dot(sp.diff(u, t)), (t, 0, 2*sp.pi))
print(circ)              # 2*pi  ≠ 0 ⇒ 渦旋場非保守(上節算過 curl=(-0,0,2) 呼應)

小結與練習#

  • 線積分模板:參數化 → 代入 → \(\cdot\,d\mathbf{r}\) 或 \(\times\) 得 \(dS\) → 積分。
  • 第一類: \(\int_C f\,ds\) ;第二類: \(\int_C \mathbf{F}\cdot d\mathbf{r}\) 。
  • 曲面面積 \(=\iint\|\mathbf{r}_u\times\mathbf{r}_v\|\) ;通量 \(=\iint \mathbf{F}\cdot(\mathbf{r}_u\times\mathbf{r}_v)\) 。
  • 保守場 ⇔ 置心於端點差;環流量為零是它的指紋。

練習:

  1. 半圓 \(y=\sqrt{1-x^2}\) 上密度 \(f = xy\) 的第一類線積分。
  2. \(\mathbf{F}=(2xy, x^2)\) ,繞任意閉曲線證明環流量為 \(0\) ;再找出位能 \(\phi\) 。
  3. 求環面 \(\mathbf{r}(u,v) = ((b+a\cos u)\cos v,\ (b+a\cos u)\sin v,\ a\sin u)\) 的面積。
  4. 用 \(\mathbf{F} = (0,0,z)\) ,計算過 \(z = 4 - x^2 - y^2\) ( \(z\ge 0\) )帽面的通量。
  5. 除錯挑戰:3.3.4 中把參數化寫成帶 a 的正確版本,驗證通量確為 \(4\pi\) 而與 a 無關。