電場とガウスの法則 — クーロン力から電束密度まで

なぜ冬にドアノブに触れると「バチッ」と静電気が走るのでしょうか。あるいは、コピー機はどうやって紙にトナーを定着させているのでしょうか。これらの日常的な現象の背後には、電荷が周囲の空間に「電場」を形成し、他の電荷に力を及ぼすという物理法則が潜んでいます。

電場とガウスの法則を理解すると、次のような幅広い応用が見えてきます。

  • 半導体デバイスの設計: トランジスタ内部の電場分布がキャリアの輸送特性を支配し、pn接合の空乏層幅や降伏電圧を計算する際にガウスの法則が直接使われます
  • 静電シールド: 導体で囲まれた空間の内部電場がゼロになる理由は、ガウスの法則から即座に説明できます。精密計測機器の電磁干渉対策に不可欠な知識です
  • アンテナ・高周波回路: マクスウェル方程式の出発点である $\nabla \cdot \bm{D} = \rho$ はガウスの法則そのものであり、電磁波の理論へと自然につながります

本記事の内容

  • クーロンの法則と重ね合わせの原理
  • 電場ベクトル $\bm{E}$ の定義と物理的意味
  • 電気力線の概念と電場の可視化
  • 電束密度 $\bm{D}$ と誘電率の関係
  • ガウスの法則の積分形と微分形の導出
  • ガウスの法則の応用 — 球対称・円筒対称・平面対称
  • Pythonによる電場の可視化とガウスの法則の数値検証

前提知識

この記事を読む前に、以下の知識があると理解が深まります。

  • ベクトルの内積・外積の基本演算
  • 面積分・体積分の概念(ベクトル解析の基礎)

クーロンの法則 — 電荷間に働く力

直感的な理解

下敷きで髪の毛をこすると、下敷きに小さな紙片がくっつきます。摩擦によって電荷が移動し、帯電した下敷きと紙片の間に引力が働くからです。この「電荷間の力」を定量的に記述したのが クーロンの法則(Coulomb’s law) です。

クーロンの法則は「電荷間の力は電荷の積に比例し、距離の2乗に反比例する」という内容で、万有引力の法則と数学的に同じ形をしています。ただし、重力は常に引力ですが、電気力には引力と斥力の両方がある点が大きな違いです。

数学的定式化

真空中に点電荷 $q_1$ が原点に、点電荷 $q_2$ が位置 $\bm{r}$ にあるとき、$q_1$ が $q_2$ に及ぼす力 $\bm{F}_{12}$ は

$$ \bm{F}_{12} = \frac{1}{4\pi\varepsilon_0} \frac{q_1 q_2}{|\bm{r}|^2} \hat{\bm{r}} $$

と表されます。ここで各記号の意味は以下の通りです。

  • $\varepsilon_0 \approx 8.854 \times 10^{-12}$ F/m: 真空の誘電率
  • $\hat{\bm{r}} = \bm{r}/|\bm{r}|$: $q_1$ から $q_2$ への単位ベクトル
  • $1/(4\pi\varepsilon_0) \approx 8.988 \times 10^9$ N$\cdot$m$^2$/C$^2$: クーロン定数

$q_1 q_2 > 0$(同符号)のとき $\bm{F}_{12}$ は $\hat{\bm{r}}$ の向き、すなわち斥力です。$q_1 q_2 < 0$(異符号)のとき引力になります。

重ね合わせの原理

複数の点電荷 $q_1, q_2, \dots, q_N$ が存在する場合、ある電荷 $q$ に働く力は各電荷からの力のベクトル和として

$$ \bm{F} = \sum_{i=1}^{N} \frac{1}{4\pi\varepsilon_0} \frac{q_i q}{|\bm{r} – \bm{r}_i|^2} \hat{\bm{r}}_i $$

で与えられます。ここで $\bm{r}_i$ は第 $i$ 電荷の位置、$\hat{\bm{r}}_i$ は第 $i$ 電荷から $q$ に向かう単位ベクトルです。

この 重ね合わせの原理(superposition principle) は、電荷間の相互作用が線形であることを意味します。2つの電荷が及ぼす力は、他の電荷の存在によって変化しません。この線形性は電磁気学全体を通じて成り立つ基本的な性質です。

ここまでで、電荷間の力を直接計算する方法がわかりました。しかし、電荷の数が増えるとペアごとの力を全て計算するのは大変です。そこで「電場」という概念を導入し、力の問題を空間の性質として捉え直します。

電場ベクトル $\bm{E}$ の定義と物理的意味

「場」という考え方

クーロンの法則は「2つの電荷が直接力を及ぼし合う」という描像ですが、電磁気学ではこれを次のように読み替えます。「電荷 $q_1$ がまず周囲の空間に電場を作り、その電場が別の電荷 $q_2$ に力を及ぼす」。つまり、力の伝達を2段階に分けて考えるのです。

この「場」の概念は、ファラデーが電気力線という直感的な道具で導入し、マクスウェルが数学的に定式化しました。場の考え方を使うと、電荷がなくても空間そのものに電場というエネルギーが蓄えられている、という描像が可能になります。この描像は、電磁波の理解に不可欠です。

電場の定義

空間のある点に 試験電荷(test charge)と呼ばれる十分に小さな正電荷 $q_0$ を置いたとき、この電荷に働く力 $\bm{F}$ を使って電場を

$$ \bm{E} = \frac{\bm{F}}{q_0} $$

と定義します。単位は N/C(ニュートン毎クーロン)、またはV/m(ボルト毎メートル)です。

試験電荷を「十分に小さい」と限定するのは、試験電荷自身が周囲の電荷分布を乱さないようにするためです。数学的には $q_0 \to 0$ の極限で定義されます。

点電荷 $Q$ が原点に作る電場は、クーロンの法則から直ちに

$$ \bm{E}(\bm{r}) = \frac{1}{4\pi\varepsilon_0} \frac{Q}{|\bm{r}|^2} \hat{\bm{r}} $$

と得られます。この電場は $Q$ が正なら放射状に外向き、負なら放射状に内向きです。電場の大きさは距離の2乗に反比例して減衰します。これは、点電荷からの電場が球面状に広がっていくことの幾何学的帰結です。

連続電荷分布の場合

電荷が連続的に分布している場合、微小電荷 $dq$ が作る電場の寄与を全体にわたって積分します。

体積電荷密度 $\rho(\bm{r}’)$(単位: C/m$^3$)で分布する電荷の場合

$$ \bm{E}(\bm{r}) = \frac{1}{4\pi\varepsilon_0} \int_V \frac{\rho(\bm{r}’)}{|\bm{r} – \bm{r}’|^2} \hat{\bm{R}} \, dV’ $$

ここで $\bm{R} = \bm{r} – \bm{r}’$、$\hat{\bm{R}} = \bm{R}/|\bm{R}|$ です。同様に、面電荷密度 $\sigma$(C/m$^2$)や線電荷密度 $\lambda$(C/m)の場合は、面積分や線積分に置き換えます。

これらの積分を直接計算するのは一般に困難ですが、対称性の高い問題ではガウスの法則を使って劇的に簡単になります。それについてはガウスの法則のセクションで詳しく見ていきます。

まずは、電場を直感的に理解するための道具である「電気力線」の概念を確認しましょう。

電気力線と電場の可視化

電気力線とは

電気力線(electric field lines) は、ファラデーが考案した電場の可視化ツールです。各点で電場ベクトルに接するように描かれた曲線が電気力線です。電気力線には以下の性質があります。

  1. 電気力線は正電荷から出発し、負電荷で終わる。正電荷が「湧き出し」、負電荷が「吸い込み」に対応します
  2. 電気力線の密度は電場の強さに比例する。力線が密集しているところは電場が強く、まばらなところは弱い
  3. 電気力線は交差しない。もし交差すれば、その点で電場が2方向を向くことになり、矛盾します
  4. 電気力線は電場の方向を示す。各点での力線の接線方向が、その点の電場の向きです

代表的な電場パターン

いくつかの典型的な電荷配置に対する電気力線のパターンを見てみましょう。

正の点電荷: 電気力線は電荷から放射状に外向きに広がります。3次元では球面状に一様に広がり、距離が2倍になると面積が4倍になるため、力線の面密度は $1/r^2$ で減少します。

電気双極子(正と負の等量電荷のペア): 正電荷から出た力線が曲がりながら負電荷に入ります。2つの電荷の間の領域では力線が密集し、電場が強いことがわかります。

平行平板コンデンサ: 正に帯電した板から負に帯電した板に向かって、ほぼ一様な(平行で等間隔の)電気力線が走ります。端部では力線が外側に膨らみます(フリンジング効果)。

電気力線は定性的な理解に有用ですが、電場の強さを定量的に扱うには電束密度 $\bm{D}$ という量を導入すると便利です。次のセクションで電束密度を定義し、ガウスの法則への道を開きます。

電束密度 $\bm{D}$ と誘電率

電束密度の導入

電気力線の「本数」を定量化するために、電束密度(electric flux density) $\bm{D}$ を導入します。真空中では

$$ \bm{D} = \varepsilon_0 \bm{E} $$

と定義されます。$\bm{D}$ の単位は C/m$^2$(クーロン毎平方メートル)です。

一見すると $\bm{D}$ は $\bm{E}$ に定数を掛けただけで、わざわざ新しい量を導入する意味がないように思えるかもしれません。しかし、$\bm{D}$ の真価は誘電体(絶縁体)が存在する場合に発揮されます。

誘電体中の電場

誘電体(ガラス、プラスチック、水など)を外部電場中に置くと、誘電体内部の分子が電気的に分極し、分極電荷が現れます。この分極電荷が元の電場を弱める方向に電場を作るため、誘電体内部の電場は真空中より弱くなります。

比誘電率 $\varepsilon_r$(無次元)を用いると、線形等方性の誘電体中の電束密度は

$$ \bm{D} = \varepsilon_0 \varepsilon_r \bm{E} = \varepsilon \bm{E} $$

と書けます。ここで $\varepsilon = \varepsilon_0 \varepsilon_r$ は媒質の誘電率です。

$\bm{D}$ のメリットは、自由電荷のみをソースとすることです。分極電荷は $\bm{D}$ のソースに含まれません。このため、ガウスの法則を $\bm{D}$ で書くと、誘電体の有無にかかわらず同じ形になります。

代表的な物質の比誘電率を挙げておきます。

物質 $\varepsilon_r$
真空 1(定義)
空気 1.0006
テフロン 2.1
ガラス 4 – 10
80
チタン酸バリウム 1,200 – 10,000

水の比誘電率が非常に大きいのは、水分子が大きな永久双極子モーメントを持つためです。この高い誘電率のおかげで、水中ではイオン間のクーロン力が真空中の 1/80 に弱められ、塩が水に溶けやすくなっています。

電束密度と誘電率を手に入れたところで、いよいよ本記事の中心であるガウスの法則に進みましょう。ガウスの法則は「閉曲面を貫く電束は、内部の電荷に等しい」という驚くほどシンプルな法則です。

ガウスの法則 — 積分形と微分形

電束(electric flux)の定義

ガウスの法則を述べるために、まず 電束(electric flux) $\Phi_E$ を定義します。任意の面 $S$ を貫く電束は

$$ \Phi_E = \int_S \bm{D} \cdot d\bm{S} = \int_S \bm{D} \cdot \hat{\bm{n}} \, dS $$

です。ここで $\hat{\bm{n}}$ は面の法線単位ベクトル、$dS$ は微小面積要素です。

電束の物理的意味は「面を貫く電気力線の本数」に対応します。$\bm{D}$ が面に垂直なら $\bm{D} \cdot \hat{\bm{n}} = |\bm{D}|$ で、面密度と面積の積がそのまま電束になります。$\bm{D}$ が面に平行なら $\bm{D} \cdot \hat{\bm{n}} = 0$ で電束はゼロです。

ガウスの法則(積分形)

ガウスの法則は次のように述べられます。任意の閉曲面 $S$ を貫く電束は、閉曲面の内部に含まれる全電荷 $Q_{\text{enc}}$ に等しい。

$$ \oint_S \bm{D} \cdot d\bm{S} = Q_{\text{enc}} $$

あるいは $\bm{D} = \varepsilon_0 \bm{E}$ を代入して

$$ \oint_S \bm{E} \cdot d\bm{S} = \frac{Q_{\text{enc}}}{\varepsilon_0} $$

と書くこともできます。

この法則の直感的な意味は明快です。正電荷は電気力線の「湧き出し」、負電荷は「吸い込み」です。閉曲面を貫く力線の正味の本数は、内部の正味の電荷量を反映しているのです。

ガウスの法則の導出(点電荷の場合)

ガウスの法則がクーロンの法則から導かれることを確認しましょう。点電荷 $Q$ を中心とする半径 $r$ の球面 $S$ を考えます。

点電荷の電場は

$$ \bm{E} = \frac{Q}{4\pi\varepsilon_0 r^2} \hat{\bm{r}} $$

です。球面上では $\hat{\bm{n}} = \hat{\bm{r}}$ であり、$|\bm{E}|$ は球面上で一定値 $Q/(4\pi\varepsilon_0 r^2)$ を取ります。したがって面積分を実行すると

$$ \oint_S \bm{E} \cdot d\bm{S} = \frac{Q}{4\pi\varepsilon_0 r^2} \times 4\pi r^2 = \frac{Q}{\varepsilon_0} $$

$r^2$ がきれいに打ち消され、結果は球面の半径 $r$ によらないことがわかります。これは、電場が $1/r^2$ で減少する一方、球面の面積が $r^2$ で増大するため、両者の積(電束)が一定に保たれるという幾何学的な帰結です。

重ね合わせの原理により、複数の点電荷がある場合も、各電荷からの電束の寄与を足し合わせればよく、ガウスの法則は一般的に成り立ちます。閉曲面の外部にある電荷は、面に入る力線と出る力線が相殺するため、正味の電束に寄与しません。

ガウスの法則(微分形)

積分形のガウスの法則に ガウスの発散定理

$$ \oint_S \bm{D} \cdot d\bm{S} = \int_V (\nabla \cdot \bm{D}) \, dV $$

を適用すると

$$ \int_V (\nabla \cdot \bm{D}) \, dV = \int_V \rho \, dV $$

が得られます。ここで $Q_{\text{enc}} = \int_V \rho \, dV$ を使いました。この等式が任意の体積 $V$ について成り立つためには、被積分関数が等しくなければなりません。したがって

$$ \nabla \cdot \bm{D} = \rho $$

これがガウスの法則の 微分形 です。真空中では $\bm{D} = \varepsilon_0 \bm{E}$ なので

$$ \nabla \cdot \bm{E} = \frac{\rho}{\varepsilon_0} $$

となります。これはマクスウェル方程式の第1式そのものです。

微分形は「電場の発散(divergence)が電荷密度に比例する」と読めます。発散が正の点には正電荷(湧き出し)があり、発散が負の点には負電荷(吸い込み)がある、という意味です。

ガウスの法則を積分形と微分形の両方で表現できるようになりました。積分形の真の威力は、高い対称性を持つ問題に適用したときに発揮されます。次のセクションで、3つの典型的な対称性について具体的に見ていきましょう。

ガウスの法則の応用 — 対称性を活用した電場計算

ガウスの法則が特に強力になるのは、電荷分布に対称性がある場合です。対称性から電場の方向と依存性をあらかじめ推測し、ガウスの法則で大きさを決定するという戦略を取ります。このとき、面積分が単純な掛け算に帰着するような閉曲面(ガウス面)を巧みに選ぶことがポイントです。

球対称: 一様に帯電した球

半径 $a$、全電荷 $Q$ が一様に分布した球を考えます(体積電荷密度 $\rho = 3Q/(4\pi a^3)$)。

ガウス面の選択: 対称性から、電場は動径方向のみ($\bm{E} = E(r)\hat{\bm{r}}$)で、$r$ のみに依存します。半径 $r$ の同心球面をガウス面に選ぶと、面上で $\bm{E} \cdot \hat{\bm{n}} = E(r)$ が一定です。

球の外側 ($r > a$):

ガウスの法則の左辺は

$$ \oint_S \bm{E} \cdot d\bm{S} = E(r) \times 4\pi r^2 $$

右辺の内包電荷は球の全電荷 $Q$ なので

$$ E(r) \times 4\pi r^2 = \frac{Q}{\varepsilon_0} $$

$E(r)$ について解くと

$$ E(r) = \frac{Q}{4\pi\varepsilon_0 r^2} \quad (r > a) $$

これは点電荷の電場と全く同じです。球の外側から見ると、一様に帯電した球は中心にある点電荷と区別できません。ニュートンの殻定理(shell theorem)の電気版です。

球の内側 ($r < a$):

半径 $r$ の球面内に含まれる電荷は、体積の比で

$$ Q_{\text{enc}} = Q \times \frac{r^3}{a^3} $$

です。ガウスの法則から

$$ E(r) \times 4\pi r^2 = \frac{Q}{\varepsilon_0} \frac{r^3}{a^3} $$

$E(r)$ について解くと

$$ E(r) = \frac{Q}{4\pi\varepsilon_0 a^3} r \quad (r < a) $$

球の内部では電場は $r$ に比例して増大します。中心では $E = 0$ であり、これは対称性からも当然です。

円筒対称: 無限に長い一様な線電荷

線電荷密度 $\lambda$(C/m)を持つ無限直線電荷を考えます。

ガウス面の選択: 対称性から、電場は直線に垂直な放射方向のみを向き、直線からの距離 $\rho$ のみに依存します。高さ $L$、半径 $\rho$ の同軸円筒面をガウス面に選びます。

円筒の側面では $\bm{E} \cdot \hat{\bm{n}} = E(\rho)$ で一定、上面と底面では $\bm{E} \perp \hat{\bm{n}}$ なので寄与はゼロです。

$$ \oint_S \bm{E} \cdot d\bm{S} = E(\rho) \times 2\pi\rho L $$

内包電荷は $Q_{\text{enc}} = \lambda L$ なので

$$ E(\rho) \times 2\pi\rho L = \frac{\lambda L}{\varepsilon_0} $$

$E(\rho)$ について解くと

$$ E(\rho) = \frac{\lambda}{2\pi\varepsilon_0 \rho} $$

電場は距離に反比例($1/\rho$)で減衰します。これは逆二乗則($1/r^2$)とは異なることに注意してください。点電荷では球面状に広がるので $1/r^2$、線電荷では円筒面状に広がるので $1/\rho$ になるのです。次元的に言えば、2次元的な広がりに対しては $1/r^2$、1次元的な広がりに対しては $1/r$ という依存性が現れます。

平面対称: 無限平面上の一様な面電荷

面電荷密度 $\sigma$(C/m$^2$)が一様に分布した無限平面を考えます。

ガウス面の選択: 対称性から、電場は平面に垂直で、平面からの距離のみに依存します。平面をまたいで上下対称に配置した、底面積 $A$ の円柱をガウス面に選びます。

円柱の上面と底面の両方で $\bm{E} \cdot \hat{\bm{n}} = E$ です。側面では $\bm{E} \perp \hat{\bm{n}}$ なので寄与はゼロです。

$$ \oint_S \bm{E} \cdot d\bm{S} = E \times A + E \times A = 2EA $$

内包電荷は $Q_{\text{enc}} = \sigma A$ なので

$$ 2EA = \frac{\sigma A}{\varepsilon_0} $$

$E$ について解くと

$$ E = \frac{\sigma}{2\varepsilon_0} $$

注目すべきは、この電場が距離に依存しない(一定)ことです。無限平面からどれだけ離れても電場の大きさは変わりません。これは、平面が無限に広い場合の理想化ですが、平行平板コンデンサの内部電場($E = \sigma/\varepsilon_0$、2枚の板の寄与が重なるため2倍)の基礎になる重要な結果です。

3つの対称性の例から、ガウスの法則とうまく選んだガウス面の組み合わせが、複雑な積分を回避して電場を求める強力な方法であることがわかりました。次に、これらの結果を Python で可視化し、数値的にもガウスの法則を検証してみましょう。

Pythonでの実装 — 電場の可視化

点電荷と電気双極子の電場(streamplot)

まず、点電荷と電気双極子が作る電場をストリームプロット(流線図)で可視化します。

import numpy as np
import matplotlib.pyplot as plt

# 2次元グリッドの生成
x = np.linspace(-3, 3, 300)
y = np.linspace(-3, 3, 300)
X, Y = np.meshgrid(x, y)

def electric_field_point(qx, qy, q, X, Y):
    """点電荷 q が位置 (qx, qy) に作る電場"""
    Rx = X - qx
    Ry = Y - qy
    R = np.sqrt(Rx**2 + Ry**2)
    R = np.maximum(R, 0.1)  # ゼロ除算防止
    Ex = q * Rx / R**3
    Ey = q * Ry / R**3
    return Ex, Ey

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

# (1) 正の点電荷
Ex, Ey = electric_field_point(0, 0, 1, X, Y)
E_mag = np.sqrt(Ex**2 + Ey**2)
axes[0].streamplot(X, Y, Ex, Ey, color=np.log10(E_mag), cmap='inferno',
                   density=1.5, linewidth=1)
axes[0].plot(0, 0, 'ro', markersize=12, label='+Q')
axes[0].set_title('Positive Point Charge', fontsize=13)
axes[0].set_xlabel('x')
axes[0].set_ylabel('y')
axes[0].set_xlim(-3, 3)
axes[0].set_ylim(-3, 3)
axes[0].set_aspect('equal')
axes[0].legend(fontsize=11)

# (2) 負の点電荷
Ex, Ey = electric_field_point(0, 0, -1, X, Y)
E_mag = np.sqrt(Ex**2 + Ey**2)
axes[1].streamplot(X, Y, Ex, Ey, color=np.log10(E_mag), cmap='inferno',
                   density=1.5, linewidth=1)
axes[1].plot(0, 0, 'bo', markersize=12, label='-Q')
axes[1].set_title('Negative Point Charge', fontsize=13)
axes[1].set_xlabel('x')
axes[1].set_ylabel('y')
axes[1].set_xlim(-3, 3)
axes[1].set_ylim(-3, 3)
axes[1].set_aspect('equal')
axes[1].legend(fontsize=11)

# (3) 電気双極子
Ex1, Ey1 = electric_field_point(-0.5, 0, 1, X, Y)
Ex2, Ey2 = electric_field_point(0.5, 0, -1, X, Y)
Ex = Ex1 + Ex2
Ey = Ey1 + Ey2
E_mag = np.sqrt(Ex**2 + Ey**2)
axes[2].streamplot(X, Y, Ex, Ey, color=np.log10(E_mag), cmap='inferno',
                   density=1.5, linewidth=1)
axes[2].plot(-0.5, 0, 'ro', markersize=12, label='+Q')
axes[2].plot(0.5, 0, 'bo', markersize=12, label='-Q')
axes[2].set_title('Electric Dipole', fontsize=13)
axes[2].set_xlabel('x')
axes[2].set_ylabel('y')
axes[2].set_xlim(-3, 3)
axes[2].set_ylim(-3, 3)
axes[2].set_aspect('equal')
axes[2].legend(fontsize=11)

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

3つのパネルに、それぞれ正の点電荷、負の点電荷、電気双極子の電場が描かれています。正電荷からは電気力線が放射状に外向きに広がり、負電荷では放射状に内向きに集中しています。電気双極子では、正電荷から出発した力線が弧を描いて負電荷に入る様子が明確に見えます。色の濃淡が電場の強さを表しており、電荷に近いほど電場が強い(色が明るい)ことがわかります。双極子の中間地点では力線が密集し、双極子軸に垂直な方向では力線がまばらになっていることも確認できます。

複数電荷の電場パターン

次に、同符号電荷の対と4極子(四重極子)のパターンも描いてみましょう。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-4, 4, 400)
y = np.linspace(-4, 4, 400)
X, Y = np.meshgrid(x, y)

def e_field(charges, X, Y):
    """複数の点電荷が作る電場を計算"""
    Ex_total = np.zeros_like(X)
    Ey_total = np.zeros_like(Y)
    for (qx, qy, q) in charges:
        Rx = X - qx
        Ry = Y - qy
        R = np.sqrt(Rx**2 + Ry**2)
        R = np.maximum(R, 0.15)
        Ex_total += q * Rx / R**3
        Ey_total += q * Ry / R**3
    return Ex_total, Ey_total

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

# (1) 同符号電荷 (+Q, +Q)
charges_same = [(-1, 0, 1), (1, 0, 1)]
Ex, Ey = e_field(charges_same, X, Y)
E_mag = np.sqrt(Ex**2 + Ey**2)
axes[0].streamplot(X, Y, Ex, Ey, color=np.log10(E_mag), cmap='inferno',
                   density=1.8, linewidth=1)
axes[0].plot(-1, 0, 'ro', markersize=12)
axes[0].plot(1, 0, 'ro', markersize=12)
axes[0].set_title('Two Positive Charges', fontsize=13)
axes[0].set_xlabel('x')
axes[0].set_ylabel('y')
axes[0].set_xlim(-4, 4)
axes[0].set_ylim(-4, 4)
axes[0].set_aspect('equal')

# (2) 四重極子
charges_quad = [(-1, -1, 1), (1, -1, -1), (-1, 1, -1), (1, 1, 1)]
Ex, Ey = e_field(charges_quad, X, Y)
E_mag = np.sqrt(Ex**2 + Ey**2)
axes[1].streamplot(X, Y, Ex, Ey, color=np.log10(E_mag), cmap='inferno',
                   density=1.8, linewidth=1)
for (qx, qy, q) in charges_quad:
    color = 'ro' if q > 0 else 'bo'
    axes[1].plot(qx, qy, color, markersize=12)
axes[1].set_title('Electric Quadrupole', fontsize=13)
axes[1].set_xlabel('x')
axes[1].set_ylabel('y')
axes[1].set_xlim(-4, 4)
axes[1].set_ylim(-4, 4)
axes[1].set_aspect('equal')

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

左図の同符号電荷では、2つの正電荷からそれぞれ放射状に力線が出ていますが、電荷間の中点付近には力線が存在しない「中和領域」が現れています。この点は電場がゼロになる鞍点(saddle point)であり、2つの電荷からの電場がちょうど打ち消し合う位置です。遠方では2つの電荷が合体した1つの電荷 $+2Q$ のように見え、力線がほぼ放射状になっています。右図の四重極子では、さらに複雑なパターンが現れ、電場がゼロになる点が複数存在します。四重極子の電場は遠方で $1/r^4$ に比例して急速に減衰するため、力線の密度が急激に薄くなっています。

ガウスの法則の数値検証

最後に、ガウスの法則を数値的に検証します。点電荷を囲む様々な半径の球面上で電束を計算し、理論値 $Q/\varepsilon_0$ と一致するかを確認します。

import numpy as np
import matplotlib.pyplot as plt

# 物理定数(SI単位系)
eps0 = 8.854e-12  # 真空の誘電率 [F/m]
Q = 1e-9           # 点電荷 1 nC

# 理論上のガウスの法則: Phi = Q / eps0
phi_theory = Q / eps0

# 球面上の数値積分でガウスの法則を検証
def gauss_law_numerical(Q, r, n_theta=100, n_phi=200):
    """半径rの球面上でE・dSを数値積分"""
    theta = np.linspace(0, np.pi, n_theta)
    phi = np.linspace(0, 2 * np.pi, n_phi)
    dtheta = theta[1] - theta[0]
    dphi = phi[1] - phi[0]

    flux = 0.0
    for t in theta:
        for p in phi:
            # 球面上の点での電場(動径方向成分のみ)
            E_r = Q / (4 * np.pi * eps0 * r**2)
            # 微小面積要素: r^2 sin(theta) dtheta dphi
            dS = r**2 * np.sin(t) * dtheta * dphi
            flux += E_r * dS
    return flux

# 様々な半径で検証
radii = np.array([0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0])
fluxes = []
for r in radii:
    phi_num = gauss_law_numerical(Q, r, n_theta=50, n_phi=100)
    fluxes.append(phi_num)
fluxes = np.array(fluxes)

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

# 左: 電束 vs 半径
ax = axes[0]
ax.semilogx(radii, fluxes, 'bo-', markersize=8, linewidth=2, label='Numerical')
ax.axhline(y=phi_theory, color='r', linestyle='--', linewidth=2,
           label=f'Theory: $Q/\\varepsilon_0$ = {phi_theory:.2f} V$\\cdot$m')
ax.set_xlabel('Radius of Gaussian surface [m]', fontsize=12)
ax.set_ylabel('Electric flux $\\Phi_E$ [V$\\cdot$m]', fontsize=12)
ax.set_title("Gauss's Law: Numerical Verification", fontsize=13)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)

# 右: 相対誤差
ax = axes[1]
relative_error = np.abs(fluxes - phi_theory) / phi_theory * 100
ax.semilogx(radii, relative_error, 'go-', markersize=8, linewidth=2)
ax.set_xlabel('Radius of Gaussian surface [m]', fontsize=12)
ax.set_ylabel('Relative error [%]', fontsize=12)
ax.set_title('Numerical Integration Error', fontsize=13)
ax.grid(True, alpha=0.3)

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

print(f"理論値: Phi = Q/eps0 = {phi_theory:.4f} V*m")
print(f"数値計算結果:")
for r, phi_num in zip(radii, fluxes):
    err = abs(phi_num - phi_theory) / phi_theory * 100
    print(f"  r = {r:.3f} m: Phi = {phi_num:.4f} V*m (誤差 {err:.3f}%)")

左図では、球面の半径を 0.01 m から 5 m まで変化させても電束がほぼ一定($Q/\varepsilon_0 \approx 112.94$ V$\cdot$m)であることが確認できます。赤破線が理論値、青丸が数値計算の結果であり、ほぼ完全に重なっています。これはガウスの法則「閉曲面を貫く電束は内部電荷のみで決まり、面の形や大きさに依存しない」ことの数値的な証拠です。右図は数値積分の相対誤差を示しており、分割数を $50 \times 100$ とした場合でも 1% 未満の精度が得られています。分割数を増やせば誤差はさらに小さくなります。

一様帯電球の電場分布

ガウスの法則の応用で導いた一様帯電球の電場を数値的にプロットし、理論曲線と比較します。

import numpy as np
import matplotlib.pyplot as plt

# パラメータ
Q = 1.0      # 全電荷(規格化)
a = 1.0      # 球の半径
k = 1.0      # クーロン定数 1/(4*pi*eps0)(規格化)

# 理論解
r = np.linspace(0, 4, 500)
E_theory = np.where(
    r <= a,
    k * Q * r / a**3,       # 球の内部: E = kQr/a^3
    k * Q / r**2             # 球の外部: E = kQ/r^2
)

fig, ax = plt.subplots(figsize=(10, 6))

ax.plot(r, E_theory, 'b-', linewidth=2.5, label='$E(r)$ (theory)')

# 境界 r = a を強調
ax.axvline(x=a, color='gray', linestyle=':', linewidth=1.5, label='$r = a$ (surface)')

# 内部と外部のラベル
ax.fill_between(r[r <= a], 0, E_theory[r <= a], alpha=0.15, color='blue')
ax.fill_between(r[r > a], 0, E_theory[r > a], alpha=0.08, color='red')

ax.annotate('Inside: $E \\propto r$', xy=(0.5, 0.25), fontsize=12,
            color='blue', fontweight='bold')
ax.annotate('Outside: $E \\propto 1/r^2$', xy=(2.0, 0.15), fontsize=12,
            color='red', fontweight='bold')

# 最大値の位置
E_max = k * Q / a**2
ax.plot(a, E_max, 'ko', markersize=10, zorder=5)
ax.annotate(f'$E_{{max}} = kQ/a^2$ = {E_max:.2f}',
            xy=(a, E_max), xytext=(1.5, E_max + 0.1),
            fontsize=11, arrowprops=dict(arrowstyle='->', color='black'))

ax.set_xlabel('$r / a$', fontsize=13)
ax.set_ylabel('$E(r)$ [normalized]', fontsize=13)
ax.set_title('Electric Field of a Uniformly Charged Sphere', fontsize=14)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
ax.set_xlim(0, 4)
ax.set_ylim(0, 1.2)

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

球の内部($r < a$、青色の塗り領域)では電場が原点からの距離 $r$ に比例して直線的に増大し、球面($r = a$)で最大値 $kQ/a^2$ に達します。球の外部($r > a$、赤色の塗り領域)では電場が $1/r^2$ で減衰し、遠方では点電荷と同じ振る舞いをします。このグラフの「折れ点」が球の表面 $r = a$ に対応しており、内部の線形増大と外部の逆二乗則減衰が滑らかに接続していることがわかります。電場そのものは $r = a$ で連続ですが、傾き(微分)は不連続です。この不連続性は表面に面電荷が存在しない(体積分布が突然ゼロになる)ことに対応しています。

線電荷と面電荷の電場の距離依存性の比較

3つの対称性(球対称・円筒対称・平面対称)で得た電場の距離依存性を1つのグラフにまとめて比較します。

import numpy as np
import matplotlib.pyplot as plt

r = np.linspace(0.2, 5, 300)

# 規格化して比較(r=1での値を1に揃える)
E_point = 1.0 / r**2           # 点電荷: 1/r^2
E_line = 1.0 / r               # 線電荷: 1/r
E_plane = np.ones_like(r)      # 面電荷: 一定

fig, ax = plt.subplots(figsize=(10, 6))

ax.plot(r, E_point, 'b-', linewidth=2.5, label='Point charge: $E \\propto 1/r^2$')
ax.plot(r, E_line, 'r-', linewidth=2.5, label='Line charge: $E \\propto 1/r$')
ax.plot(r, E_plane, 'g-', linewidth=2.5, label='Plane charge: $E = \\mathrm{const.}$')

ax.set_xlabel('Distance $r$ [normalized]', fontsize=13)
ax.set_ylabel('Electric field $E$ [normalized]', fontsize=13)
ax.set_title('Distance Dependence of E for Different Symmetries', fontsize=14)
ax.legend(fontsize=12)
ax.grid(True, alpha=0.3)
ax.set_xlim(0.2, 5)
ax.set_ylim(0, 3)

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

3つの距離依存性が一目で比較できます。点電荷(青)の電場は $1/r^2$ で最も急速に減衰し、線電荷(赤)は $1/r$ でより緩やかに減衰し、面電荷(緑)は距離に依存しない一定値です。この違いは電場の「広がり方の次元」に由来します。点電荷の電場は3次元的に球面状に広がるので面積 $4\pi r^2$ で割られ、線電荷は2次元的に円筒面状に広がるので周長 $2\pi r$ で割られ、面電荷は1次元的にのみ広がるので減衰しません。有限の大きさの電荷分布では、近傍ではその形状の対称性に応じた振る舞いをし、遠方では全て点電荷の $1/r^2$ に漸近します。

まとめ

本記事では、静電場の基礎であるクーロンの法則から出発し、電場・電束密度・ガウスの法則まで体系的に解説しました。

  • クーロンの法則: 点電荷間の力は電荷の積に比例し、距離の2乗に反比例する。重ね合わせの原理により、複数電荷の効果はベクトル的に足し合わせる
  • 電場 $\bm{E}$: 空間の各点に定義されるベクトル量で、$\bm{E} = \bm{F}/q_0$。「場」の概念により、力の伝達を空間の性質として記述できる
  • 電気力線: 電場の方向と強さを直感的に可視化するツール。正電荷から湧き出し、負電荷に吸い込まれる
  • 電束密度 $\bm{D}$: $\bm{D} = \varepsilon \bm{E}$ で定義され、自由電荷のみをソースとする。誘電体がある場合でもガウスの法則が簡潔に書ける
  • ガウスの法則: 積分形 $\oint \bm{D} \cdot d\bm{S} = Q_{\text{enc}}$、微分形 $\nabla \cdot \bm{D} = \rho$。マクスウェル方程式の第1式であり、静電場の根幹
  • 対称性の活用: 球・円筒・平面対称では、適切なガウス面を選ぶことで電場を簡単に求められる。電場の距離依存性は対称性の次元によって $1/r^2$、$1/r$、定数と変わる

ガウスの法則は電場の「湧き出し」を記述する法則ですが、静電場にはもう一つの重要な性質 — 「渦なし」(回転がゼロ)— があります。この性質から電位(ポテンシャル)が定義され、電場を1つのスカラー関数で記述できるようになります。

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