ポインティングベクトルと電磁エネルギー

電磁場はエネルギーを蓄え、そのエネルギーは空間中を伝搬します。ポインティングベクトルは電磁エネルギーの流れの方向と大きさを表すベクトル量です。

本記事の内容

  • 電磁場のエネルギー密度
  • ポインティングの定理の導出
  • ポインティングベクトル $\bm{S} = \bm{E}\times\bm{B}/\mu_0$
  • 平面波の放射強度
  • Pythonでの可視化

前提知識

電磁場のエネルギー密度

$$ \boxed{u = \frac{1}{2}\varepsilon_0 E^2 + \frac{1}{2\mu_0}B^2} $$

第1項は電場のエネルギー密度、第2項は磁場のエネルギー密度です。

ポインティングの定理

マクスウェル方程式から、電磁エネルギーの保存則を導出します。

ファラデーの法則 $\nabla\times\bm{E} = -\partial\bm{B}/\partial t$ の両辺に $\bm{B}/\mu_0$ をかけ、修正アンペールの法則 $\nabla\times\bm{B} = \mu_0\bm{J} + \mu_0\varepsilon_0\partial\bm{E}/\partial t$ の両辺に $\bm{E}$ をかけて引くと:

$$ \boxed{-\frac{\partial u}{\partial t} = \nabla\cdot\bm{S} + \bm{J}\cdot\bm{E}} $$

ここでポインティングベクトル:

$$ \boxed{\bm{S} = \frac{1}{\mu_0}\bm{E}\times\bm{B}} $$

$\bm{J}\cdot\bm{E}$ はジュール発熱(電磁エネルギーから力学的エネルギーへの変換率)です。

平面波のポインティングベクトル

進行する平面電磁波では $E = cB$ かつ $\bm{E}\perp\bm{B}\perp\bm{k}$ なので:

$$ S = \frac{EB}{\mu_0} = \frac{E^2}{\mu_0 c} = c\varepsilon_0 E^2 $$

時間平均放射強度(intensity):

$$ \boxed{I = \langle S \rangle = \frac{1}{2}\frac{E_0^2}{\mu_0 c} = \frac{c\varepsilon_0 E_0^2}{2}} $$

Pythonでの可視化

import numpy as np
import matplotlib.pyplot as plt

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

# (1) 平面波のE, B, Sの関係
z = np.linspace(0, 4*np.pi, 500)
E0 = 1; c = 3e8; mu0 = 4*np.pi*1e-7
E = E0 * np.sin(z)
B = E0/c * np.sin(z)
S = E * B / mu0

axes[0].plot(z, E/E0, 'b-', lw=2, label='$E_y / E_0$')
axes[0].plot(z, B*c/E0, 'r-', lw=2, label='$cB_z / E_0$')
axes[0].plot(z, S/S.max(), 'g-', lw=2, label='$S_x$ (normalized)')
axes[0].set_xlabel('$z$'); axes[0].set_ylabel('Normalized amplitude')
axes[0].set_title('Plane wave: E, B, and S', fontsize=13)
axes[0].legend(); axes[0].grid(True, alpha=0.3)

# (2) 放射強度 vs 電場振幅
E0_range = np.linspace(0, 1000, 200)  # [V/m]
eps0 = 8.854e-12
I_rad = c * eps0 * E0_range**2 / 2

axes[1].plot(E0_range, I_rad, 'b-', lw=2.5)
axes[1].set_xlabel('Electric field amplitude $E_0$ [V/m]', fontsize=12)
axes[1].set_ylabel('Intensity $I$ [W/m²]', fontsize=12)
axes[1].set_title('Radiation intensity', fontsize=13)
axes[1].grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

まとめ

  • エネルギー密度: $u = \varepsilon_0 E^2/2 + B^2/(2\mu_0)$
  • ポインティングベクトル: $\bm{S} = \bm{E}\times\bm{B}/\mu_0$(エネルギー流束密度)
  • ポインティングの定理: $-\partial u/\partial t = \nabla\cdot\bm{S} + \bm{J}\cdot\bm{E}$
  • 平面波の強度: $I = c\varepsilon_0 E_0^2/2$

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