【LaTeX】マクスウェル方程式の書き方を解説

LaTeXでマクスウェル方程式を書く機会は、電磁気学のレポートや論文執筆で多くあります。今回はマクスウェル方程式をLaTeXで正しく美しく書く方法について解説します。

本記事の内容

  • マクスウェル方程式の微分形のLaTeX記法
  • マクスウェル方程式の積分形のLaTeX記法
  • ベクトル解析記号の書き方
  • 構成方程式と波動方程式のLaTeX記法

前提知識

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

微分形のマクスウェル方程式

マクスウェル方程式の微分形は次の4つの式です。

$$ \begin{align} \nabla \cdot \bm{D} &= \rho \\ \nabla \cdot \bm{B} &= 0 \\ \nabla \times \bm{E} &= -\frac{\partial \bm{B}}{\partial t} \\ \nabla \times \bm{H} &= \bm{j} + \frac{\partial \bm{D}}{\partial t} \end{align} $$

各記号のLaTeXコマンド

数学記号 LaTeXコマンド 説明
$\nabla$ \nabla ナブラ演算子
$\nabla \cdot$ \nabla \cdot 発散(div)
$\nabla \times$ \nabla \times 回転(rot, curl)
$\bm{E}$ \bm{E} 太字ベクトル
$\frac{\partial}{\partial t}$ \frac{\partial}{\partial t} 偏微分
$\rho$ \rho ギリシャ文字ロー
$\varepsilon$ \varepsilon ギリシャ文字イプシロン
$\mu$ \mu ギリシャ文字ミュー

連立方程式として書く

マクスウェル方程式を波括弧で囲んだ連立方程式として記述する場合は、cases環境を使います。

$$ \begin{cases} \nabla \cdot \bm{D} = \rho \\ \nabla \cdot \bm{B} = 0 \\ \nabla \times \bm{E} = -\dfrac{\partial \bm{B}}{\partial t} \\ \nabla \times \bm{H} = \bm{j} + \dfrac{\partial \bm{D}}{\partial t} \end{cases} $$

LaTeXコードは以下の通りです。

\begin{cases}
\nabla \cdot \bm{D} = \rho \\
\nabla \cdot \bm{B} = 0 \\
\nabla \times \bm{E} = -\dfrac{\partial \bm{B}}{\partial t} \\
\nabla \times \bm{H} = \bm{j} + \dfrac{\partial \bm{D}}{\partial t}
\end{cases}

積分形のマクスウェル方程式

積分形は閉曲面積分や線積分を含むため、やや複雑になります。

$$ \begin{align} \oint_S \bm{D} \cdot d\bm{S} &= \int_V \rho \, dV \\ \oint_S \bm{B} \cdot d\bm{S} &= 0 \\ \oint_C \bm{E} \cdot d\bm{l} &= -\frac{d}{dt}\int_S \bm{B} \cdot d\bm{S} \\ \oint_C \bm{H} \cdot d\bm{l} &= \int_S \left(\bm{j} + \frac{\partial \bm{D}}{\partial t}\right) \cdot d\bm{S} \end{align} $$

積分記号のLaTeXコマンド

記号 LaTeXコマンド 説明
$\int$ \int 積分
$\oint$ \oint 閉曲線/閉曲面積分
$\int_V$ \int_V 体積積分
$\oint_S$ \oint_S 閉曲面積分
$d\bm{S}$ d\bm{S} 面積素ベクトル
$d\bm{l}$ d\bm{l} 線素ベクトル

構成方程式

媒質の特性を記述する構成方程式もよく使います。

$$ \bm{D} = \varepsilon_0 \bm{E} + \bm{P} = \varepsilon \bm{E} $$

$$ \bm{B} = \mu_0 (\bm{H} + \bm{M}) = \mu \bm{H} $$

$$ \bm{j} = \sigma \bm{E} $$

ここで $\varepsilon = \varepsilon_0 \varepsilon_r$、$\mu = \mu_0 \mu_r$ です。

波動方程式

マクスウェル方程式から導出される波動方程式は次のように書きます。

$$ \nabla^2 \bm{E} – \mu \varepsilon \frac{\partial^2 \bm{E}}{\partial t^2} = 0 $$

ラプラシアン $\nabla^2$ は \nabla^2 で記述します。

平面波の解

$$ \bm{E}(\bm{r}, t) = \bm{E}_0 e^{j(\omega t – \bm{k} \cdot \bm{r})} $$

ここで $\omega = 2\pi f$ は角周波数、$\bm{k}$ は波数ベクトルです。

Pythonでの数式レンダリング確認

import numpy as np
import matplotlib.pyplot as plt

# マクスウェル方程式を含む図の作成
fig, ax = plt.subplots(figsize=(10, 8))
ax.axis('off')

# マクスウェル方程式のテキスト表示
equations = [
    r"Maxwell's Equations (Differential Form)",
    "",
    r"Gauss's Law:  $\nabla \cdot \mathbf{D} = \rho$",
    r"No Monopole:  $\nabla \cdot \mathbf{B} = 0$",
    r"Faraday:  $\nabla \times \mathbf{E} = -\frac{\partial \mathbf{B}}{\partial t}$",
    r"Ampere-Maxwell:  $\nabla \times \mathbf{H} = \mathbf{j} + \frac{\partial \mathbf{D}}{\partial t}$",
    "",
    r"Wave Equation: $\nabla^2 \mathbf{E} = \mu\varepsilon \frac{\partial^2 \mathbf{E}}{\partial t^2}$",
    "",
    r"Wave Speed: $v = \frac{1}{\sqrt{\mu\varepsilon}}$, in vacuum $c = \frac{1}{\sqrt{\mu_0 \varepsilon_0}}$",
]

for i, eq in enumerate(equations):
    fontsize = 16 if i == 0 else 14
    fontweight = 'bold' if i == 0 else 'normal'
    ax.text(0.1, 0.95 - i * 0.09, eq, fontsize=fontsize,
            fontweight=fontweight, transform=ax.transAxes,
            verticalalignment='top')

plt.title("Maxwell's Equations Reference", fontsize=18, fontweight='bold')
plt.tight_layout()
plt.show()

# 電磁波の可視化
fig, axes = plt.subplots(1, 2, figsize=(14, 5))

# 平面波
z = np.linspace(0, 4 * np.pi, 500)
E = np.sin(z)
H = np.sin(z)

axes[0].plot(z, E, 'b-', linewidth=2, label=r'$E_x$')
axes[0].plot(z, H, 'r--', linewidth=2, label=r'$H_y$')
axes[0].set_xlabel('z [rad]')
axes[0].set_ylabel('Amplitude')
axes[0].set_title('Plane Wave: E and H fields')
axes[0].legend()
axes[0].grid(True)

# 電磁スペクトル
freqs = np.logspace(3, 21, 1000)
wavelengths = 3e8 / freqs

axes[1].loglog(freqs, wavelengths, 'k-', linewidth=2)
axes[1].set_xlabel('Frequency [Hz]')
axes[1].set_ylabel('Wavelength [m]')
axes[1].set_title('Electromagnetic Spectrum')
axes[1].grid(True)

# 帯域のアノテーション
bands = [
    (1e6, 1e9, 'Radio', 'lightblue'),
    (1e9, 1e12, 'Microwave', 'lightyellow'),
    (4e14, 8e14, 'Visible', 'lightgreen'),
    (1e15, 1e18, 'UV/X-ray', 'lightsalmon'),
]
for f_low, f_high, name, color in bands:
    axes[1].axvspan(f_low, f_high, alpha=0.3, color=color, label=name)
axes[1].legend(fontsize=8)

plt.tight_layout()
plt.show()

まとめ

本記事では、LaTeXでマクスウェル方程式を書く方法を解説しました。

  • 微分形は \nabla \cdot\nabla \times を使って簡潔に記述できる
  • 積分形では \oint\int_V などの積分記号を使用する
  • ベクトルは \bm{} で太字にする(\boldsymbol{} も可)
  • 連立方程式は cases 環境で波括弧付きの表記ができる
  • 偏微分は \frac{\partial}{\partial t} で記述する

次のステップとして、以下の記事も参考にしてください。