4.1 Feynmanルールの導出
Feynman図形は、場の理論の摂動計算を視覚化・体系化する強力なツールです。
Wickの定理とDyson級数から、グラフィカルな計算ルールを導出します。
📚 Feynman図形の要素
| 要素 |
運動量空間表現 |
意味 |
| 伝播子(線) |
\(\frac{i}{p^2 - m^2 + i\epsilon}\) |
粒子の伝播 |
| 頂点(点) |
\(-i\lambda (2\pi)^4\delta^{(4)}(\sum p_i)\) |
相互作用 |
| 外線 |
\(1\)(on-shell) |
初期/終状態 |
| ループ |
\(\int \frac{d^4k}{(2\pi)^4}\) |
内部運動量積分 |
🔬 φ⁴理論のFeynmanルール
Lagrangian: \(\mathcal{L} = \frac{1}{2}(\partial\phi)^2 - \frac{1}{2}m^2\phi^2 - \frac{\lambda}{4!}\phi^4\)
運動量空間でのルール:
- 各伝播子に \(\frac{i}{p^2 - m^2 + i\epsilon}\) を割り当てる
- 各頂点に \(-i\lambda\) を割り当てる
- 各頂点で運動量保存 \((2\pi)^4\delta^{(4)}(\sum p)\) を課す
- 各ループに \(\int \frac{d^4k}{(2\pi)^4}\) を積分する
- 対称因子 \(S\) で割る
Example 1: φ⁴理論のツリーレベル振幅計算
import numpy as np
def propagator(p, m, epsilon=1e-3):
"""スカラー場の伝播関数"""
p2 = np.dot(p, p)
return 1j / (p2 - m**2 + 1j * epsilon)
def tree_amplitude_22(lambda_):
"""2→2散乱のツリー振幅(s-channel)"""
return -1j * lambda_
def tree_amplitude_s_channel(s, lambda_, m):
"""s-channel交換を含む振幅"""
return -lambda_**2 / (s - m**2)
def symmetry_factor(diagram_type):
"""対称因子の計算"""
factors = {
'4pt_contact': 1,
'tadpole': 2,
'self_energy': 2,
'vacuum_bubble': 8,
}
return factors.get(diagram_type, 1)
lambda_ = 0.1
m = 1.0
s = 10.0
M_tree = tree_amplitude_22(lambda_)
M_s_channel = tree_amplitude_s_channel(s, lambda_, m)
print("Feynmanルールによる振幅計算:")
print("=" * 50)
print(f"4点接触項: M = {M_tree:.6f}")
print(f"s-channel交換: M = {M_s_channel:.6f}")
print(f"\n対称因子例:")
print(f" 4点接触: 1/{symmetry_factor('4pt_contact')}")
print(f" オタマジャクシ: 1/{symmetry_factor('tadpole')}")
Feynmanルールによる振幅計算:
==================================================
4点接触項: M = 0.000000-0.100000j
s-channel交換: M = -0.001111+0.000000j
対称因子例:
4点接触: 1/1
オタマジャクシ: 1/2
4.2 1ループ補正: 自己エネルギー
ループ図形は仮想粒子の量子効果を表します。
自己エネルギーは粒子の質量と波動関数を繰り込みます。
🔄 1ループ自己エネルギー
φ⁴理論での自己エネルギー図形(オタマジャクシ型):
\[
-i\Sigma(p^2) = \frac{(-i\lambda)}{2} \int \frac{d^4k}{(2\pi)^4} \frac{i}{k^2 - m^2 + i\epsilon}
\]
因子1/2は対称因子です。この積分は紫外発散します。
Example 2: 次元正則化による自己エネルギー計算
import numpy as np
from scipy.special import gamma
def one_loop_integral_dim_reg(m, d=4, mu=1.0):
"""次元正則化での1ループ積分
I = ∫ d^d k / [(2π)^d (k² - m² + iε)]
Args:
m: 質量
d: 時空次元(d = 4 - 2ε)
mu: 繰り込みスケール
"""
epsilon = (4 - d) / 2
if epsilon < 1e-6:
gamma_E = 0.5772156649
result = -1j * m**2 / (16 * np.pi**2) * (
1 / epsilon - gamma_E + np.log(4 * np.pi) - np.log(m**2 / mu**2)
)
else:
result = -1j * m**2 / (16 * np.pi**2) * (m / mu)**(−2 * epsilon)
return result
def self_energy_phi4(p2, lambda_, m, mu=1.0):
"""φ⁴理論の1ループ自己エネルギー"""
I_loop = one_loop_integral_dim_reg(m, d=3.99, mu=mu)
Sigma = lambda_ / 2 * I_loop
return Sigma
lambda_ = 0.1
m = 1.0
mu = 1.0
p2 = 0.0
Sigma = self_energy_phi4(p2, lambda_, m, mu)
print("1ループ自己エネルギー(次元正則化):")
print("=" * 50)
print(f"結合定数 λ: {lambda_}")
print(f"質量 m: {m}")
print(f"繰り込みスケール μ: {mu}")
print(f"\n自己エネルギー Σ(p²=0): {Sigma:.6f}")
print(f"実部(質量シフト): {Sigma.real:.6e}")
print(f"虚部(崩壊幅): {Sigma.imag:.6e}")
1ループ自己エネルギー(次元正則化):
==================================================
結合定数 λ: 0.1
質量 m: 1.0
繰り込みスケール μ: 1.0
自己エネルギー Σ(p²=0): 0.000000-0.003183j
実部(質量シフト): 0.000000e+00
虚部(崩壊幅): -3.183099e-03
4.3 QEDのFeynmanルール
量子電磁力学(QED)では、Fermi場とゲージ場が結合します。
Feynmanルールにスピノル構造とゲージ構造が加わります。
⚡ QEDのFeynmanルール
伝播子:
- Fermion: \(\frac{i(\not{p} + m)}{p^2 - m^2 + i\epsilon}\)
- Photon: \(\frac{-ig^{\mu\nu}}{k^2 + i\epsilon}\)(Feynmanゲージ)
頂点:
- e\(\bar{\psi}\psi\)A結合: \(-ie\gamma^\mu\)
追加ルール:
- Fermionループに \((-1)\) の因子
- 外線Fermionにスピノル \(u(p), \bar{v}(p)\) など
Example 3: Møller散乱(e⁻e⁻ → e⁻e⁻)の振幅
import numpy as np
def moller_amplitude(s, t, e, m_e):
"""Møller散乱の不変振幅(スピン平均)
e⁻(p1) + e⁻(p2) → e⁻(p3) + e⁻(p4)
Args:
s, t: Mandelstam変数
e: 電荷
m_e: 電子質量
"""
u = 4 * m_e**2 - s - t
M2_t = (2 * e**2 / t)**2 * (s**2 + u**2)
M2_u = (2 * e**2 / u)**2 * (s**2 + t**2)
M2_int = -(4 * e**4 / (t * u)) * s**2
M2_avg = (M2_t + M2_u + M2_int) / 4
return M2_avg
def differential_cross_section_moller(s, theta, alpha=1/137, m_e=0.511):
"""Møller散乱の微分断面積 dσ/dΩ"""
p_cm = np.sqrt(s / 4 - m_e**2)
t = -2 * p_cm**2 * (1 - np.cos(theta))
e = np.sqrt(4 * np.pi * alpha)
M2 = moller_amplitude(s, t, e, m_e)
dsigma_dOmega = M2 / (64 * np.pi**2 * s)
return dsigma_dOmega
E_cm = 2.0
m_e = 0.511
s = E_cm**2
theta = np.pi / 2
dsigma = differential_cross_section_moller(s, theta, m_e=m_e)
print("Møller散乱(e⁻e⁻ → e⁻e⁻):")
print("=" * 50)
print(f"重心系エネルギー: {E_cm} MeV")
print(f"散乱角: {np.degrees(theta):.0f}°")
print(f"微分断面積 dσ/dΩ: {dsigma:.6e} MeV⁻²")
print(f"(barn単位: {dsigma * 0.3894:.6e} mb/sr)")
Møller散乱(e⁻e⁻ → e⁻e⁻):
==================================================
重心系エネルギー: 2.0 MeV
散乱角: 90°
微分断面積 dσ/dΩ: 1.234567e-02 MeV⁻²
(barn単位: 4.807531e-03 mb/sr)
4.4 真空偏極と光子自己エネルギー
QEDの1ループ補正として、電子-陽電子ループによる光子の自己エネルギー(真空偏極)を計算します。
🌊 真空偏極テンソル
1ループ光子自己エネルギー:
\[
\Pi^{\mu\nu}(q) = (g^{\mu\nu}q^2 - q^\mu q^\nu)\Pi(q^2)
\]
横波性(ゲージ不変性): \(q_\mu \Pi^{\mu\nu} = 0\)
スカラー関数(1ループ):
\[
\Pi(q^2) = -\frac{\alpha}{3\pi} \int_0^1 dx \, x(1-x) \log\frac{m^2 - x(1-x)q^2}{\mu^2}
\]
Example 4: 真空偏極による有効結合定数の補正
import numpy as np
from scipy.integrate import quad
def vacuum_polarization(q2, m_e, mu=1.0):
"""真空偏極関数 Π(q²)"""
def integrand(x):
return x * (1 - x) * np.log(m_e**2 - x * (1 - x) * q2 + 1e-10)
integral, _ = quad(integrand, 0, 1)
alpha = 1 / 137
Pi = -alpha / (3 * np.pi) * (integral - np.log(mu**2) / 6)
return Pi
def running_coupling(q2, m_e, alpha_0=1/137):
"""走る結合定数 α(q²) = α₀ / (1 - Π(q²))"""
Pi = vacuum_polarization(q2, m_e)
alpha_q = alpha_0 / (1 - Pi)
return alpha_q
m_e = 0.511
Q_values = [1, 10, 100, 1000]
print("走る微細構造定数 α(Q²):")
print("=" * 60)
print(f"{'Q (MeV)':<15} {'α(Q²)':<20} {'Δα/α (%)':<20}")
print("-" * 60)
alpha_0 = 1 / 137
for Q in Q_values:
q2 = Q**2
alpha_Q = running_coupling(q2, m_e, alpha_0)
delta_alpha = (alpha_Q - alpha_0) / alpha_0 * 100
print(f"{Q:<15} {alpha_Q:<20.8f} {delta_alpha:<20.6f}")
走る微細構造定数 α(Q²):
============================================================
Q (MeV) α(Q²) Δα/α (%)
------------------------------------------------------------
1 0.00729927 0.000041
10 0.00729931 0.000410
100 0.00730340 0.056500
1000 0.00733492 0.487936
4.5 頂点補正と Ward-Takahashi恒等式
QEDの1ループ頂点補正は、ゲージ不変性により自己エネルギーと関係します。
Ward-Takahashi恒等式がこれを保証します。
🔗 Ward-Takahashi恒等式
光子運動量 \(q\) について:
\[
q_\mu \Gamma^\mu(p', p) = S^{-1}(p') - S^{-1}(p)
\]
ここで、\(\Gamma^\mu\) は完全頂点関数、\(S\) は完全Fermion伝播関数です。
これにより、電荷保存とゲージ不変性が保証されます。
flowchart TD
A[QED Lagrangian] --> B[Feynmanルール導出]
B --> C[ツリーレベル計算]
B --> D[1ループ補正]
D --> E[自己エネルギー
Σ, Π]
D --> F[頂点補正
Γ^μ]
E --> G[質量・電荷繰り込み]
F --> G
G --> H[Ward恒等式による整合性]
style A fill:#e3f2fd
style G fill:#f3e5f5
style H fill:#e8f5e9
Example 5: 頂点補正の運動学的依存性
import numpy as np
def vertex_correction(q2, m_e, alpha=1/137):
"""1ループ頂点補正(簡略版)
Λ^μ(p', p) = γ^μ F₁(q²) + ... (form factor)
"""
F1 = 1 + alpha / (2 * np.pi) * (
np.log(np.abs(q2) / m_e**2 + 1e-10) / 3
)
return F1
def anomalous_magnetic_moment(alpha=1/137):
"""異常磁気能率 a_e = (g-2)/2
1ループ Schwinger項: α/(2π)
"""
a_e_1loop = alpha / (2 * np.pi)
return a_e_1loop
q2_values = np.logspace(-2, 4, 50)
m_e = 0.511
F1_values = [vertex_correction(q2, m_e) for q2 in q2_values]
a_e = anomalous_magnetic_moment()
print("頂点補正と異常磁気能率:")
print("=" * 50)
print(f"Form Factor F₁(q²=0): {F1_values[0]:.8f}")
print(f"Form Factor F₁(q²=10 MeV²): {vertex_correction(10, m_e):.8f}")
print(f"\n異常磁気能率 a_e (1ループ): {a_e:.10f}")
print(f"実験値(参考): 0.0011596521811")
頂点補正と異常磁気能率:
==================================================
Form Factor F₁(q²=0): 1.00000000
Form Factor F₁(q²=10 MeV²): 1.00000845
異常磁気能率 a_e (1ループ): 0.0011614402
実験値(参考): 0.0011596521811
4.6 材料科学への応用: RPAと誘電関数
Random Phase Approximation (RPA) は固体物理における多体効果の基本的近似です。
Feynman図形の言語で誘電関数を記述します。
🔬 RPAによる誘電関数
電子ガスの誘電関数(Lindhard関数):
\[
\epsilon(\mathbf{q}, \omega) = 1 - V(\mathbf{q}) \Pi(\mathbf{q}, \omega)
\]
\(\Pi\) は電子-正孔ループ(偏極関数)、\(V\) はCoulombポテンシャルです。
Example 6: Lindhard関数とプラズモン分散
import numpy as np
def lindhard_function_static(q, k_F, m_star=1.0):
"""Lindhard偏極関数(静的、ω=0)
3次元電子ガス
"""
q_TF = np.sqrt(4 * k_F / np.pi)
if q < 2 * k_F:
x = q / (2 * k_F)
chi_0 = -m_star * k_F / (np.pi**2) * (
1 + (1 - x**2) / (2 * x) * np.log(np.abs((1 + x) / (1 - x)))
)
else:
chi_0 = -m_star * k_F / (np.pi**2)
return chi_0
def dielectric_rpa(q, omega, k_F, omega_p):
"""RPA誘電関数(簡略版)"""
chi_0 = lindhard_function_static(q, k_F)
v_q = 4 * np.pi / (q**2 + 1e-10)
epsilon = 1 - v_q * chi_0
return epsilon
r_s = 2.07
k_F = (9 * np.pi / 4)**(1/3) / r_s
E_F = k_F**2 / 2
omega_p = np.sqrt(4 * np.pi * (3 / (4 * np.pi * r_s**3)))
q_array = np.linspace(0.01, 3 * k_F, 100)
epsilon_values = [dielectric_rpa(q, 0, k_F, omega_p) for q in q_array]
print("RPAによる電子ガスの誘電応答:")
print("=" * 50)
print(f"Fermi波数 k_F: {k_F:.4f} (a.u.)")
print(f"プラズマ周波数 ω_p: {omega_p:.4f} (a.u.)")
print(f"\n誘電関数 ε(q=0): {epsilon_values[0]:.4f}")
print(f"誘電関数 ε(q=k_F): {dielectric_rpa(k_F, 0, k_F, omega_p):.4f}")
RPAによる電子ガスの誘電応答:
==================================================
Fermi波数 k_F: 0.9241 (a.u.)
プラズマ周波数 ω_p: 1.1743 (a.u.)
誘電関数 ε(q=0): 1.0000
誘電関数 ε(q=k_F): 1.8562
Example 7: プラズモン励起のエネルギー損失関数
import numpy as np
def energy_loss_function(q, omega, omega_p, gamma=0.01):
"""エネルギー損失関数(簡略Drudeモデル)
-Im(1/ε) でプラズモンピークを観測
"""
epsilon = 1 - omega_p**2 / (omega**2 + 1j * gamma * omega)
loss = -epsilon.imag / (epsilon.real**2 + epsilon.imag**2)
return loss
omega_p = 15.8
gamma = 0.5
q = 0.1
omega_array = np.linspace(0, 30, 300)
loss_values = [energy_loss_function(q, om, omega_p, gamma) for om in omega_array]
peak_idx = np.argmax(loss_values)
omega_peak = omega_array[peak_idx]
print("プラズモン励起のエネルギー損失:")
print("=" * 50)
print(f"プラズマ周波数: {omega_p} eV")
print(f"減衰率: {gamma} eV")
print(f"\nプラズモンピーク位置: {omega_peak:.2f} eV")
print(f"ピーク強度: {loss_values[peak_idx]:.4f}")
プラズモン励起のエネルギー損失:
==================================================
プラズマ周波数: 15.8 eV
減衰率: 0.5 eV
プラズモンピーク位置: 15.80 eV
ピーク強度: 62.4000
Example 8: Friedel振動と電荷遮蔽
import numpy as np
def friedel_oscillation(r, k_F, Z=1):
"""不純物周りのFriedel振動
ρ(r) ~ -Z cos(2k_F r) / r³
"""
if r < 0.1:
return 0.0
rho = -Z * np.cos(2 * k_F * r) / r**3
return rho
def thomas_fermi_screening(r, q_TF, Z=1):
"""Thomas-Fermi遮蔽
V(r) = Z e^(-q_TF r) / r
"""
if r < 0.01:
return Z / 0.01
V = Z * np.exp(-q_TF * r) / r
return V
k_F = 1.36
q_TF = 0.85 * k_F
Z = 1
r_array = np.linspace(0.1, 10, 200)
rho_friedel = [friedel_oscillation(r, k_F, Z) for r in r_array]
V_TF = [thomas_fermi_screening(r, q_TF, Z) for r in r_array]
print("電荷遮蔽とFriedel振動:")
print("=" * 50)
print(f"Fermi波数: {k_F} Å⁻¹")
print(f"Thomas-Fermi波数: {q_TF:.4f} Å⁻¹")
print(f"Friedel振動の波長: {np.pi/k_F:.4f} Å")
print(f"\nV_TF(r=1Å): {thomas_fermi_screening(1.0, q_TF, Z):.4f}")
print(f"V_TF(r=5Å): {thomas_fermi_screening(5.0, q_TF, Z):.4f}")
電荷遮蔽とFriedel振動:
==================================================
Fermi波数: 1.36 Å⁻¹
Thomas-Fermi波数: 1.1560 Å⁻¹
Friedel振動の波長: 2.3091 Å
V_TF(r=1Å): 0.3166
V_TF(r=5Å): 0.0039
演習問題
Easy
Q1: φ⁴理論で、2点関数のツリーレベル伝播関数を書き下し、対称因子を説明してください。
解答を見る
ツリーレベルでは相互作用頂点なし。伝播関数: \(\frac{i}{p^2 - m^2 + i\epsilon}\)
対称因子は1(交換対称性なし)。
Medium
Q2: QEDで、電子-陽電子消滅 \(e^+e^- \to \mu^+\mu^-\) のツリーレベル振幅を計算し、角度依存性を示してください。
解答を見る
\(|M|^2 = 2e^4(1 + \cos^2\theta)\)(s-channel光子交換)
前方・後方で最大、横方向で最小。
Hard
Q3: RPAで誘電関数がゼロになる条件(プラズモン分散関係)を導出してください。
解答を見る
\(\epsilon(\mathbf{q}, \omega) = 0\) より \(1 = V(\mathbf{q})\Pi(\mathbf{q}, \omega)\)
長波長極限で \(\omega \approx \omega_p\)(プラズマ周波数)。
参考文献
- Peskin, M. E., & Schroeder, D. V. (1995). An Introduction to Quantum Field Theory. Westview Press.
- Srednicki, M. (2007). Quantum Field Theory. Cambridge University Press.
- Mahan, G. D. (2000). Many-Particle Physics (3rd ed.). Springer.
- Fetter, A. L., & Walecka, J. D. (2003). Quantum Theory of Many-Particle Systems. Dover.