回転(rot / curl)とは?定義と物理的意味をわかりやすく解説

回転(rotation, curl)は、ベクトル場に対して定義されるベクトル解析の基本的な演算子です。ベクトル場の回転をとると、再びベクトル場が得られます。

勾配(grad)がスカラー場の「傾き」を、発散(div)がベクトル場の「湧き出し」を表すのに対し、回転はベクトル場の「渦」を定量化する演算子です。電磁気学のマクスウェル方程式、流体力学の渦度方程式など、理工系のあらゆる分野で中心的な役割を果たします。

本記事の内容

  • 回転の直感的な理解(渦と回転方向)
  • 回転の数学的定義(行列式表記)
  • $\nabla \times \bm{F}$ の計算方法
  • ストークスの定理との関係
  • 具体的な計算例
  • 物理的な応用例(ファラデーの法則、渦度)
  • 重要な恒等式
  • Pythonでの可視化

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

また、偏微分の基本的な計算と、外積(クロス積)の概念を前提とします。

回転の直感的な理解

回転とは「場の渦」を表す量

回転の数式定義に入る前に、まず直感的なイメージをつかみましょう。

ベクトル場の中に、ごく小さな羽根車(風車)を置くことを想像してください。もしベクトル場が羽根車を回す性質を持っていれば、その場所では「渦」が存在しています。回転(rot / curl)は、この「羽根車がどれだけ強く、どの方向の軸まわりに回るか」を定量化したベクトル量です。

具体的には、回転ベクトルは次の情報を持っています。

  • 方向: 羽根車が最も強く回る軸の方向(右ねじの法則に従う)
  • 大きさ: その軸まわりの回転の強さ

例えば、$xy$ 平面上で反時計回りに渦を巻くベクトル場 $\bm{F}(x,y) = (-y, x, 0)^{\top}$ を考えると、羽根車は $z$ 軸の正の方向を軸として回転します。このとき、$\operatorname{rot} \bm{F}$ は $z$ 軸の正の方向を向きます。

回転方向と右ねじの法則

回転ベクトルの方向は右ねじの法則で決まります。右手の指を回転の方向に曲げたとき、親指が指す方向が回転ベクトルの方向です。

  • 反時計回りの渦 → 回転ベクトルは上向き($+z$ 方向)
  • 時計回りの渦 → 回転ベクトルは下向き($-z$ 方向)

発散との対比

発散(div)がベクトル場の「湧き出し・吸い込み」を表すスカラー量であるのに対し、回転は「渦」を表すベクトル量です。

発散(div) 回転(rot / curl)
入力 ベクトル場 ベクトル場
出力 スカラー場 ベクトル場
物理的意味 湧き出し・吸い込み 渦・回転
数学的表現 $\nabla \cdot \bm{F}$ $\nabla \times \bm{F}$

回転の数学的定義

成分表示による定義

3次元のベクトル場 $\bm{F}(x, y, z) = (F_x,\, F_y,\, F_z)^{\top}$ に対して、回転 $\operatorname{rot} \bm{F}$(= $\operatorname{curl} \bm{F}$)は次のように定義されます。

$$ \operatorname{rot} \bm{F} = \nabla \times \bm{F} = \begin{pmatrix} \dfrac{\partial F_z}{\partial y} – \dfrac{\partial F_y}{\partial z} \\[10pt] \dfrac{\partial F_x}{\partial z} – \dfrac{\partial F_z}{\partial x} \\[10pt] \dfrac{\partial F_y}{\partial x} – \dfrac{\partial F_x}{\partial y} \end{pmatrix} $$

各成分を言葉で表すと、次のようになります。

  • $x$ 成分: $F_z$ の $y$ 微分から $F_y$ の $z$ 微分を引く
  • $y$ 成分: $F_x$ の $z$ 微分から $F_z$ の $x$ 微分を引く
  • $z$ 成分: $F_y$ の $x$ 微分から $F_x$ の $y$ 微分を引く

添字の巡回 $(x \to y \to z \to x \to \cdots)$ に注目すると、規則性があることがわかります。

行列式表記

上の定義は、形式的な行列式を用いると簡潔に書けます。

$$ \operatorname{rot} \bm{F} = \nabla \times \bm{F} = \begin{vmatrix} \bm{e}_x & \bm{e}_y & \bm{e}_z \\[6pt] \dfrac{\partial}{\partial x} & \dfrac{\partial}{\partial y} & \dfrac{\partial}{\partial z} \\[6pt] F_x & F_y & F_z \end{vmatrix} $$

ここで、$\bm{e}_x$, $\bm{e}_y$, $\bm{e}_z$ はそれぞれ $x$, $y$, $z$ 方向の単位ベクトルです。

この行列式を展開してみましょう。第1行に沿った余因子展開を行います。

$$ \begin{align} \nabla \times \bm{F} &= \bm{e}_x \begin{vmatrix} \dfrac{\partial}{\partial y} & \dfrac{\partial}{\partial z} \\[6pt] F_y & F_z \end{vmatrix} – \bm{e}_y \begin{vmatrix} \dfrac{\partial}{\partial x} & \dfrac{\partial}{\partial z} \\[6pt] F_x & F_z \end{vmatrix} + \bm{e}_z \begin{vmatrix} \dfrac{\partial}{\partial x} & \dfrac{\partial}{\partial y} \\[6pt] F_x & F_y \end{vmatrix} \end{align} $$

各 $2 \times 2$ 行列式を計算すると、

$$ \begin{align} \nabla \times \bm{F} &= \bm{e}_x \left(\frac{\partial F_z}{\partial y} – \frac{\partial F_y}{\partial z}\right) – \bm{e}_y \left(\frac{\partial F_z}{\partial x} – \frac{\partial F_x}{\partial z}\right) + \bm{e}_z \left(\frac{\partial F_y}{\partial x} – \frac{\partial F_x}{\partial y}\right) \end{align} $$

$y$ 成分にマイナスが付いていることに注意すると、符号を整理して、

$$ \begin{align} \nabla \times \bm{F} &= \bm{e}_x \left(\frac{\partial F_z}{\partial y} – \frac{\partial F_y}{\partial z}\right) + \bm{e}_y \left(\frac{\partial F_x}{\partial z} – \frac{\partial F_z}{\partial x}\right) + \bm{e}_z \left(\frac{\partial F_y}{\partial x} – \frac{\partial F_x}{\partial y}\right) \end{align} $$

これは先ほどの成分表示と一致します。行列式表記は暗記の必要がなく、機械的に計算できるため、実用上非常に便利です。

$\nabla \times \bm{F}$ の記法について

回転には複数の記法が使われます。

記法 名称 主な使用地域
$\operatorname{rot} \bm{F}$ rotation ヨーロッパ、日本の多くの教科書
$\operatorname{curl} \bm{F}$ curl 英語圏
$\nabla \times \bm{F}$ nabla cross F 世界共通(最も一般的)

$\nabla \times \bm{F}$ という記法は、ナブラ演算子 $\nabla$ とベクトル場 $\bm{F}$ の外積(クロス積)として理解できます。ナブラ演算子を形式的にベクトルとみなすと、

$$ \nabla \times \bm{F} = \begin{pmatrix} \dfrac{\partial}{\partial x} \\[8pt] \dfrac{\partial}{\partial y} \\[8pt] \dfrac{\partial}{\partial z} \end{pmatrix} \times \begin{pmatrix} F_x \\[8pt] F_y \\[8pt] F_z \end{pmatrix} $$

と書けます。通常のベクトルの外積と同じ計算規則を適用すると、先ほどの成分表示が得られます。

ストークスの定理との関係

面積分による回転の定義

回転には、微分による定義とは別に、面積分を用いた定義があります。この定義は回転の物理的意味をより明確に表しています。

閉曲線 $C$ で囲まれた曲面 $S$ について、$\bm{F}$ の回転の $\bm{n}$ 方向成分($\bm{n}$ は曲面の法線ベクトル)は次のように定義されます。

$$ (\nabla \times \bm{F}) \cdot \bm{n} = \lim_{\Delta S \to 0} \frac{1}{\Delta S} \oint_C \bm{F} \cdot d\bm{r} $$

ここで、$\Delta S$ は閉曲線 $C$ で囲まれた面積、$\oint_C \bm{F} \cdot d\bm{r}$ はベクトル場 $\bm{F}$ の閉曲線 $C$ に沿った線積分(循環)です。

この定義は次のように解釈できます。「ある点の周りのごく小さな閉曲線に沿った循環を、閉曲線で囲まれた面積で割って極限をとったもの」が回転です。つまり、回転は単位面積あたりの循環です。

ストークスの定理

上の定義を有限の面積に拡張したものが、ストークスの定理(Stokes’ theorem)です。

$$ \boxed{\oint_C \bm{F} \cdot d\bm{r} = \iint_S (\nabla \times \bm{F}) \cdot d\bm{S}} $$

ここで、

  • 左辺: ベクトル場 $\bm{F}$ の閉曲線 $C$ に沿った線積分
  • 右辺: 回転 $\nabla \times \bm{F}$ の曲面 $S$ 上での面積分
  • $C$ は曲面 $S$ の境界曲線

ストークスの定理は「閉曲線に沿った循環(左辺)は、その曲線で囲まれた面を通る渦の総量(右辺)に等しい」ということを意味しています。

これは、発散(div)とガウスの発散定理の関係に対応するものです。発散定理が「閉曲面からの流出 = 体積内の湧き出し」を表すのに対し、ストークスの定理は「閉曲線に沿った循環 = 面を通る渦」を表します。

具体的な計算例

例1: $\bm{F} = (-y,\, x,\, 0)^{\top}$

反時計回りの渦を表すベクトル場の回転を計算してみましょう。

$$ \bm{F}(x, y, z) = \begin{pmatrix} -y \\ x \\ 0 \end{pmatrix} $$

各成分は $F_x = -y$, $F_y = x$, $F_z = 0$ です。行列式表記から計算します。

$$ \nabla \times \bm{F} = \begin{vmatrix} \bm{e}_x & \bm{e}_y & \bm{e}_z \\[6pt] \dfrac{\partial}{\partial x} & \dfrac{\partial}{\partial y} & \dfrac{\partial}{\partial z} \\[6pt] -y & x & 0 \end{vmatrix} $$

$x$ 成分を計算します。

$$ \frac{\partial F_z}{\partial y} – \frac{\partial F_y}{\partial z} = \frac{\partial (0)}{\partial y} – \frac{\partial (x)}{\partial z} = 0 – 0 = 0 $$

$y$ 成分を計算します。

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

$z$ 成分を計算します。

$$ \frac{\partial F_y}{\partial x} – \frac{\partial F_x}{\partial y} = \frac{\partial (x)}{\partial x} – \frac{\partial (-y)}{\partial y} = 1 – (-1) = 2 $$

したがって、

$$ \nabla \times \bm{F} = \begin{pmatrix} 0 \\ 0 \\ 2 \end{pmatrix} = 2\bm{e}_z $$

回転ベクトルは $z$ 軸の正方向を向いており、大きさは $2$ です。これは、ベクトル場 $\bm{F} = (-y, x, 0)^{\top}$ が $z$ 軸まわりに一様な渦を持っていることを意味しています。右ねじの法則に従い、$z$ 軸正方向は反時計回りの回転に対応しており、ベクトル場の様子と整合します。

例2: $\bm{F} = (yz,\, xz,\, xy)^{\top}$

もう少し複雑な例を計算してみましょう。

$$ \bm{F}(x, y, z) = \begin{pmatrix} yz \\ xz \\ xy \end{pmatrix} $$

$x$ 成分を計算します。

$$ \frac{\partial F_z}{\partial y} – \frac{\partial F_y}{\partial z} = \frac{\partial (xy)}{\partial y} – \frac{\partial (xz)}{\partial z} = x – x = 0 $$

$y$ 成分を計算します。

$$ \frac{\partial F_x}{\partial z} – \frac{\partial F_z}{\partial x} = \frac{\partial (yz)}{\partial z} – \frac{\partial (xy)}{\partial x} = y – y = 0 $$

$z$ 成分を計算します。

$$ \frac{\partial F_y}{\partial x} – \frac{\partial F_x}{\partial y} = \frac{\partial (xz)}{\partial x} – \frac{\partial (yz)}{\partial y} = z – z = 0 $$

したがって、

$$ \nabla \times \bm{F} = \begin{pmatrix} 0 \\ 0 \\ 0 \end{pmatrix} = \bm{0} $$

回転がゼロベクトルになりました。回転がゼロになるベクトル場を渦なし場(irrotational field)と呼びます。

実は、$\bm{F} = (yz, xz, xy)^{\top}$ はスカラー場 $\phi(x,y,z) = xyz$ の勾配 $\nabla \phi$ です。これは後述する恒等式 $\nabla \times (\nabla \phi) = \bm{0}$ の具体例になっています。

例3: $\bm{F} = (x^2 z,\, -2xz,\, xz^2)^{\top}$

$$ \bm{F}(x, y, z) = \begin{pmatrix} x^2 z \\ -2xz \\ xz^2 \end{pmatrix} $$

$x$ 成分を計算します。

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

$y$ 成分を計算します。

$$ \frac{\partial F_x}{\partial z} – \frac{\partial F_z}{\partial x} = \frac{\partial (x^2 z)}{\partial z} – \frac{\partial (xz^2)}{\partial x} = x^2 – z^2 $$

$z$ 成分を計算します。

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

したがって、

$$ \nabla \times \bm{F} = \begin{pmatrix} 2x \\ x^2 – z^2 \\ -2z \end{pmatrix} $$

この例では、回転ベクトルが位置 $(x, y, z)$ に依存しています。つまり、場所によって渦の強さと方向が変化するベクトル場です。

物理的な応用例

ファラデーの電磁誘導の法則

電磁気学のマクスウェル方程式の1つであるファラデーの法則は、回転を用いて次のように表されます。

$$ \nabla \times \bm{E} = -\frac{\partial \bm{B}}{\partial t} $$

ここで、$\bm{E}$ は電場、$\bm{B}$ は磁束密度です。この式は「時間変化する磁場が電場の渦を生む」ことを表しています。

ストークスの定理を適用すると、積分形のファラデーの法則が得られます。

$$ \oint_C \bm{E} \cdot d\bm{r} = -\frac{d}{dt}\iint_S \bm{B} \cdot d\bm{S} $$

左辺は閉曲線 $C$ に沿った起電力(EMF)、右辺は曲面 $S$ を貫く磁束の時間変化率です。これが発電機やトランスの動作原理の数学的基盤です。

同様に、アンペール・マクスウェルの法則も回転で表されます。

$$ \nabla \times \bm{B} = \mu_0 \bm{J} + \mu_0 \epsilon_0 \frac{\partial \bm{E}}{\partial t} $$

ここで、$\bm{J}$ は電流密度、$\mu_0$ は真空の透磁率、$\epsilon_0$ は真空の誘電率です。「電流や時間変化する電場が磁場の渦を生む」ことを表しています。

流体力学における渦度

流体力学では、速度場 $\bm{v}(x,y,z)$ の回転を渦度(vorticity) $\bm{\omega}$ と呼びます。

$$ \bm{\omega} = \nabla \times \bm{v} $$

渦度は流体の局所的な回転運動を表す重要な量です。

  • $\bm{\omega} = \bm{0}$: 渦なし流れ(ポテンシャル流)。流体要素は回転しない
  • $\bm{\omega} \neq \bm{0}$: 渦あり流れ。流体要素が自転している

例えば、台風の中心付近では渦度が大きく、大気が激しく回転しています。航空宇宙分野でも、翼まわりの渦度分布は揚力の発生メカニズムを理解するうえで不可欠です。

重要な恒等式

回転に関連する2つの重要な恒等式を紹介します。これらはベクトル解析の理論において基本的な役割を果たします。

恒等式1: $\nabla \times (\nabla f) = \bm{0}$

スカラー場の勾配の回転は常にゼロです。

$$ \nabla \times (\nabla f) = \bm{0} $$

これを成分ごとに確認しましょう。$\nabla f = \left(\dfrac{\partial f}{\partial x},\, \dfrac{\partial f}{\partial y},\, \dfrac{\partial f}{\partial z}\right)^{\top}$ の回転の $z$ 成分は、

$$ \frac{\partial}{\partial x}\left(\frac{\partial f}{\partial y}\right) – \frac{\partial}{\partial y}\left(\frac{\partial f}{\partial x}\right) = \frac{\partial^2 f}{\partial x \partial y} – \frac{\partial^2 f}{\partial y \partial x} $$

$f$ が2回連続微分可能であれば、偏微分の順序を交換できるため(シュワルツの定理)、

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

よって、$z$ 成分は $0$ です。$x$ 成分、$y$ 成分についても同様に $0$ となるため、

$$ \nabla \times (\nabla f) = \bm{0} $$

が示されます。

物理的には、保存力場(ポテンシャルの勾配で書けるベクトル場)は渦なし場であるということを意味しています。例えば、重力場 $\bm{g} = -\nabla \phi$ の回転はゼロです。

逆に、$\nabla \times \bm{F} = \bm{0}$ であるベクトル場 $\bm{F}$ は、ある条件の下でスカラーポテンシャル $\phi$ が存在して $\bm{F} = \nabla \phi$ と書けます。

恒等式2: $\nabla \cdot (\nabla \times \bm{F}) = 0$

ベクトル場の回転の発散は常にゼロです。

$$ \nabla \cdot (\nabla \times \bm{F}) = 0 $$

これも成分を用いて確認しましょう。

$$ \begin{align} \nabla \cdot (\nabla \times \bm{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) \end{align} $$

展開すると、

$$ \begin{align} &= \frac{\partial^2 F_z}{\partial x \partial y} – \frac{\partial^2 F_y}{\partial x \partial z} + \frac{\partial^2 F_x}{\partial y \partial z} – \frac{\partial^2 F_z}{\partial y \partial x} + \frac{\partial^2 F_y}{\partial z \partial x} – \frac{\partial^2 F_x}{\partial z \partial y} \end{align} $$

偏微分の順序交換により、第1項と第4項、第2項と第5項、第3項と第6項がそれぞれ打ち消し合うため、

$$ \nabla \cdot (\nabla \times \bm{F}) = 0 $$

が得られます。

物理的には、渦の湧き出しは存在しないということを意味しています。磁場のガウスの法則 $\nabla \cdot \bm{B} = 0$(磁気単極子は存在しない)と整合する結果です。実際、$\bm{B} = \nabla \times \bm{A}$($\bm{A}$ はベクトルポテンシャル)と書けるとき、上の恒等式から自動的に $\nabla \cdot \bm{B} = 0$ が成り立ちます。

2つの恒等式のまとめ

これらの恒等式を grad, div, rot の連鎖として整理すると、次のように見通しよくなります。

$$ f \xrightarrow{\operatorname{grad}} \nabla f \xrightarrow{\operatorname{rot}} \nabla \times (\nabla f) = \bm{0} $$

$$ \bm{F} \xrightarrow{\operatorname{rot}} \nabla \times \bm{F} \xrightarrow{\operatorname{div}} \nabla \cdot (\nabla \times \bm{F}) = 0 $$

つまり、「grad の後に rot」「rot の後に div」をとると必ずゼロになります。これはベクトル解析の完全系列(exact sequence)と呼ばれる構造の一部であり、ド・ラーム コホモロジーなどの高度な数学的概念と深く関連しています。

Pythonでの可視化

ベクトル場と回転の計算・可視化

ベクトル場 $\bm{F} = (-y, x, 0)^{\top}$ の回転を数値的に計算し、2次元平面上で可視化してみましょう。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import Normalize

# --- 格子点の生成 ---
x = np.linspace(-3, 3, 20)
y = np.linspace(-3, 3, 20)
X, Y = np.meshgrid(x, y)

# --- ベクトル場 F = (-y, x) ---
Fx = -Y
Fy = X

# --- rot F の z 成分を解析的に計算 ---
# dFy/dx - dFx/dy = 1 - (-1) = 2(一様)
curl_z_analytic = 2.0 * np.ones_like(X)

# --- rot F の z 成分を数値微分で計算 ---
dx = x[1] - x[0]
dy = y[1] - y[0]
dFy_dx = np.gradient(Fy, dx, axis=1)  # dFy/dx
dFx_dy = np.gradient(Fx, dy, axis=0)  # dFx/dy
curl_z_numeric = dFy_dx - dFx_dy

# --- 可視化 ---
fig, axes = plt.subplots(1, 2, figsize=(14, 6))

# 左: ベクトル場
magnitude = np.sqrt(Fx**2 + Fy**2)
axes[0].quiver(X, Y, Fx, Fy, magnitude, cmap="viridis", scale=50)
axes[0].set_xlabel("x", fontsize=14)
axes[0].set_ylabel("y", fontsize=14)
axes[0].set_title(r"Vector field $\mathbf{F} = (-y, x)$", fontsize=14)
axes[0].set_aspect("equal")
axes[0].grid(True, alpha=0.3)

# 右: 回転の z 成分(数値計算)
cf = axes[1].contourf(X, Y, curl_z_numeric, levels=20, cmap="RdBu_r")
fig.colorbar(cf, ax=axes[1], label=r"$(\nabla \times \mathbf{F})_z$")
axes[1].set_xlabel("x", fontsize=14)
axes[1].set_ylabel("y", fontsize=14)
axes[1].set_title(r"Curl $z$-component (numerical)", fontsize=14)
axes[1].set_aspect("equal")
axes[1].grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

print(f"解析的な curl_z: 2.0(一様)")
print(f"数値計算の curl_z: min={curl_z_numeric.min():.4f}, max={curl_z_numeric.max():.4f}")

左のプロットではベクトル場 $\bm{F} = (-y, x)^{\top}$ が反時計回りの渦を形成していることが確認できます。右のプロットでは、回転の $z$ 成分が空間全体でほぼ一様に $2$ であることが数値的にも確認できます。

渦なし場と渦あり場の比較

渦なし場と渦あり場を並べて比較してみましょう。

import numpy as np
import matplotlib.pyplot as plt

# --- 格子点の生成 ---
x = np.linspace(-3, 3, 20)
y = np.linspace(-3, 3, 20)
X, Y = np.meshgrid(x, y)

dx = x[1] - x[0]
dy = y[1] - y[0]

fig, axes = plt.subplots(2, 2, figsize=(14, 12))

# --- 渦なし場: F = (x, y)(= grad(0.5*(x^2+y^2))) ---
Fx1 = X
Fy1 = Y
mag1 = np.sqrt(Fx1**2 + Fy1**2)

# 回転の z 成分を数値計算
dFy1_dx = np.gradient(Fy1, dx, axis=1)
dFx1_dy = np.gradient(Fx1, dy, axis=0)
curl_z1 = dFy1_dx - dFx1_dy

axes[0, 0].quiver(X, Y, Fx1, Fy1, mag1, cmap="coolwarm", scale=50)
axes[0, 0].set_title(r"Irrotational: $\mathbf{F} = (x, y)$", fontsize=13)
axes[0, 0].set_xlabel("x", fontsize=12)
axes[0, 0].set_ylabel("y", fontsize=12)
axes[0, 0].set_aspect("equal")
axes[0, 0].grid(True, alpha=0.3)

cf1 = axes[1, 0].contourf(X, Y, curl_z1, levels=20, cmap="RdBu_r")
fig.colorbar(cf1, ax=axes[1, 0], label=r"$(\nabla \times \mathbf{F})_z$")
axes[1, 0].set_title(r"Curl of $(x, y)$: $\approx 0$", fontsize=13)
axes[1, 0].set_xlabel("x", fontsize=12)
axes[1, 0].set_ylabel("y", fontsize=12)
axes[1, 0].set_aspect("equal")
axes[1, 0].grid(True, alpha=0.3)

# --- 渦あり場: F = (-y, x) ---
Fx2 = -Y
Fy2 = X
mag2 = np.sqrt(Fx2**2 + Fy2**2)

# 回転の z 成分を数値計算
dFy2_dx = np.gradient(Fy2, dx, axis=1)
dFx2_dy = np.gradient(Fx2, dy, axis=0)
curl_z2 = dFy2_dx - dFx2_dy

axes[0, 1].quiver(X, Y, Fx2, Fy2, mag2, cmap="viridis", scale=50)
axes[0, 1].set_title(r"Rotational: $\mathbf{F} = (-y, x)$", fontsize=13)
axes[0, 1].set_xlabel("x", fontsize=12)
axes[0, 1].set_ylabel("y", fontsize=12)
axes[0, 1].set_aspect("equal")
axes[0, 1].grid(True, alpha=0.3)

cf2 = axes[1, 1].contourf(X, Y, curl_z2, levels=20, cmap="RdBu_r")
fig.colorbar(cf2, ax=axes[1, 1], label=r"$(\nabla \times \mathbf{F})_z$")
axes[1, 1].set_title(r"Curl of $(-y, x)$: $= 2$", fontsize=13)
axes[1, 1].set_xlabel("x", fontsize=12)
axes[1, 1].set_ylabel("y", fontsize=12)
axes[1, 1].set_aspect("equal")
axes[1, 1].grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

上段にベクトル場、下段に対応する回転の $z$ 成分を示しています。左列の渦なし場 $\bm{F} = (x, y)^{\top}$ では回転がほぼゼロであるのに対し、右列の渦あり場 $\bm{F} = (-y, x)^{\top}$ では回転が一様に $2$ となっています。

まとめ

本記事では、ベクトル場の回転(rot / curl)について、直感的な理解から数学的な定義、応用例まで解説しました。

  • 回転の意味: 回転 $\nabla \times \bm{F}$ はベクトル場の「渦」を定量化するベクトル量であり、方向は右ねじの法則に従い、大きさは渦の強さを表します
  • 数学的定義: 行列式表記 $\nabla \times \bm{F}$ により、3つの偏微分の差として各成分を計算できます
  • ストークスの定理: 閉曲線に沿った循環と、その内部の面を通る回転の面積分が等しいという関係が成り立ちます
  • 物理的応用: ファラデーの法則($\nabla \times \bm{E} = -\partial \bm{B}/\partial t$)や流体の渦度($\bm{\omega} = \nabla \times \bm{v}$)など、物理法則の根幹に回転が現れます
  • 重要な恒等式: $\nabla \times (\nabla f) = \bm{0}$(勾配の回転はゼロ)と $\nabla \cdot (\nabla \times \bm{F}) = 0$(回転の発散はゼロ)の2つは、ベクトル解析の基本定理です

ベクトル解析の3大演算子 grad, div, rot の関係をまとめると、次のようになります。

演算子 記法 入力 出力 物理的意味
勾配 $\nabla f$ スカラー場 ベクトル場 最急上昇方向と変化率
発散 $\nabla \cdot \bm{F}$ ベクトル場 スカラー場 湧き出し・吸い込み
回転 $\nabla \times \bm{F}$ ベクトル場 ベクトル場 渦・回転

次のステップとして、これらの演算子を組み合わせたラプラシアンや、ベクトル解析の積分定理(ガウスの発散定理、ストークスの定理)をより深く学ぶことをおすすめします。