0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ナブラ演算子と勾配・発散・回転を簡単にまとめる

0
Posted at

はじめに

$\nabla$ が出てくると身構えてしまうので、勾配・発散・回転の3つを、偏微分の計算から途中式を省かずにまとめてみました。

ひとことで言うと

ナブラ演算子 $\nabla$ は「各方向の偏微分を並べたベクトル」のような記号で、何にどう掛けるかで3つの意味になります。

\nabla = \left( \frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z} \right)
名前 書き方 入力 出力 意味
勾配(grad) $\nabla f$ スカラー場 ベクトル場 いちばん急に増える向きと、その増え方
発散(div) $\nabla \cdot F$ ベクトル場 スカラー場 その点から湧き出している量
回転(rot / curl) $\nabla \times F$ ベクトル場 ベクトル場 その点のまわりの渦の強さと軸の向き

div は内積、rot はベクトル積の形をしているので、計算方法は前回の記事「転置と内積・外積を簡単にまとめる」もあわせてどうぞ。

ただし $\nabla$ は数が入ったふつうのベクトルではなく、「右側にあるものを微分する」という操作を並べたものです。そのため $\nabla f$ を $f \nabla$ と書き換えることはできません。

準備:偏微分の計算方法

grad・div・rot はどれも偏微分を並べたり足したりしているだけなので、まず偏微分の計算方法をおさえます。

ふつうの微分のおさらい

この記事で使う微分のルールは次の3つだけです。

ルール 式 例
べき乗 $\dfrac{d}{dx} x^n = n x^{n-1}$ $\dfrac{d}{dx} x^3 = 3x^2$、$\dfrac{d}{dx} x = 1$
定数 $\dfrac{d}{dx} c = 0$ $\dfrac{d}{dx} 5 = 0$
定数倍・和 $\dfrac{d}{dx} \{ a\,g(x) + b\,h(x) \} = a\,g'(x) + b\,h'(x)$ $\dfrac{d}{dx} (4x^2 + 3x) = 8x + 3$

偏微分は「ほかの変数を定数とみなして微分する」

$f(x, y, z)$ のように変数が複数ある関数で、1つの変数だけに注目して微分するのが偏微分です。

  • $\dfrac{\partial f}{\partial x}$:$y$ と $z$ を定数とみなして、$x$ で微分する
  • $\dfrac{\partial f}{\partial y}$:$x$ と $z$ を定数とみなして、$y$ で微分する
  • $\dfrac{\partial f}{\partial z}$:$x$ と $y$ を定数とみなして、$z$ で微分する

$\partial$ は「ラウンドディー」や「デル」と読みます。$d$ ではなく $\partial$ と書くのは「ほかにも変数があるけど、今はこの変数だけで微分しています」という目印です。

例:$f = x^2 y + y z^3$ を偏微分する

この記事を通して、次の関数を例に使います。

f(x, y, z) = x^2 y + y z^3

$x$ で偏微分する

$y$ と $z$ を定数とみなします。1項ずつ見ていきます。

  • 1項目 $x^2 y$:$y$ は定数なので、$x^2$ に係数 $y$ が掛かっているだけです。$\dfrac{\partial}{\partial x}(x^2 y) = y \cdot \dfrac{\partial}{\partial x} x^2 = y \cdot 2x = 2xy$
  • 2項目 $y z^3$:$x$ が入っていないので、まるごと定数です。$\dfrac{\partial}{\partial x}(y z^3) = 0$
\frac{\partial f}{\partial x} = 2xy + 0 = 2xy

$y$ で偏微分する

$x$ と $z$ を定数とみなします。

  • 1項目 $x^2 y$:$x^2$ が係数です。$\dfrac{\partial}{\partial y}(x^2 y) = x^2 \cdot \dfrac{\partial}{\partial y} y = x^2 \cdot 1 = x^2$
  • 2項目 $y z^3$:$z^3$ が係数です。$\dfrac{\partial}{\partial y}(y z^3) = z^3 \cdot \dfrac{\partial}{\partial y} y = z^3 \cdot 1 = z^3$
\frac{\partial f}{\partial y} = x^2 + z^3

$z$ で偏微分する

$x$ と $y$ を定数とみなします。

  • 1項目 $x^2 y$:$z$ が入っていないので定数です。$\dfrac{\partial}{\partial z}(x^2 y) = 0$
  • 2項目 $y z^3$:$y$ が係数です。$\dfrac{\partial}{\partial z}(y z^3) = y \cdot \dfrac{\partial}{\partial z} z^3 = y \cdot 3z^2 = 3yz^2$
\frac{\partial f}{\partial z} = 0 + 3yz^2 = 3yz^2

2回偏微分する

偏微分した結果をもう一度偏微分することもできます。たとえば $\dfrac{\partial f}{\partial x} = 2xy$ をさらに $x$ で偏微分すると次のようになります。

\frac{\partial^2 f}{\partial x^2} = \frac{\partial}{\partial x}\left( \frac{\partial f}{\partial x} \right) = \frac{\partial}{\partial x}(2xy) = 2y \cdot \frac{\partial}{\partial x} x = 2y \cdot 1 = 2y

違う変数で続けて偏微分することもできます。$\dfrac{\partial f}{\partial x} = 2xy$ を $y$ で偏微分すると次のとおりです。

\frac{\partial}{\partial y}\left( \frac{\partial f}{\partial x} \right) = \frac{\partial}{\partial y}(2xy) = 2x \cdot \frac{\partial}{\partial y} y = 2x

逆の順番で、$\dfrac{\partial f}{\partial y} = x^2 + z^3$ を $x$ で偏微分してみます。

\frac{\partial}{\partial x}\left( \frac{\partial f}{\partial y} \right) = \frac{\partial}{\partial x}(x^2 + z^3) = 2x + 0 = 2x

どちらも $2x$ で一致しました。$f$ が2回続けて微分できて、その結果が連続な関数(多項式など、ふつうに出てくる関数はたいていこれに当てはまります)なら、偏微分する順番を入れ替えても結果は同じになります(シュワルツの定理)。この性質は最後の「覚えておくと便利な性質」で使います。

勾配(grad)

スカラー場 $f(x, y, z)$ に $\nabla$ を掛けます。$\nabla$ の各成分を $f$ に作用させるだけです。

\nabla f = \left( \frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z} \right) f = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z} \right)

例1:お椀の形 $f = x^2 + y^2$(2次元)

イメージをつかむために、まず2次元の例を見ます。$f(x, y) = x^2 + y^2$ は原点がいちばん低いお椀の形です。

\frac{\partial f}{\partial x} = \frac{\partial}{\partial x}(x^2) + \frac{\partial}{\partial x}(y^2) = 2x + 0 = 2x
\frac{\partial f}{\partial y} = \frac{\partial}{\partial y}(x^2) + \frac{\partial}{\partial y}(y^2) = 0 + 2y = 2y
\nabla f = (2x, 2y)

点 $(1, 2)$ では $\nabla f = (2 \cdot 1, 2 \cdot 2) = (2, 4)$ です。原点から離れる向き、つまりお椀の坂を登る向きを指しています。

  • 例:山の標高を $f$ とすると、$\nabla f$ はいちばん急な登り坂の向きを指す
  • 機械学習の勾配降下法は、損失関数の勾配と逆向き($-\nabla L$)にパラメータを動かす

勾配による変化
図1:勾配による変化。上はお椀の形 $f = x^2 + y^2$、下はまっすぐな坂 $f = x + y$ で、左のスカラー場に $\nabla$ を掛けると右のベクトル場になる

上の段がこの例です。下の段はまっすぐな坂 $f = x + y$ で、$\dfrac{\partial f}{\partial x} = 1$、$\dfrac{\partial f}{\partial y} = 1$ なので $\nabla f = (1, 1)$ になり、どこでも同じ向き・同じ長さの矢印になります。

例2:$f = x^2 y + y z^3$(3次元)

準備で計算した3つの偏微分を並べるだけです。

\nabla f = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z} \right) = \left( 2xy,\; x^2 + z^3,\; 3yz^2 \right)

点 $(1, 2, 1)$ での値は次のとおりです。

\nabla f(1, 2, 1) = \left( 2 \cdot 1 \cdot 2,\; 1^2 + 1^3,\; 3 \cdot 2 \cdot 1^2 \right) = (4, 2, 6)

発散(div)

ベクトル場 $F = (F_x, F_y, F_z)$ と $\nabla$ の内積をとります。内積は「同じ位置の成分どうしを掛けて足す」計算でした。

a \cdot b = a_x b_x + a_y b_y + a_z b_z

$a$ に $\nabla$、$b$ に $F$ を入れます。「掛ける」の部分は「右側を偏微分する」に置き換わります。

\nabla \cdot F = \left( \frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z} \right) \cdot (F_x, F_y, F_z) = \frac{\partial F_x}{\partial x} + \frac{\partial F_y}{\partial y} + \frac{\partial F_z}{\partial z}
  • 正なら湧き出し、負なら吸い込み
  • 例:水の流れで、蛇口のあたりは発散が正、排水口のあたりは発散が負

例1:外向きに広がる流れ $F = (x, y, z)$

どの点でも原点から外向きに流れていく場です。

\frac{\partial F_x}{\partial x} = \frac{\partial}{\partial x} x = 1, \quad
\frac{\partial F_y}{\partial y} = \frac{\partial}{\partial y} y = 1, \quad
\frac{\partial F_z}{\partial z} = \frac{\partial}{\partial z} z = 1
\nabla \cdot F = 1 + 1 + 1 = 3

どこでも正なので、どの点からも湧き出していることになります。

例2:くるくる回る流れ $F = (-y, x, 0)$

$xy$ 平面上で原点のまわりを反時計回りに回る流れです。たとえば点 $(1, 0, 0)$ では $F = (0, 1, 0)$ で、上向きに流れています。

\frac{\partial F_x}{\partial x} = \frac{\partial}{\partial x}(-y) = 0, \quad
\frac{\partial F_y}{\partial y} = \frac{\partial}{\partial y} x = 0, \quad
\frac{\partial F_z}{\partial z} = \frac{\partial}{\partial z} 0 = 0
\nabla \cdot F = 0 + 0 + 0 = 0

回っているだけで、湧き出しも吸い込みもありません。

例1と例2を図にすると次のようになります。例1はベクトル場を $z = 0$ の面で切って表示しています。

発散による変化
図2:発散による変化。上は外向きに広がる流れ $F = (x, y, z)$ で $\nabla \cdot F = 3$、下はくるくる回る流れ $F = (-y, x, 0)$ で $\nabla \cdot F = 0$

例3:$F = (x^2 y,\; yz,\; xz^2)$

成分ごとに、対応する変数で偏微分します。

\frac{\partial F_x}{\partial x} = \frac{\partial}{\partial x}(x^2 y) = y \cdot 2x = 2xy
\frac{\partial F_y}{\partial y} = \frac{\partial}{\partial y}(yz) = z \cdot 1 = z
\frac{\partial F_z}{\partial z} = \frac{\partial}{\partial z}(xz^2) = x \cdot 2z = 2xz
\nabla \cdot F = 2xy + z + 2xz

回転(rot / curl)

ベクトル場 $F$ と $\nabla$ のベクトル積をとります。ベクトル積の公式は次のとおりでした。

a \times b = \left( a_y b_z - a_z b_y,\; a_z b_x - a_x b_z,\; a_x b_y - a_y b_x \right)

$a$ に $\nabla = \left( \dfrac{\partial}{\partial x}, \dfrac{\partial}{\partial y}, \dfrac{\partial}{\partial z} \right)$、$b$ に $F = (F_x, F_y, F_z)$ を入れます。$a_y$ は $\dfrac{\partial}{\partial y}$、$a_z$ は $\dfrac{\partial}{\partial z}$ なので、たとえば $x$ 成分の $a_y b_z$ は $\dfrac{\partial F_z}{\partial y}$ になります。

\nabla \times F = \left(
\frac{\partial F_z}{\partial y} - \frac{\partial F_y}{\partial z},\;
\frac{\partial F_x}{\partial z} - \frac{\partial F_z}{\partial x},\;
\frac{\partial F_y}{\partial x} - \frac{\partial F_x}{\partial y}
\right)

$\nabla$ の成分は「右側を微分する」操作なので、必ず $\nabla$ 側を左に置きます。$a_y b_z$ を $b_z a_y$ と入れ替えて $F_z \dfrac{\partial}{\partial y}$ にすると、意味が変わってしまいます。

  • 例:渦を巻く流れでは、回転のベクトルが渦の軸の向きを指す
  • 向きは右ねじの法則で決まる

例1:くるくる回る流れ $F = (-y, x, 0)$

発散の例2と同じ、反時計回りの流れです。$F_x = -y$、$F_y = x$、$F_z = 0$ を1成分ずつ入れます。

$x$ 成分:

\frac{\partial F_z}{\partial y} - \frac{\partial F_y}{\partial z} = \frac{\partial}{\partial y} 0 - \frac{\partial}{\partial z} x = 0 - 0 = 0

$y$ 成分:

\frac{\partial F_x}{\partial z} - \frac{\partial F_z}{\partial x} = \frac{\partial}{\partial z}(-y) - \frac{\partial}{\partial x} 0 = 0 - 0 = 0

$z$ 成分:

\frac{\partial F_y}{\partial x} - \frac{\partial F_x}{\partial y} = \frac{\partial}{\partial x} x - \frac{\partial}{\partial y}(-y) = 1 - (-1) = 2
\nabla \times F = (0, 0, 2)

$xy$ 平面で反時計回りに回っているので、右ねじの法則で軸は $+z$ 向きになります。計算結果も $z$ 成分だけが正になっていて一致します。

例2:外向きに広がる流れ $F = (x, y, z)$

x \text{成分}: \frac{\partial}{\partial y} z - \frac{\partial}{\partial z} y = 0 - 0 = 0
y \text{成分}: \frac{\partial}{\partial z} x - \frac{\partial}{\partial x} z = 0 - 0 = 0
z \text{成分}: \frac{\partial}{\partial x} y - \frac{\partial}{\partial y} x = 0 - 0 = 0
\nabla \times F = (0, 0, 0)

まっすぐ広がっているだけで、渦はありません。

例1と例2を図にすると次のようになります。⊙ は紙面の手前向き($+z$ 向き)の矢印を表します。

回転による変化
図3:回転による変化。上はくるくる回る流れ $F = (-y, x, 0)$ で $\nabla \times F = (0, 0, 2)$、下は外向きに広がる流れ $F = (x, y, z)$ で $\nabla \times F = (0, 0, 0)$

例3:$F = (x^2 y,\; yz,\; xz^2)$

$F_x = x^2 y$、$F_y = yz$、$F_z = xz^2$ です。

$x$ 成分:

\frac{\partial F_z}{\partial y} - \frac{\partial F_y}{\partial z} = \frac{\partial}{\partial y}(xz^2) - \frac{\partial}{\partial z}(yz) = 0 - y = -y

$y$ 成分:

\frac{\partial F_x}{\partial z} - \frac{\partial F_z}{\partial x} = \frac{\partial}{\partial z}(x^2 y) - \frac{\partial}{\partial x}(xz^2) = 0 - z^2 = -z^2

$z$ 成分:

\frac{\partial F_y}{\partial x} - \frac{\partial F_x}{\partial y} = \frac{\partial}{\partial x}(yz) - \frac{\partial}{\partial y}(x^2 y) = 0 - x^2 = -x^2
\nabla \times F = \left( -y,\; -z^2,\; -x^2 \right)

覚えておくと便利な性質

  • $\nabla \times (\nabla f) = 0$:勾配の回転は0
  • $\nabla \cdot (\nabla \times F) = 0$:回転の発散は0
  • $\nabla \cdot (\nabla f) = \nabla^2 f$:勾配の発散はラプラシアン

ここでは、例で計算した結果を使って3つとも確かめてから、一般の場合も示します。$f$ や $F$ の成分は2回続けて微分できて、その結果が連続な関数とします。

勾配の回転は0

例の $f = x^2 y + y z^3$ では $\nabla f = (2xy,\; x^2 + z^3,\; 3yz^2)$ でした。これを $G = (G_x, G_y, G_z)$ とおいて回転を計算します。

x \text{成分}: \frac{\partial G_z}{\partial y} - \frac{\partial G_y}{\partial z} = \frac{\partial}{\partial y}(3yz^2) - \frac{\partial}{\partial z}(x^2 + z^3) = 3z^2 - 3z^2 = 0
y \text{成分}: \frac{\partial G_x}{\partial z} - \frac{\partial G_z}{\partial x} = \frac{\partial}{\partial z}(2xy) - \frac{\partial}{\partial x}(3yz^2) = 0 - 0 = 0
z \text{成分}: \frac{\partial G_y}{\partial x} - \frac{\partial G_x}{\partial y} = \frac{\partial}{\partial x}(x^2 + z^3) - \frac{\partial}{\partial y}(2xy) = 2x - 2x = 0

一般の $f$ でも、回転の公式に $F = \nabla f$ を入れると次のようになります。

\nabla \times (\nabla f) = \left(
\frac{\partial}{\partial y}\frac{\partial f}{\partial z} - \frac{\partial}{\partial z}\frac{\partial f}{\partial y},\;
\frac{\partial}{\partial z}\frac{\partial f}{\partial x} - \frac{\partial}{\partial x}\frac{\partial f}{\partial z},\;
\frac{\partial}{\partial x}\frac{\partial f}{\partial y} - \frac{\partial}{\partial y}\frac{\partial f}{\partial x}
\right)

どの成分も「同じ2つの変数で、順番だけ違う偏微分」の引き算です。準備で見たとおり順番を入れ替えても結果は同じなので、すべて0になります。

回転の発散は0

例の $F = (x^2 y,\; yz,\; xz^2)$ では $\nabla \times F = (-y,\; -z^2,\; -x^2)$ でした。この発散を計算します。

\frac{\partial}{\partial x}(-y) + \frac{\partial}{\partial y}(-z^2) + \frac{\partial}{\partial z}(-x^2) = 0 + 0 + 0 = 0

一般の $F$ でも、回転の各成分を発散の公式に入れて展開します。

\begin{aligned}
\nabla \cdot (\nabla \times F)
&= \frac{\partial}{\partial x}\left( \frac{\partial F_z}{\partial y} - \frac{\partial F_y}{\partial z} \right)
 + \frac{\partial}{\partial y}\left( \frac{\partial F_x}{\partial z} - \frac{\partial F_z}{\partial x} \right)
 + \frac{\partial}{\partial z}\left( \frac{\partial F_y}{\partial x} - \frac{\partial F_x}{\partial y} \right) \\
&= \frac{\partial}{\partial x}\frac{\partial F_z}{\partial y} - \frac{\partial}{\partial x}\frac{\partial F_y}{\partial z}
 + \frac{\partial}{\partial y}\frac{\partial F_x}{\partial z} - \frac{\partial}{\partial y}\frac{\partial F_z}{\partial x}
 + \frac{\partial}{\partial z}\frac{\partial F_y}{\partial x} - \frac{\partial}{\partial z}\frac{\partial F_x}{\partial y}
\end{aligned}

同じ成分どうしで並べ替えます。

= \left( \frac{\partial}{\partial x}\frac{\partial F_z}{\partial y} - \frac{\partial}{\partial y}\frac{\partial F_z}{\partial x} \right)
+ \left( \frac{\partial}{\partial z}\frac{\partial F_y}{\partial x} - \frac{\partial}{\partial x}\frac{\partial F_y}{\partial z} \right)
+ \left( \frac{\partial}{\partial y}\frac{\partial F_x}{\partial z} - \frac{\partial}{\partial z}\frac{\partial F_x}{\partial y} \right)

各かっこの中は、順番だけ違う偏微分の引き算なので0です。よって全体も0になります。

勾配の発散はラプラシアン

発散の公式に $F = \nabla f = \left( \dfrac{\partial f}{\partial x}, \dfrac{\partial f}{\partial y}, \dfrac{\partial f}{\partial z} \right)$ を入れます。

\nabla \cdot (\nabla f) = \frac{\partial}{\partial x}\frac{\partial f}{\partial x} + \frac{\partial}{\partial y}\frac{\partial f}{\partial y} + \frac{\partial}{\partial z}\frac{\partial f}{\partial z} = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} + \frac{\partial^2 f}{\partial z^2}

この「同じ変数で2回偏微分したものの和」をラプラシアンと呼び、$\nabla^2 f$(または $\Delta f$)と書きます。

例の $f = x^2 y + y z^3$ で計算します。$\nabla f = (2xy,\; x^2 + z^3,\; 3yz^2)$ なので、

\frac{\partial^2 f}{\partial x^2} = \frac{\partial}{\partial x}(2xy) = 2y, \quad
\frac{\partial^2 f}{\partial y^2} = \frac{\partial}{\partial y}(x^2 + z^3) = 0, \quad
\frac{\partial^2 f}{\partial z^2} = \frac{\partial}{\partial z}(3yz^2) = 3y \cdot 2z = 6yz
\nabla^2 f = 2y + 0 + 6yz = 2y + 6yz

まとめ

$\nabla$ を「偏微分のベクトル」と思えば、grad はスカラー倍、div は内積、rot はベクトル積と覚えられます。
偏微分も「ほかの変数を定数とみなして微分する」だけなので、1項ずつ落ち着いて計算すれば大丈夫です。
もっと直感的な説明があれば、有識者の方教えて欲しいです!

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?