平面電磁波の性質と伝搬を導出して理解する

電磁波は、電場と磁場が互いに励起し合いながら空間を伝搬する波動現象です。光・電波・X線はすべて電磁波であり、その基本的な性質はマクスウェル方程式から統一的に導かれます。

電磁波の最も基本的な解が 平面波 です。平面波は波面が無限に広がる平面であり、現実の電磁波(球面波やガウスビームなど)を理解するための出発点となります。アンテナ工学、光通信、レーダーなど、あらゆる電磁波応用の基礎です。

本記事の内容

  • マクスウェル方程式から波動方程式の導出
  • 平面波解の導入と物理的意味
  • 位相速度と群速度の定義と違い
  • 波動インピーダンスの導出
  • エネルギー密度とポインティングベクトル
  • Pythonでの平面波伝搬と群速度の可視化

前提知識

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

波動方程式の導出

出発点:マクスウェル方程式

真空中(自由空間、電荷・電流なし)のマクスウェル方程式は以下の4式です。

$$ \nabla \cdot \bm{E} = 0 $$

$$ \nabla \cdot \bm{B} = 0 $$

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

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

ここで、$\bm{E}$ は電場ベクトル、$\bm{B}$ は磁束密度ベクトル、$\varepsilon_0$ は真空の誘電率、$\mu_0$ は真空の透磁率です。

∇×∇×E の展開

電場 $\bm{E}$ に関する波動方程式を導きます。ファラデーの法則 $\nabla \times \bm{E} = -\frac{\partial \bm{B}}{\partial t}$ の両辺に回転($\nabla \times$)を作用させます。

$$ \nabla \times (\nabla \times \bm{E}) = \nabla \times \left(-\frac{\partial \bm{B}}{\partial t}\right) $$

右辺では時間微分と空間微分の順序を交換できるので、

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

ここでアンペール・マクスウェルの法則 $\nabla \times \bm{B} = \mu_0 \varepsilon_0 \frac{\partial \bm{E}}{\partial t}$ を代入すると、

$$ \nabla \times (\nabla \times \bm{E}) = -\mu_0 \varepsilon_0 \frac{\partial^2 \bm{E}}{\partial t^2} $$

ベクトル恒等式の適用

左辺にベクトル恒等式

$$ \nabla \times (\nabla \times \bm{E}) = \nabla(\nabla \cdot \bm{E}) – \nabla^2 \bm{E} $$

を適用します。真空中では $\nabla \cdot \bm{E} = 0$ なので、

$$ -\nabla^2 \bm{E} = -\mu_0 \varepsilon_0 \frac{\partial^2 \bm{E}}{\partial t^2} $$

したがって、電場に関する 波動方程式 が得られます。

$$ \begin{equation} \nabla^2 \bm{E} = \mu_0 \varepsilon_0 \frac{\partial^2 \bm{E}}{\partial t^2} \end{equation} $$

同様の手順を磁束密度 $\bm{B}$ に対して行うと(アンペール・マクスウェルの法則に回転を作用させる)、

$$ \begin{equation} \nabla^2 \bm{B} = \mu_0 \varepsilon_0 \frac{\partial^2 \bm{B}}{\partial t^2} \end{equation} $$

光速の導出

一般的な波動方程式 $\nabla^2 \psi = \frac{1}{v^2}\frac{\partial^2 \psi}{\partial t^2}$ と比較すると、電磁波の伝搬速度は

$$ v = \frac{1}{\sqrt{\mu_0 \varepsilon_0}} $$

真空中の定数値 $\mu_0 = 4\pi \times 10^{-7}$ H/m、$\varepsilon_0 = 8.854 \times 10^{-12}$ F/m を代入すると、

$$ v = \frac{1}{\sqrt{4\pi \times 10^{-7} \times 8.854 \times 10^{-12}}} \approx 3.0 \times 10^8 \text{ m/s} = c $$

これは光速 $c$ に一致します。マクスウェルがこの一致を発見し、光が電磁波であることを予言したのは物理学史上の大きな成果です。

平面波解

平面波の一般形

波動方程式の最も単純な解として、$z$ 方向に伝搬する平面波を考えます。電場が $x$ 方向のみに成分を持つとすると($x$ 偏波)、

$$ \bm{E} = E_x(z, t) \hat{\bm{x}} $$

このとき波動方程式は1次元のスカラー方程式になります。

$$ \frac{\partial^2 E_x}{\partial z^2} = \frac{1}{c^2}\frac{\partial^2 E_x}{\partial t^2} $$

複素表示の導入

解を複素指数関数で表すと計算が容易になります。

$$ \begin{equation} E_x(z, t) = E_0 \exp\left[j(\omega t – kz)\right] \end{equation} $$

ここで、$E_0$ は振幅、$\omega$ は角周波数、$k$ は波数、$j = \sqrt{-1}$ は虚数単位です。物理的な電場は実部 $\text{Re}[E_x]$ をとります。

波動方程式を満たす条件(分散関係)

上の解を波動方程式に代入して確認します。

左辺:

$$ \frac{\partial^2 E_x}{\partial z^2} = (-jk)^2 E_0 e^{j(\omega t – kz)} = -k^2 E_x $$

右辺:

$$ \frac{1}{c^2}\frac{\partial^2 E_x}{\partial t^2} = \frac{1}{c^2}(j\omega)^2 E_x = -\frac{\omega^2}{c^2} E_x $$

左辺 = 右辺とおくと、

$$ -k^2 = -\frac{\omega^2}{c^2} $$

したがって、真空中の 分散関係 が得られます。

$$ \begin{equation} k = \frac{\omega}{c} \end{equation} $$

あるいは $\omega = ck$ であり、これは角周波数と波数が線形(比例)の関係にあることを意味します。この線形性は「真空は無分散媒質である」ことを示しています。

波長と周波数の関係

波数 $k$ と波長 $\lambda$ の関係 $k = \frac{2\pi}{\lambda}$、角周波数 $\omega$ と周波数 $f$ の関係 $\omega = 2\pi f$ を用いると、

$$ \frac{2\pi}{\lambda} = \frac{2\pi f}{c} $$

$$ \begin{equation} c = f\lambda \end{equation} $$

これは波動の基本公式であり、周波数が高いほど波長が短くなります。

位相速度と群速度

位相速度

位相速度 $v_p$ は、等位相面($\omega t – kz = \text{const}$)が移動する速度です。

等位相面の条件から、

$$ \omega \, dt – k \, dz = 0 $$

$$ \begin{equation} v_p = \frac{dz}{dt} = \frac{\omega}{k} \end{equation} $$

真空中では $\omega = ck$ なので、$v_p = c$ です。すべての周波数成分が同じ速度 $c$ で伝搬します。

群速度

群速度 $v_g$ は、波束(複数の周波数が重ね合わされた波群)のエンベロープが移動する速度です。情報やエネルギーが伝搬する速度に対応します。

$$ \begin{equation} v_g = \frac{d\omega}{dk} \end{equation} $$

真空中では $\omega = ck$ なので、

$$ v_g = \frac{d(ck)}{dk} = c $$

真空中では位相速度と群速度が一致します。

分散媒質での位相速度と群速度

媒質中では、分散関係が非線形になる場合があります。例えば、プラズマ中の電磁波の分散関係は

$$ \omega^2 = \omega_p^2 + c^2 k^2 $$

ここで $\omega_p$ はプラズマ周波数です。このとき、

$$ v_p = \frac{\omega}{k} = \frac{c}{\sqrt{1 – (\omega_p/\omega)^2}} > c $$

$$ v_g = \frac{d\omega}{dk} = \frac{c^2 k}{\omega} = c\sqrt{1 – \left(\frac{\omega_p}{\omega}\right)^2} < c $$

位相速度は光速を超えますが、これは等位相面の移動速度であり、情報の伝達速度ではありません。群速度は光速以下であり、相対性理論と矛盾しません。

位相速度と群速度の関係を整理すると、

$$ v_p \cdot v_g = c^2 $$

これは $v_p = \frac{\omega}{k}$、$v_g = \frac{c^2 k}{\omega}$ から直接確認できます。

磁場成分と波動インピーダンス

磁場の導出

電場 $\bm{E} = E_0 e^{j(\omega t – kz)} \hat{\bm{x}}$ に対応する磁場を求めます。ファラデーの法則 $\nabla \times \bm{E} = -\frac{\partial \bm{B}}{\partial t}$ を使います。

$$ \nabla \times \bm{E} = \left(\frac{\partial E_z}{\partial y} – \frac{\partial E_y}{\partial z}\right)\hat{\bm{x}} + \left(\frac{\partial E_x}{\partial z} – \frac{\partial E_z}{\partial x}\right)\hat{\bm{y}} + \left(\frac{\partial E_y}{\partial x} – \frac{\partial E_x}{\partial y}\right)\hat{\bm{z}} $$

$E_y = E_z = 0$ で、$E_x$ は $z$ と $t$ のみの関数なので、

$$ \nabla \times \bm{E} = -\frac{\partial E_x}{\partial z} \hat{\bm{y}} = -(-jk) E_0 e^{j(\omega t – kz)} \hat{\bm{y}} = jk E_0 e^{j(\omega t – kz)} \hat{\bm{y}} $$

一方、$-\frac{\partial \bm{B}}{\partial t} = -j\omega \bm{B}$ なので、

$$ jk E_0 e^{j(\omega t – kz)} \hat{\bm{y}} = -j\omega \bm{B} $$

$$ \bm{B} = -\frac{k}{\omega} E_0 e^{j(\omega t – kz)} \hat{\bm{y}} = \frac{k}{\omega} E_0 e^{j(\omega t – kz)} (-\hat{\bm{y}}) $$

符号を丁寧に扱うと($\hat{\bm{z}} \times \hat{\bm{x}} = \hat{\bm{y}}$ の方向を考慮)、

$$ \bm{B} = \frac{k}{\omega} E_0 e^{j(\omega t – kz)} \hat{\bm{y}} = \frac{E_0}{c} e^{j(\omega t – kz)} \hat{\bm{y}} $$

磁場 $\bm{H} = \bm{B}/\mu_0$ を用いると、

$$ \bm{H} = \frac{E_0}{\mu_0 c} e^{j(\omega t – kz)} \hat{\bm{y}} $$

波動インピーダンス

電場の振幅と磁場の振幅の比を 波動インピーダンス(固有インピーダンス) と呼びます。

$$ \eta = \frac{E_x}{H_y} = \mu_0 c = \mu_0 \cdot \frac{1}{\sqrt{\mu_0 \varepsilon_0}} = \sqrt{\frac{\mu_0}{\varepsilon_0}} $$

$$ \begin{equation} \eta_0 = \sqrt{\frac{\mu_0}{\varepsilon_0}} \approx 377 \text{ } \Omega \end{equation} $$

この値は自由空間の波動インピーダンスとして非常に重要です。送電線のインピーダンスが50 $\Omega$ や 75 $\Omega$ であるのと同様に、電磁波の「波の抵抗」を表します。

一般の媒質(比誘電率 $\varepsilon_r$、比透磁率 $\mu_r$)では、

$$ \eta = \sqrt{\frac{\mu_r \mu_0}{\varepsilon_r \varepsilon_0}} = \eta_0 \sqrt{\frac{\mu_r}{\varepsilon_r}} $$

電場と磁場の直交関係

以上の結果から、平面波の重要な性質がわかります。

  1. $\bm{E}$($x$ 方向)と $\bm{H}$($y$ 方向)は互いに直交する
  2. $\bm{E}$ と $\bm{H}$ は伝搬方向($z$ 方向)にも直交する
  3. $\bm{E}$ と $\bm{H}$ は同位相で振動する
  4. 振幅比は波動インピーダンス $\eta$ で与えられる

この性質はベクトル的に $\bm{H} = \frac{1}{\eta} \hat{\bm{k}} \times \bm{E}$ と書けます。ここで $\hat{\bm{k}}$ は伝搬方向の単位ベクトルです。

エネルギー密度とポインティングベクトル

電磁波のエネルギー密度

電場と磁場のエネルギー密度はそれぞれ、

$$ u_E = \frac{1}{2}\varepsilon_0 |\bm{E}|^2, \qquad u_H = \frac{1}{2}\mu_0 |\bm{H}|^2 $$

平面波では $|\bm{E}| = \eta |\bm{H}|$ なので、

$$ u_E = \frac{1}{2}\varepsilon_0 E_0^2, \qquad u_H = \frac{1}{2}\mu_0 H_0^2 = \frac{1}{2}\mu_0 \left(\frac{E_0}{\eta}\right)^2 = \frac{1}{2}\mu_0 \frac{E_0^2 \varepsilon_0}{\mu_0} = \frac{1}{2}\varepsilon_0 E_0^2 $$

つまり $u_E = u_H$ であり、電場と磁場のエネルギーは等分配されています。全エネルギー密度は、

$$ u = u_E + u_H = \varepsilon_0 E_0^2 $$

(時間平均をとる場合は $\langle u \rangle = \frac{1}{2}\varepsilon_0 E_0^2$)

ポインティングベクトル

電磁波のエネルギーの流れ(単位面積あたりの電力)は ポインティングベクトル で表されます。

$$ \begin{equation} \bm{S} = \bm{E} \times \bm{H} \end{equation} $$

平面波では、

$$ \bm{S} = E_0 e^{j(\omega t – kz)} \hat{\bm{x}} \times \frac{E_0}{\eta} e^{j(\omega t – kz)} \hat{\bm{y}} $$

実部をとって瞬時値を計算すると、

$$ \bm{S} = \frac{E_0^2}{\eta} \cos^2(\omega t – kz) \hat{\bm{z}} $$

時間平均のポインティングベクトルは、

$$ \langle \bm{S} \rangle = \frac{E_0^2}{2\eta} \hat{\bm{z}} = \frac{1}{2}\text{Re}[\bm{E} \times \bm{H}^*] $$

$$ \begin{equation} |\langle \bm{S} \rangle| = \frac{E_0^2}{2\eta_0} \approx \frac{E_0^2}{754} \text{ [W/m}^2\text{]} \end{equation} $$

これは電力密度(放射強度)と呼ばれ、アンテナ工学やリンクバジェット計算の基礎となります。

具体例

数値例:FM放送の電磁波

FM放送の周波数 $f = 80$ MHz を考えます。

波長

$$ \lambda = \frac{c}{f} = \frac{3.0 \times 10^8}{80 \times 10^6} = 3.75 \text{ m} $$

波数

$$ k = \frac{2\pi}{\lambda} = \frac{2\pi}{3.75} \approx 1.676 \text{ rad/m} $$

波動インピーダンス:真空中なので $\eta_0 \approx 377 \text{ } \Omega$

電力密度:電場強度 $E_0 = 1$ V/m のとき、

$$ |\langle \bm{S} \rangle| = \frac{(1)^2}{2 \times 377} \approx 1.33 \times 10^{-3} \text{ W/m}^2 = 1.33 \text{ mW/m}^2 $$

Pythonでの実装

平面波の伝搬の可視化

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec

# --- パラメータ設定 ---
c = 3e8           # 光速 [m/s]
f = 1e9           # 周波数 1 GHz
omega = 2 * np.pi * f
lam = c / f       # 波長 0.3 m
k = 2 * np.pi / lam
eta = 377         # 自由空間の波動インピーダンス [Ω]
E0 = 1.0          # 電場振幅 [V/m]
H0 = E0 / eta     # 磁場振幅 [A/m]

# 空間・時間の設定
z = np.linspace(0, 5 * lam, 500)  # 5波長分

# 複数の時刻での波形
fig = plt.figure(figsize=(14, 10))
gs = GridSpec(2, 2, figure=fig, hspace=0.35, wspace=0.3)

# (1) 電場と磁場の空間分布(複数時刻)
ax1 = fig.add_subplot(gs[0, 0])
times = [0, 0.25/f, 0.5/f, 0.75/f]
colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728']

for t_val, color in zip(times, colors):
    Ex = E0 * np.cos(omega * t_val - k * z)
    phase_label = f't = {t_val * f:.2f} / f'
    ax1.plot(z / lam, Ex, color=color, linewidth=1.5, label=phase_label)

ax1.set_xlabel('z / $\\lambda$', fontsize=12)
ax1.set_ylabel('$E_x$ [V/m]', fontsize=12)
ax1.set_title('Electric Field at Different Times', fontsize=13)
ax1.legend(fontsize=9)
ax1.grid(True, alpha=0.3)
ax1.set_xlim([0, 5])

# (2) ある時刻での E と H の同時表示
ax2 = fig.add_subplot(gs[0, 1])
t_snap = 0
Ex = E0 * np.cos(omega * t_snap - k * z)
Hy = H0 * np.cos(omega * t_snap - k * z)

ax2.plot(z / lam, Ex, 'b-', linewidth=2, label='$E_x$ [V/m]')
ax2_twin = ax2.twinx()
ax2_twin.plot(z / lam, Hy * 1e3, 'r-', linewidth=2, label='$H_y$ [mA/m]')
ax2.set_xlabel('z / $\\lambda$', fontsize=12)
ax2.set_ylabel('$E_x$ [V/m]', fontsize=12, color='blue')
ax2_twin.set_ylabel('$H_y$ [mA/m]', fontsize=12, color='red')
ax2.set_title('E and H Fields (t = 0)', fontsize=13)
ax2.grid(True, alpha=0.3)
ax2.set_xlim([0, 5])

lines1, labels1 = ax2.get_legend_handles_labels()
lines2, labels2 = ax2_twin.get_legend_handles_labels()
ax2.legend(lines1 + lines2, labels1 + labels2, fontsize=10, loc='upper right')

# (3) ポインティングベクトル
ax3 = fig.add_subplot(gs[1, 0])
Sz_inst = (E0**2 / eta) * np.cos(omega * t_snap - k * z)**2
Sz_avg = E0**2 / (2 * eta) * np.ones_like(z)

ax3.plot(z / lam, Sz_inst * 1e3, 'g-', linewidth=2, label='Instantaneous $S_z$')
ax3.plot(z / lam, Sz_avg * 1e3, 'k--', linewidth=2, label='Time-averaged $\\langle S_z \\rangle$')
ax3.set_xlabel('z / $\\lambda$', fontsize=12)
ax3.set_ylabel('$S_z$ [mW/m$^2$]', fontsize=12)
ax3.set_title('Poynting Vector', fontsize=13)
ax3.legend(fontsize=10)
ax3.grid(True, alpha=0.3)
ax3.set_xlim([0, 5])

# (4) エネルギー密度
ax4 = fig.add_subplot(gs[1, 1])
eps0 = 8.854e-12
mu0 = 4 * np.pi * 1e-7

uE = 0.5 * eps0 * (E0 * np.cos(omega * t_snap - k * z))**2
uH = 0.5 * mu0 * (H0 * np.cos(omega * t_snap - k * z))**2
u_total = uE + uH

ax4.plot(z / lam, uE * 1e12, 'b-', linewidth=1.5, label='$u_E$')
ax4.plot(z / lam, uH * 1e12, 'r--', linewidth=1.5, label='$u_H$')
ax4.plot(z / lam, u_total * 1e12, 'k-', linewidth=2, label='$u_{total}$')
ax4.set_xlabel('z / $\\lambda$', fontsize=12)
ax4.set_ylabel('Energy density [pJ/m$^3$]', fontsize=12)
ax4.set_title('Energy Density', fontsize=13)
ax4.legend(fontsize=10)
ax4.grid(True, alpha=0.3)
ax4.set_xlim([0, 5])

plt.savefig('plane_wave_properties.png', dpi=150, bbox_inches='tight')
plt.show()

位相速度と群速度の可視化(プラズマ分散)

import numpy as np
import matplotlib.pyplot as plt

# --- プラズマ中の分散関係 ---
c = 3e8  # 光速
fp = 10e6  # プラズマ周波数 10 MHz
omega_p = 2 * np.pi * fp

# 波数の範囲
k = np.linspace(0.01, 2.0, 500)  # [rad/m]

# 分散関係: ω² = ωp² + c²k²
omega = np.sqrt(omega_p**2 + (c * k)**2)
f = omega / (2 * np.pi)

# 位相速度と群速度
v_p = omega / k
v_g = c**2 * k / omega

fig, axes = plt.subplots(1, 3, figsize=(18, 5))

# (1) 分散関係 ω vs k
ax1 = axes[0]
ax1.plot(k, omega / 1e6, 'b-', linewidth=2, label='Plasma: $\\omega^2 = \\omega_p^2 + c^2 k^2$')
ax1.plot(k, c * k / 1e6, 'k--', linewidth=1.5, label='Vacuum: $\\omega = ck$')
ax1.axhline(y=omega_p / 1e6, color='red', linestyle=':', linewidth=1.5,
            label=f'$\\omega_p$ = {omega_p/1e6:.1f} Mrad/s')
ax1.set_xlabel('Wavenumber $k$ [rad/m]', fontsize=12)
ax1.set_ylabel('Angular frequency $\\omega$ [Mrad/s]', fontsize=12)
ax1.set_title('Dispersion Relation', fontsize=13)
ax1.legend(fontsize=9)
ax1.grid(True, alpha=0.3)

# (2) 位相速度と群速度 vs 周波数
ax2 = axes[1]
f_range = np.linspace(fp * 1.01, 5 * fp, 500)
omega_range = 2 * np.pi * f_range

v_p_range = c / np.sqrt(1 - (fp / f_range)**2)
v_g_range = c * np.sqrt(1 - (fp / f_range)**2)

ax2.plot(f_range / 1e6, v_p_range / c, 'b-', linewidth=2, label='$v_p / c$')
ax2.plot(f_range / 1e6, v_g_range / c, 'r-', linewidth=2, label='$v_g / c$')
ax2.axhline(y=1, color='gray', linestyle='--', linewidth=1, label='$c$')
ax2.axvline(x=fp / 1e6, color='green', linestyle=':', linewidth=1.5,
            label=f'$f_p$ = {fp/1e6:.0f} MHz')
ax2.set_xlabel('Frequency [MHz]', fontsize=12)
ax2.set_ylabel('Velocity / $c$', fontsize=12)
ax2.set_title('Phase and Group Velocity in Plasma', fontsize=13)
ax2.legend(fontsize=9)
ax2.grid(True, alpha=0.3)
ax2.set_ylim([0, 5])

# (3) 波束の伝搬(群速度の可視化)
ax3 = axes[2]
z = np.linspace(0, 50, 2000)

# 中心波数と波束幅
k0 = 0.5  # 中心波数
dk = 0.05  # 波束の波数幅
omega0 = np.sqrt(omega_p**2 + (c * k0)**2)
vg0 = c**2 * k0 / omega0
vp0 = omega0 / k0

# 2つの時刻
t1 = 0
t2 = 15e-9  # 15 ns

for t_val, ls, alpha in [(t1, '-', 1.0), (t2, '--', 0.7)]:
    # 波束 = エンベロープ × キャリア
    envelope = np.exp(-(z - vg0 * t_val)**2 / (2 * (1/dk)**2))
    carrier = np.cos(omega0 * t_val - k0 * z)
    wave = envelope * carrier
    label_t = f't = {t_val*1e9:.0f} ns'
    ax3.plot(z, wave, linestyle=ls, linewidth=1.5, alpha=alpha, label=label_t)
    ax3.plot(z, envelope, 'k' + ls, linewidth=0.8, alpha=alpha * 0.5)

ax3.set_xlabel('z [m]', fontsize=12)
ax3.set_ylabel('Amplitude', fontsize=12)
ax3.set_title('Wave Packet Propagation in Plasma', fontsize=13)
ax3.legend(fontsize=10)
ax3.grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig('phase_group_velocity.png', dpi=150, bbox_inches='tight')
plt.show()

# 数値の確認
print(f"プラズマ周波数: fp = {fp/1e6:.0f} MHz")
print(f"中心波数 k0 = {k0} rad/m でのパラメータ:")
print(f"  位相速度: vp = {vp0/c:.4f} c = {vp0:.4e} m/s")
print(f"  群速度:   vg = {vg0/c:.4f} c = {vg0:.4e} m/s")
print(f"  vp × vg = {vp0*vg0:.4e} m²/s²")
print(f"  c²      = {c**2:.4e} m²/s²")
print(f"  vp × vg = c² の確認: {np.isclose(vp0*vg0, c**2)}")

波動インピーダンスの周波数依存性

import numpy as np
import matplotlib.pyplot as plt

# --- 各媒質の波動インピーダンス ---
eta_0 = 377  # 自由空間

# 代表的な媒質の比誘電率(磁性体でないので μr ≈ 1)
materials = {
    'Vacuum': 1.0,
    'Air': 1.0006,
    'Glass (BK7)': 2.28,  # n ≈ 1.51
    'Water': 80.0,
    'Silicon': 11.7,
    'FR-4 (PCB)': 4.5,
}

print("=== 各媒質の波動インピーダンス ===")
print(f"{'媒質':<20} {'εr':>8} {'η [Ω]':>10} {'n':>8}")
print("-" * 50)

eta_list = []
names = []
for name, eps_r in materials.items():
    eta = eta_0 / np.sqrt(eps_r)
    n = np.sqrt(eps_r)
    print(f"{name:<20} {eps_r:>8.2f} {eta:>10.2f} {n:>8.3f}")
    eta_list.append(eta)
    names.append(name)

# 棒グラフで比較
fig, ax = plt.subplots(figsize=(10, 6))
bars = ax.barh(names, eta_list, color='steelblue', edgecolor='navy', alpha=0.8)
ax.set_xlabel('Wave Impedance $\\eta$ [$\\Omega$]', fontsize=12)
ax.set_title('Wave Impedance of Various Materials', fontsize=13)
ax.grid(True, alpha=0.3, axis='x')

# 値をバーの横に表示
for bar, val in zip(bars, eta_list):
    ax.text(val + 5, bar.get_y() + bar.get_height()/2,
            f'{val:.1f} $\\Omega$', va='center', fontsize=10)

ax.set_xlim([0, 420])
plt.tight_layout()
plt.savefig('wave_impedance.png', dpi=150, bbox_inches='tight')
plt.show()

まとめ

本記事では、平面電磁波の基本的な性質について、マクスウェル方程式から出発して体系的に導出しました。

  • 波動方程式: マクスウェル方程式から $\nabla^2 \bm{E} = \mu_0\varepsilon_0 \frac{\partial^2 \bm{E}}{\partial t^2}$ を導出し、伝搬速度が $c = 1/\sqrt{\mu_0\varepsilon_0}$ であることを示しました
  • 平面波解: $\bm{E} = E_0 e^{j(\omega t – kz)}\hat{\bm{x}}$ が波動方程式の解であり、分散関係 $\omega = ck$ を満たすことを確認しました
  • 位相速度と群速度: 位相速度 $v_p = \omega/k$、群速度 $v_g = d\omega/dk$ を定義し、分散媒質では $v_p \neq v_g$ となることを示しました
  • 波動インピーダンス: $\eta_0 = \sqrt{\mu_0/\varepsilon_0} \approx 377$ $\Omega$ を導出しました
  • ポインティングベクトル: エネルギー流 $\bm{S} = \bm{E} \times \bm{H}$ と時間平均 $|\langle \bm{S} \rangle| = E_0^2/(2\eta)$ を求めました
  • エネルギー等分配: 電場と磁場のエネルギー密度が等しいことを示しました

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