線積分¶
線積分とは曲線上の関数値を積分したものです。 $$ \int_C f ds $$ ここで微小な変化分$ds$を$x,y,z$で表すと $$ ds=\sqrt{(dx)^2+(dy)^2+(dz)^2} $$ 曲線は多変数で表されるため、媒介変数で計算します。 \begin{align*} ds&=\sqrt{\left({dx\over dt}\right)^2+\left({dy\over dt}\right)^2+\left({dz\over dt}\right)^2}dt \end{align*}
次の線積分を計算してみましょう。 $$ f(x,y,z)=xy+yz+xz $$ 曲線が以下のような媒介変数で表されるとします($0\leq t\leq 1$)。 \begin{align*} x&=t\\ y&=1-t\\ z&=t^2 \end{align*} それぞれ微分して$ds$を計算します。 \begin{align*} ds&=\sqrt{1^2+(-1)^2+(2t)^2}\\ &=\sqrt{2+4t^2} \end{align*} $f(x,y,z)$を$t$で表します。 \begin{align*} f(x,y,z)&=t(1-t)+t^2(1-t)+t^3\\ &=t \end{align*} すると積分値は以下で表されます。 \begin{align*} \int^1_0 t\sqrt{2+4t^2}dt=\int^6_2 t u^{1/2}{du\over 8t}={1\over 8}{2\over 3}\left. u^{3/2}\right\rvert^6_2={1\over 12}(6\sqrt{6}-2\sqrt{2})={\sqrt{6}\over 2}-{\sqrt{2}\over 6} \end{align*}
from sympy import symbols, integrate, sqrt, sin, pi, diff
t = symbols("t")
x = t
y = 1 - t
z = t**2
f = x * y + y * z + z * x
ds = sqrt(diff(x) ** 2 + diff(y) ** 2 + diff(z) ** 2)
integrate(f * ds, (t, 0, 1))
ベクトル場の線微分¶
ここでベクトル場を考えます。ベクトル場の場合、長さだけでなく方向も意味を持ってきます。単位接線ベクトルを$\mathbf t$と置きます。 $$ d\mathbf r=\mathbf t ds $$ (1)から \begin{align*} ds&=\sqrt{\left({dx\over dt}\right)^2+\left({dy\over dt}\right)^2+\left({dz\over dt}\right)^2}dt\\ &=\left|\frac{d\mathbf r}{dt}\right|dt\\ \frac{ds}{dt}&=\left\lvert{d\mathbf r\over dt}\right\rvert \end{align*} ここで $$ \mathbf t={d\mathbf r\over ds}={d\mathbf r\over dt}{dt\over ds}=\frac{d\mathbf r\over dt}{\left|{d\mathbf r\over dt}\right|} $$ ベクトル場の線積分はベクトル場と単位接線ベクトルとの内積(投射)を足し合わせたものです。 $$ \int_C \mathbf F\cdot d\mathbf r=\int_C \mathbf F\cdot \mathbf t ds $$
では計算してみましょう。以下のベクトル場と線分を考えます。 \begin{align*} \mathbf F (x,y,z)=x\\ \mathbf r=(t,t^2,0)\\ 0\leq t\leq 1 \end{align*} それぞれ微分をとると、 \begin{align*} {dx\over dt}&=1\\ {dy\over dt}&=2t\\ {dz\over dt}&=0\\ \end{align*} 線積分を計算すると \begin{align*} \int^1_0 t\sqrt{1+4t^2} dt=\int^5_1 t u^{1\over 2}{du\over 8t}dt={1\over 8}\int^5_1 u^{1\over 2}du={1\over 8}{2\over 3}\left. u^{3\over 2}\right\vert^5_1={1\over 12}(5\sqrt{5}-1) \end{align*}
f = t * sqrt(1 + 4 * t**2)
integrate(f, (t, 0, 1))