Home
2955 words
15 minutes
量子力学の6つの仮説:計算化学を支える「文法」(厳密版)

last_modified: 2026-01-07

生成AIによる自動生成記事に関する免責事項: 本記事は、物理学の標準的な教科書および計算化学の理論に基づき、大規模言語モデル(生成AI)によって作成された解説記事です。数式の導出や歴史的経緯の記述においては、学術的な正確性を期しておりますが、学習や研究への応用にあたっては、必ず標準的な教科書を参照してください。

1. 序論:計算化学の「ルールブック」#

前回の記事では「箱の中の粒子」モデルを通じて、シュレーディンガー方程式から量子化が自然に導かれることを見ました。今回は視座を少し上げ、量子力学という体系全体を支える**「仮説(Postulates、公理)」**について考えます。

これらは証明される定理ではなく、「これらを認めれば微視的自然界を矛盾なく説明できる」という論理的出発点です。一見抽象的な数学的定義に見えますが、実は私たちが普段行っている構造最適化スペクトル計算の裏側で常に動いている「計算化学の文法」そのものです。本稿では、実務上の注意点(Koopmansの定理やスピン汚染など)を含め、より厳密な視点で解説します。


2. 第1仮説:状態と波動関数#

仮説の定義#

「系の物理的状態は、その系の波動関数 Ψ(r,t)\Psi(\mathbf{r}, t) によって完全に決定される」

厳密な補足と計算化学への接続#

「完全に決定される」とは、Ψ\Psi が系に関するすべての情報を含んでいることを意味します。ただし、波動関数には定数倍(特に位相因子 eiθe^{i\theta})の不定性があり、物理的に観測可能なのは確率密度 Ψ2|\Psi|^2 です。

計算化学(特に波動関数理論)において、私たちが求めているのは**「エネルギー汎関数を最小にする最適な Ψ\Psi(変分法)」**です。 一方、DFT(密度汎関数理論)はHohenberg-Kohn定理により、「基底状態の物理量は電子密度 ρ(r)\rho(\mathbf{r}) によって一意に決定される」という別の枠組みに立脚していますが、ρ\rho を構成するためにKohn-Sham軌道という「仮想的な波動関数」を導入するため、実務上の取り扱いは波動関数理論と共通しています。


3. 第2・3仮説:演算子と固有値#

仮説の定義#

「古典力学の物理量(観測量)は、量子力学では線形エルミート演算子に対応する」 「ある物理量の個々の測定値は、その演算子の固有値のいずれかでなければならない」

A^Ψk=akΨk\hat{A} \Psi_k = a_k \Psi_k

状態が固有関数 Ψk\Psi_k そのものである場合、測定値は aka_k で確定します。そうでない場合(重ね合わせの状態)は、期待値 A=ΨA^Ψ\langle A \rangle = \langle \Psi | \hat{A} | \Psi \rangle が観測の平均値となります。

計算化学への接続:軌道エネルギーの解釈#

計算化学のログファイルに出力される「軌道エネルギー ϵi\epsilon_i」は、Fock演算子(またはKohn-Sham演算子)の固有値です。

  • Hartree-Fock法: Koopmansの定理により、占有軌道のエネルギー ϵi\epsilon_i は、その電子を取り去るのに必要なエネルギー(イオン化ポテンシャル)の近似値として解釈できます(ϵiIP-\epsilon_i \approx IP)。ただし、これには「電子を取り去っても他の軌道は緩和しない(凍結近似)」という仮定が含まれます。
  • DFT: Kohn-Sham軌道エネルギーの物理的意味は、最高被占軌道(HOMO)を除いて厳密には定義されていません。HOMOのエネルギーのみが、厳密なイオン化ポテンシャルに対応することが証明されています(Janakの定理)。

4. 第4仮説:固有関数の直交性#

仮説の定義#

「エルミート演算子の異なる固有値に属する固有関数は、互いに直交する」

ΨmΨndτ=δmn\int \Psi_m^* \Psi_n d\tau = \delta_{mn}

計算化学への接続:重なり行列 S\mathbf{S} の正体#

計算化学では、分子軌道(MO)を原子軌道(AO, 基底関数)の線形結合(LCAO)で表します。 ここで重要なのは、**「原子軌道(AO)は分子ハミルトニアンの固有関数ではない」**という点です。そのため、異なる原子にあるAO同士は直交しておらず、重なり積分 Sμν=χμχνS_{\mu\nu} = \langle \chi_\mu | \chi_\nu \rangle は0になりません。

Roothaan方程式 HC=SCϵH\mathbf{C} = \mathbf{SC}\epsilon において、右辺に重なり行列 S\mathbf{S} が現れるのはこのためです。計算の内部では、Löwdinの直交化などを用いて直交基底へ変換し、正しい固有値問題を解く手続きが行われています。


5. 第5仮説:時間依存性とTD-DFT#

仮説の定義#

「波動関数の時間発展は、時間依存シュレーディンガー方程式(TDSE)に従う」

iΨt=H^Ψi\hbar \frac{\partial \Psi}{\partial t} = \hat{H} \Psi

計算化学への接続:励起状態と線形応答#

通常の構造最適化は定常状態(時間変化なし)を扱いますが、光吸収などの励起プロセスは本質的に動的です。

  • TD-DFT (Time-Dependent DFT): 多くのプログラムに実装されているTD-DFTは、TDSEを直接時間発展させて解く(Real-time TDDFT)のではなく、通常は線形応答理論に基づいています。「外部電場(光)による微小な摂動に対して、電子密度がどう応答するか」を振動数領域で解くことで、励起エネルギーや振動子強度を算出します。 これにより、時間を陽に含まない計算コストで、動的な性質であるスペクトルを得ることが可能になっています。

6. 第6仮説:交換関係と同時測定#

仮説の定義#

「2つの演算子 A^,B^\hat{A}, \hat{B} が可換である([A^,B^]=0[\hat{A}, \hat{B}] = 0)とき、それらは同時固有関数を持ち、物理量は同時に確定できる」

計算化学への接続:UHF法とスピン汚染の論理的関係#

この仮説は、計算結果の「正しさ」を判定する重要な指針となります。

非相対論的なハミルトニアン H^\hat{H} は、全スピン二乗演算子 S^2\hat{S}^2 と可換です([H^,S^2]=0[\hat{H}, \hat{S}^2]=0)。 この可換性が意味するのは、**「系のエネルギーが確定している状態(H^\hat{H}の固有状態)ならば、そのスピン状態(S^2\hat{S}^2の固有値)も同時に確定していなければならない(純粋な一重項や二重項でなければならない)」**という厳格なルールです。

なぜUHFで「汚染」が起きるのか?#

しかし、実際の計算(特にUHF法)では、このルールが近似によって破られることがあります。

  1. エネルギーの追求: UHF法は、変分原理に基づき「とにかくエネルギー(H^\hat{H}の期待値)を低くする」ことを最優先します。
  2. 制限の解除: その際、エネルギーを下げる自由度を得るために、「スピン状態が純粋でなければならない(S^2\hat{S}^2の固有関数でなければならない)」という制約(Restricted)を外します。
  3. 結果(スピン汚染): その結果、得られた波動関数は、エネルギー的には安定ですが、スピンに関しては「二重項に四重項が混ざった状態」のような混合物になります。

これがスピン汚染 (Spin Contamination) です。 第6仮説に照らせば、可換なはずの H^\hat{H}S^2\hat{S}^2 が同時確定していない(スピンが確定していない)ということは、**「得られた波動関数は、ハミルトニアンの厳密な固有関数ではなく、あくまで近似解である」**という動かぬ証拠となります。これは「計算が失敗している」という意味ではなく、 対称性よりもエネルギー最小化を優先した近似解を採用している という意味です。

実務的には、出力された S2\langle S^2 \rangle の値(例:二重項なら0.75になるはず)を確認し、この「対称性の破れ」が許容範囲内かどうかを判断することが重要です。


7. Pythonによる概念確認:直交性と交換関係#

ここでは、1次元の箱の中の粒子の厳密解を用いて、固有関数の直交性と、位置・運動量の非可換性を数値的に確認します。 ※以下のコードは解析的な性質を数値積分で確認するものであり、数値計算誤差を含む点に留意してください。

import numpy as np
from scipy import integrate

class QuantumPostulatesDemo:
    def __init__(self, L=1.0):
        self.L = L
        self.hbar = 1.0

    def psi(self, n, x):
        """正規化された波動関数"""
        if 0 <= x <= self.L:
            return np.sqrt(2/self.L) * np.sin(n * np.pi * x / self.L)
        else:
            return 0.0

    def check_orthogonality(self, n, m):
        """第4仮説: 直交性の数値積分"""
        x_range = np.linspace(0, self.L, 2000) # 精度のため点数を多めに
        y_prod = [self.psi(n, x) * self.psi(m, x) for x in x_range]
        integral = integrate.simps(y_prod, x_range)
        return integral

    def check_commutator_expectation(self, n):
        """
        第6仮説: [x, p] = i*hbar の期待値確認
        <n| [x,p] |n> = <n|xp|n> - <n|px|n> = i*hbar <n|n> = i*hbar
        となることを、解析的な微分操作と数値積分で確認します。
        
        p = -i*hbar * d/dx
        """
        x_range = np.linspace(0, self.L, 2000)
        dx = x_range[1] - x_range[0]
        
        # 波動関数とその1階導関数
        psi_vals = np.array([self.psi(n, x) for x in x_range])
        # 解析微分: d/dx sin(kx) = k cos(kx)
        k = n * np.pi / self.L
        d_psi_vals = np.array([np.sqrt(2/self.L) * k * np.cos(k*x) if 0<=x<=self.L else 0 for x in x_range])

        # x * p |Psi> = x * (-i hbar) * dPsi/dx
        xp_psi = -1j * self.hbar * x_range * d_psi_vals
        
        # p * x |Psi> = -i hbar * d/dx (x * Psi) = -i hbar (Psi + x * dPsi/dx)
        px_psi = -1j * self.hbar * (psi_vals + x_range * d_psi_vals)
        
        # Commutator applied to Psi: [x, p]Psi = (xp - px)Psi
        # = -1j*hbar*x*dPsi - (-1j*hbar*Psi - 1j*hbar*x*dPsi)
        # = i*hbar*Psi
        comm_psi = xp_psi - px_psi
        
        # 期待値 <Psi | [x,p] | Psi>
        expectation = integrate.simps(np.conj(psi_vals) * comm_psi, x_range)
        
        return expectation

if __name__ == "__main__":
    demo = QuantumPostulatesDemo(L=1.0)
    
    print("--- 1. 直交性の確認 (Orthogonality) ---")
    print(f"<1|1> = {demo.check_orthogonality(1, 1):.5f} (Normalization)")
    print(f"<1|2> = {demo.check_orthogonality(1, 2):.5f} (Orthogonal, expected 0.0)")
    
    print("\n--- 2. 交換関係の期待値 (Commutator) ---")
    val = demo.check_commutator_expectation(1)
    print(f"<1| [x, p] |1> = {val:.5f}")
    print(f"Theoretical value = {1j * demo.hbar:.5f}")
    print("※位置と運動量は可換ではないため、不確定性関係が生じます。")

8. 結論#

量子力学の公理は、計算化学ソフトウェアが正常に動作するための「数学的保証」です。

  • SCF収束の背後には: 基底関数の適切な処理(重なり行列 S\mathbf{S})と変分原理があります。
  • 計算結果の解釈には: Koopmansの定理やDFTの適用限界といった理論的背景の理解が不可欠です。
  • トラブルシューティングには: スピン汚染のような「演算子の可換性」に関わる対称性の知識が役立ちます。

「なぜ計算が合わないのか?」と悩んだとき、これら基礎的な仮説に立ち返ることで、問題の本質(モデルの限界なのか、設定のミスなのか)が見えてくるはずです。

参考文献#

  • Szabo, A., & Ostlund, N. S. “Modern Quantum Chemistry,” Dover Publications.
  • Parr, R. G., & Yang, W. “Density-Functional Theory of Atoms and Molecules,” Oxford University Press.
量子力学の6つの仮説:計算化学を支える「文法」(厳密版)
https://ss0832.github.io/posts/20260106_physchem_basic_4/
Author
ss0832
Published at
2026-01-07
License
CC BY-NC-SA 4.0

Related Posts

シュレーディンガー方程式と「箱の中の粒子」:計算化学の基礎モデル
2026-01-07
古典的な波の記述から、量子力学の基礎方程式であるシュレーディンガー方程式へ。演算子、固有値問題、確率解釈といった基本概念を整理し、「箱の中の粒子」モデルを用いてエネルギーの量子化や縮退を解説する。さらに、この単純なモデルが計算化学における共役系分子の近似や基底関数の理解にどう繋がるかを紐解く。
調和振動子と剛体回転子:分光学と計算化学をつなぐ2つのモデル
2026-01-07
量子力学の基礎モデルである「調和振動子」と「剛体回転子」について、フックの法則や換算質量といった基本概念から解説。計算化学の実務において、これらのモデルが振動数計算(Hessian)や熱力学補正、さらには基底関数の形状にどう深く関わっているかを紐解く。
Coupled-Perturbed Hartree-Fock (CPHF) 理論による分子物性の解析的導出:ヘシアン、双極子モーメント、および分極率の数理
2026-01-08
J. Gerratt and I. M. Mills (1968) の先駆的研究に基づき、Coupled-Perturbed Hartree-Fock (CPHF) 法を用いた分子の力の定数(ヘシアン)、双極子モーメント、および分極率の解析的導出について詳述する。変分摂動論の枠組みにおける軌道応答の定式化、基底関数依存性の処理、および水素分子(H2)・水素化リチウム(LiH)への適用例を通じて、その数理的構造と物理的意義を中立的かつ学術的な視点から解説する。
水素原子と多電子原子:厳密解から計算化学の近似手法へ
2026-01-07
水素原子のシュレーディンガー方程式の厳密解の意義と、ヘリウム原子で直面する「多体問題」の壁について解説。なぜ計算化学ではガウス関数やLCAO近似が必要なのか、その理論的背景を量子数や軌道の形状とともに紐解く。
近似法の基礎:変分原理と摂動論から計算化学へ
2026-01-07
シュレーディンガー方程式が厳密に解けない多電子系に対し、計算化学はどのようにアプローチするのか。「変分法」と「摂動論」の基礎概念を整理し、変分原理が保証するエネルギーの上限性や、永年方程式の導出過程を解説する。
NCIplot (Non-Covalent Interaction plot) の数理的基盤とアルゴリズム:密度汎関数理論からの導出と応用
2026-01-04
非共有結合性相互作用(Non-Covalent Interactions; NCI)を可視化する手法であるNCIplotについて、その理論的背景となるReduced Density Gradient(RDG)の数学的導出、QTAIMとの関係性、およびアルゴリズムの実装詳細を学術的な視点から包括的に解説する。密度汎関数理論における均一電子ガスモデルからの展開と、ヘシアン行列の固有値解析に基づく相互作用の分類について詳述する。