偏微分
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)$ となってしまいますが,そこはご了承願います。)
diff(f(x, y), x);
diff(f(x, y), y);
偏微分は交換可能
$$\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$$
を示してみます。
diff(diff(f(x, y), y), x) - diff(diff(f(x, y), y), x);
スカラー場の勾配(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)$$
grad(phi):= [diff(phi, x), diff(phi, y), diff(phi, z)];
勾配(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} $$
'rvec = rvec: [x, y, z];
'r = r: sqrt(rvec.rvec);
'grad('r) = grad(r);
上の結果が
$$\nabla r =\frac{x}{r} \,\boldsymbol{i} + \frac{y}{r} \,\boldsymbol{j} + \frac{z}{r} \,\boldsymbol{k} = \frac{\boldsymbol{r}}{r}$$
となっていることを確認します。
左辺から右辺を引いてゼロベクトルになっていればいいですから…
grad(r) - rvec/r;
また,電磁気学では以下のような計算をする必要も出てくるので,やっておきます。
$$\nabla \left(\frac{1}{r}\right) = – \frac{\boldsymbol{r}}{r^3}$$
'grad(1/'r) = grad(1/r);
grad(1/r) + rvec/r**3;
ベクトル場の発散 (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}$$
div(v):= diff(v[1], x) + diff(v[2], y) + diff(v[3], z);
発散 (div) の計算例
$$\nabla\cdot \boldsymbol{r} = \frac{\partial x}{\partial x} + \frac{\partial y}{\partial y} +\frac{\partial z}{\partial z} = 1+1+1 = 3$$
(答えは空間の次元の数)
'div('rvec) = div(rvec);
ベクトル場の回転 (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}
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)$$
'rot('rvec/'r) = rot(rvec/r);
スカラー場やベクトル場の2階微分と恒等式
勾配 (grad) の発散 (div)
スカラー場 $\varphi$ の勾配 $\nabla \varphi$ の発散 $\nabla\cdot(\nabla \varphi) $
div(grad(phi(x,y,z)));
ラプラス演算子の計算例
$$\nabla^2 \left(\frac{1}{r}\right) = 0 \quad (r \neq 0)$$
を確認します。
Laplacian(phi):= div(grad(phi));
'Laplacian(1/r) = Laplacian(1/r), ratsimp;
勾配 (grad) の回転 (rot)
スカラー場 $\varphi$ の勾配 $\nabla \varphi$ の回転 $\nabla\times(\nabla \varphi) $。
恒等的に
$$\nabla\times(\nabla \varphi) = \boldsymbol{0}$$である。
/* phi が x, y, z の関数であることを宣言する。*/
depends(phi, [x, y, z]);
'grad(phi) = grad(phi);
'rot('grad(phi)) = rot(grad(phi));
回転 (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}
である。
/* ベクトル 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));
回転 (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} $$
が成り立つことを確認する。
rot(rot(a)) -
(grad(div(a)) - Laplacian(a));
追記:外積の発散
一般に,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)$$
この式は,電磁場のエネルギー密度・エネルギー流束のところで出てくる。
/* 外積の定義 */
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]]$
E : [Ex, Ey, Ez]$
B : [Bx, By, Bz]$
depends([Ex, Ey, Ez, Bx, By, Bz], [x, y, z])$
/* 右辺から左辺を引いてゼロであることを示す */
(rot(E).B - E.rot(B)) - div(cross(E, B)), expand;
追記:スカラーとベクトルの積の発散
$$\nabla\cdot\left( \phi\,\boldsymbol{D}\right) = \left(\nabla\phi\right)\cdot\boldsymbol{D} +\left(\nabla\cdot\boldsymbol{D}\right)\,\phi$$
この式も,電磁場のエネルギー密度・エネルギー流束のところで出てくる。
/* 右辺から左辺を引いてゼロであることを示す */
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;