🌐 JP | 🇬🇧 EN | Last sync: 2025-11-16

第4章: Feynman図形技法

Feynman Diagrams and Perturbative Calculations

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\)

運動量空間でのルール:

  1. 各伝播子に \(\frac{i}{p^2 - m^2 + i\epsilon}\) を割り当てる
  2. 各頂点に \(-i\lambda\) を割り当てる
  3. 各頂点で運動量保存 \((2\pi)^4\delta^{(4)}(\sum p)\) を課す
  4. 各ループに \(\int \frac{d^4k}{(2\pi)^4}\) を積分する
  5. 対称因子 \(S\) で割る
Example 1: φ⁴理論のツリーレベル振幅計算
import numpy as np # =================================== # Feynmanルールによる散乱振幅 # =================================== def propagator(p, m, epsilon=1e-3): """スカラー場の伝播関数""" p2 = np.dot(p, p) # p^2 (Minkowski計量) 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交換を含む振幅""" # s-channel: p1 + p2 → (交換粒子) → p3 + p4 # 振幅 = (-iλ) × i/(s - m²) × (-iλ) return -lambda_**2 / (s - m**2) def symmetry_factor(diagram_type): """対称因子の計算""" factors = { '4pt_contact': 1, # 4点接触 'tadpole': 2, # オタマジャクシ 'self_energy': 2, # 自己エネルギー 'vacuum_bubble': 8, # 真空バブル (2ループ) } return factors.get(diagram_type, 1) # パラメータ lambda_ = 0.1 m = 1.0 s = 10.0 # Mandelstam s 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 # =================================== # 次元正則化での1ループ積分 # =================================== 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 # 次元正則化の結果(MS-barスキーム) if epsilon < 1e-6: # ε → 0 での極 gamma_E = 0.5772156649 # Euler定数 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 # =================================== # Møller散乱のFeynman振幅 # =================================== 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: 電子質量 """ # t-channel と u-channel の寄与 u = 4 * m_e**2 - s - t # スピン平均後の |M|²(簡略版) 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 # スピン平均(1/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) # 断面積(Mott公式に補正) dsigma_dOmega = M2 / (64 * np.pi**2 * s) return dsigma_dOmega # パラメータ(低エネルギー電子散乱) E_cm = 2.0 # MeV m_e = 0.511 # MeV s = E_cm**2 theta = np.pi / 2 # 90度散乱 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 # MeV Q_values = [1, 10, 100, 1000] # MeV 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) """ # F₁の1ループ補正(近似) 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) # MeV² 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 # =================================== # RPAによる誘電関数とプラズモン # =================================== def lindhard_function_static(q, k_F, m_star=1.0): """Lindhard偏極関数(静的、ω=0) 3次元電子ガス """ q_TF = np.sqrt(4 * k_F / np.pi) # Thomas-Fermi遮蔽波数 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) # RPA: ε = 1 - v_q χ₀ v_q = 4 * np.pi / (q**2 + 1e-10) # Coulombポテンシャル epsilon = 1 - v_q * chi_0 return epsilon # 金属パラメータ(アルミニウム) r_s = 2.07 # Wigner-Seitz半径(Bohr単位) k_F = (9 * np.pi / 4)**(1/3) / r_s # Fermi波数 E_F = k_F**2 / 2 # Fermiエネルギー(原子単位) 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 # =================================== # エネルギー損失関数 Im(-1/ε) # =================================== 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 # eV(アルミニウムのプラズモン) gamma = 0.5 # eV(減衰率) 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 # =================================== # Friedel振動による空間的電荷分布 # =================================== 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 # Thomas-Fermi波数 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\)(プラズマ周波数)。

参考文献

  1. Peskin, M. E., & Schroeder, D. V. (1995). An Introduction to Quantum Field Theory. Westview Press.
  2. Srednicki, M. (2007). Quantum Field Theory. Cambridge University Press.
  3. Mahan, G. D. (2000). Many-Particle Physics (3rd ed.). Springer.
  4. Fetter, A. L., & Walecka, J. D. (2003). Quantum Theory of Many-Particle Systems. Dover.

免責事項