Return to スカラー場・ベクトル場の微分

参考:Maxima-Jupyter でスカラー場・ベクトル場の微分

偏微分

Maxima では,偏微分は1変数の場合の微分と同じ diff() 関数を使って
diff(f(x, y), x);diff(f(x, y), y); などと書きます。

(Maxima-Jupyter の表示は $\displaystyle \frac{\partial}{\partial x} f(x,y)$ ではなく,$\displaystyle \frac{d}{dx} f(x,y)$ となってしまいますが,そこはご了承願います。)

In [1]:
diff(f(x, y), x);
diff(f(x, y), y);
Out[1]:
\[\tag{${\it \%o}_{1}$}\frac{d}{d\,x}\,f\left(x , y\right)\]
Out[1]:
\[\tag{${\it \%o}_{2}$}\frac{d}{d\,y}\,f\left(x , y\right)\]

偏微分は交換可能

$$\frac{\partial^2}{\partial x \partial y} f(x, y) = \frac{\partial^2}{\partial y \partial x} f(x, y)$$

です。

$$\frac{\partial^2}{\partial x \partial y} f(x, y) – \frac{\partial^2}{\partial y \partial x} f(x, y) = 0$$

を示してみます。

In [2]:
diff(diff(f(x, y), y), x) - diff(diff(f(x, y), y), x);
Out[2]:
\[\tag{${\it \%o}_{3}$}0\]

スカラー場の勾配(grad)

スカラー場 $\varphi(\boldsymbol{r})$ の勾配を定義する。

$$\nabla \varphi \equiv \mbox{grad}\, \varphi = \left(\frac{\partial \varphi}{\partial x}, \frac{\partial \varphi}{\partial y},\frac{\partial \varphi}{\partial z}\right)$$

In [3]:
grad(phi):= [diff(phi, x), diff(phi, y), diff(phi, z)];
Out[3]:
\[\tag{${\it \%o}_{4}$}{\it grad}\left(\varphi\right):=\left[ {\it diff}\left(\varphi , x\right) , {\it diff}\left(\varphi , y\right) , {\it diff}\left(\varphi , z\right) \right] \]

勾配(grad)の計算例

$r = \sqrt{x^2 + y^2 + z^2}$ のとき,以下の計算をしてみます。

$$\nabla r = \frac{\partial r}{\partial x} \boldsymbol{i}
+\frac{\partial r}{\partial y} \boldsymbol{j}
+\frac{\partial r}{\partial z} \boldsymbol{k} $$

In [4]:
'rvec = rvec: [x, y, z];
'r = r: sqrt(rvec.rvec);
Out[4]:
\[\tag{${\it \%o}_{5}$}{\it rvec}=\left[ x , y , z \right] \]
Out[4]:
\[\tag{${\it \%o}_{6}$}r=\sqrt{z^2+y^2+x^2}\]
In [5]:
'grad('r) = grad(r);
Out[5]:
\[\tag{${\it \%o}_{7}$}{\it grad}\left(r\right)=\left[ \frac{x}{\sqrt{z^2+y^2+x^2}} , \frac{y}{\sqrt{z^2+y^2+x^2}} , \frac{z}{\sqrt{z^2+y^2+x^2}} \right] \]

上の結果が

$$\nabla r =\frac{x}{r} \,\boldsymbol{i} + \frac{y}{r} \,\boldsymbol{j} + \frac{z}{r} \,\boldsymbol{k} = \frac{\boldsymbol{r}}{r}$$

となっていることを確認します。

左辺から右辺を引いてゼロベクトルになっていればいいですから…

In [6]:
grad(r) - rvec/r;
Out[6]:
\[\tag{${\it \%o}_{8}$}\left[ 0 , 0 , 0 \right] \]

また,電磁気学では以下のような計算をする必要も出てくるので,やっておきます。

$$\nabla \left(\frac{1}{r}\right) = – \frac{\boldsymbol{r}}{r^3}$$

In [7]:
'grad(1/'r) = grad(1/r);
grad(1/r) + rvec/r**3;
Out[7]:
\[\tag{${\it \%o}_{9}$}{\it grad}\left(\frac{1}{r}\right)=\left[ -\frac{x}{\left(z^2+y^2+x^2\right)^{\frac{3}{2}}} , -\frac{y}{\left(z^2+y^2+x^2\right)^{\frac{3}{2}}} , -\frac{z}{\left(z^2+y^2+x^2\right)^{\frac{3}{2}}} \right] \]
Out[7]:
\[\tag{${\it \%o}_{10}$}\left[ 0 , 0 , 0 \right] \]

ベクトル場の発散 (div)

ベクトル場の発散を定義する。

$$\nabla\cdot\boldsymbol{v} \equiv \mbox{div}\, \boldsymbol{v} = \frac{\partial v_x}{\partial x} + \frac{\partial v_y}{\partial y} + \frac{\partial v_z}{\partial z}$$

In [8]:
div(v):= diff(v[1], x) + diff(v[2], y) + diff(v[3], z);
Out[8]:
\[\tag{${\it \%o}_{11}$}{\it div}\left(v\right):={\it diff}\left(v_{1} , x\right)+{\it diff}\left(v_{2} , y\right)+{\it diff}\left(v_{3} , z\right)\]

発散 (div) の計算例

$$\nabla\cdot \boldsymbol{r} = \frac{\partial x}{\partial x} + \frac{\partial y}{\partial y} +\frac{\partial z}{\partial z} = 1+1+1 = 3$$

(答えは空間の次元の数)

In [9]:
'div('rvec) = div(rvec);
Out[9]:
\[\tag{${\it \%o}_{12}$}{\it div}\left({\it rvec}\right)=3\]

ベクトル場の回転 (rot)

ベクトルの回転を以下のようにして定義します。

\begin{eqnarray}
\nabla\times\boldsymbol{v} \equiv \mbox{rot}\, \boldsymbol{v}
&=&\left( \frac{\partial}{\partial y} v_z – \frac{\partial}{\partial z} v_y, \frac{\partial}{\partial z} v_x – \frac{\partial}{\partial x} v_z, \frac{\partial}{\partial x} v_y – \frac{\partial}{\partial y} v_x\right)
\end{eqnarray}

In [10]:
rot(v):= [diff(v[3], y) - diff(v[2], z), 
          diff(v[1], z) - diff(v[3], x), 
          diff(v[2], x) - diff(v[1], y)]$

回転 (rot) の計算例

$$\nabla\times \left(\frac{\boldsymbol{r}}{r}\right)$$

In [11]:
'rot('rvec/'r) = rot(rvec/r);
Out[11]:
\[\tag{${\it \%o}_{14}$}{\it rot}\left(\frac{{\it rvec}}{r}\right)=\left[ 0 , 0 , 0 \right] \]

スカラー場やベクトル場の2階微分と恒等式

勾配 (grad) の発散 (div)

スカラー場 $\varphi$ の勾配 $\nabla \varphi$ の発散 $\nabla\cdot(\nabla \varphi) $

In [12]:
div(grad(phi(x,y,z)));
Out[12]:
\[\tag{${\it \%o}_{15}$}\frac{d^2}{d\,z^2}\,\varphi\left(x , y , z\right)+\frac{d^2}{d\,y^2}\,\varphi\left(x , y , z\right)+\frac{d^2}{d\,x^2}\,\varphi\left(x , y , z\right)\]
ラプラス演算子の計算例

$$\nabla^2 \left(\frac{1}{r}\right) = 0 \quad (r \neq 0)$$

を確認します。

In [13]:
Laplacian(phi):= div(grad(phi));
Out[13]:
\[\tag{${\it \%o}_{16}$}{\it Laplacian}\left(\varphi\right):={\it div}\left({\it grad}\left(\varphi\right)\right)\]
In [14]:
'Laplacian(1/r) = Laplacian(1/r), ratsimp;
Out[14]:
\[\tag{${\it \%o}_{17}$}{\it Laplacian}\left(\frac{1}{\sqrt{z^2+y^2+x^2}}\right)=0\]

勾配 (grad) の回転 (rot)

スカラー場 $\varphi$ の勾配 $\nabla \varphi$ の回転 $\nabla\times(\nabla \varphi) $。

恒等的に
$$\nabla\times(\nabla \varphi) = \boldsymbol{0}$$である。

In [15]:
/* phi が x, y, z の関数であることを宣言する。*/
depends(phi, [x, y, z]);
Out[15]:
\[\tag{${\it \%o}_{18}$}\left[ \varphi\left(x , y , z\right) \right] \]
In [16]:
'grad(phi) = grad(phi);
Out[16]:
\[\tag{${\it \%o}_{19}$}{\it grad}\left(\varphi\right)=\left[ \frac{d}{d\,x}\,\varphi , \frac{d}{d\,y}\,\varphi , \frac{d}{d\,z}\,\varphi \right] \]
In [17]:
'rot('grad(phi)) = rot(grad(phi));
Out[17]:
\[\tag{${\it \%o}_{20}$}{\it rot}\left({\it grad}\left(\varphi\right)\right)=\left[ 0 , 0 , 0 \right] \]

回転 (rot) の発散 (div)

ベクトル場 $\boldsymbol{a}$ の回転 $\nabla \times\boldsymbol{a} $ の発散 $\nabla\cdot(\nabla \times\boldsymbol{a}) $

恒等的に
\begin{eqnarray}
\nabla\cdot(\nabla \times\boldsymbol{a}) &=&
0 \end{eqnarray}
である。

In [18]:
/* ベクトル a の定義。*/
a: [a1, a2, a3]$
/* a の各成分は x, y, z に依存する。*/
depends([a1, a2, a3], [x, y, z])$

'rot(a) = rot(a);
'div('rot(a)) = div(rot(a));
Out[18]:
\[\tag{${\it \%o}_{23}$}{\it rot}\left(\left[ a_{1} , a_{2} , a_{3} \right] \right)=\left[ \frac{d}{d\,y}\,a_{3}-\frac{d}{d\,z}\,a_{2} , \frac{d}{d\,z}\,a_{1}-\frac{d}{d\,x}\,a_{3} , \frac{d}{d\,x}\,a_{2}-\frac{d}{d\,y}\,a_{1} \right] \]
Out[18]:
\[\tag{${\it \%o}_{24}$}{\it div}\left({\it rot}\left(\left[ a_{1} , a_{2} , a_{3} \right] \right)\right)=0\]

回転 (rot) の回転 (rot)

ベクトル場 $\boldsymbol{a}$ の回転 $\nabla \times\boldsymbol{a} $ の回転 $\nabla\times(\nabla \times\boldsymbol{a}) $

$$ \nabla\times(\nabla \times\boldsymbol{a}) = \nabla\left( \nabla\cdot\boldsymbol{a} \right) – \nabla^2 \boldsymbol{a} $$

が成り立つことを確認する。

In [19]:
rot(rot(a)) - 
  (grad(div(a)) - Laplacian(a));
Out[19]:
\[\tag{${\it \%o}_{25}$}\left[ 0 , 0 , 0 \right] \]

追記:外積の発散

一般に,2つのベクトル $\boldsymbol{E}, \ \boldsymbol{B}$ の外積 $\boldsymbol{E}\times\boldsymbol{B}$ の発散は,それぞれのベクトルの回転を使って以下のように書くことができる。

$$\nabla\cdot\left( \boldsymbol{E}\times\boldsymbol{B}\right)
= \left(\nabla\times\boldsymbol{E} \right)\cdot\boldsymbol{B}
– \boldsymbol{E}\cdot\left(\nabla\times\boldsymbol{B} \right)$$

この式は,電磁場のエネルギー密度・エネルギー流束のところで出てくる。

In [20]:
/* 外積の定義 */
cross(u, v):=
           [u[2]*v[3] - u[3]*v[2],
            u[3]*v[1] - u[1]*v[3],
            u[1]*v[2] - u[2]*v[1]]$
In [21]:
E : [Ex, Ey, Ez]$
B : [Bx, By, Bz]$
depends([Ex, Ey, Ez, Bx, By, Bz], [x, y, z])$
In [22]:
/* 右辺から左辺を引いてゼロであることを示す */

(rot(E).B - E.rot(B)) - div(cross(E, B)), expand;
Out[22]:
\[\tag{${\it \%o}_{30}$}0\]

追記:スカラーとベクトルの積の発散

$$\nabla\cdot\left( \phi\,\boldsymbol{D}\right) = \left(\nabla\phi\right)\cdot\boldsymbol{D} +\left(\nabla\cdot\boldsymbol{D}\right)\,\phi$$

この式も,電磁場のエネルギー密度・エネルギー流束のところで出てくる。

In [23]:
/* 右辺から左辺を引いてゼロであることを示す */

depends(phi, [x,y,z])$
D: [Dx, Dy, Dy]$
depends([Dx, Dy, Dy], [x, y, z])$

grad(phi).D + div(D) * phi - div(phi*D), expand;
Out[23]:
\[\tag{${\it \%o}_{34}$}0\]