スレイター行列式

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

スレイター行列式(スレイターぎょうれつしき、: Slater determinant)とは、フェルミ粒子からなる多粒子系の状態を記述する波動関数を表すときに使われる行列式である。その名はジョン・クラーク・スレイターに因む。

量子論では複数の同種粒子は原理的に区別できない(エンタングルしている)。よって複数の同種粒子を含む系の状態ベクトルは一定の対称性を持つものに限られる。その対称性は、任意の2個の粒子を入れ替えることに対して、ボーズ粒子では対称性をもつ波動関数フェルミ粒子では反対称性をもつ波動関数という、少し不自然にも見える形で現れる。この不自然さは、個々の粒子に別々の「位置」を割り当てるのは粒子が区別できることが大前提であるのに、区別ができない粒子にそれをやってしまったことによる。

スレイター行列式は、複数のフェルミ粒子系の波動関数が持っている反対称性と同じ性質を持っている。またスレイター行列式の線形結合も反対称性を満たす。よって多電子系などを表すときに、スレイター行列式は便利なのでよく用いられる。

フェルミ粒子の性質とスレイター行列式[編集]

同種の複数のフェルミ粒子からなる系の波動関数が満たすべき性質は次の3つである。

  1. 任意の2つの粒子の位置のラベルを交換すると符号が逆になる。
  2. 任意の2つの粒子が同じ座標を持つと0になる。(パウリの排他原理)
  3. 全ての粒子は区別できない。

これは行列式の以下の性質と良く似ている。

  1. 任意の2つの行、または列を交換すると符号が逆になる。
  2. 任意の2つの行、または列が同じ時は0になる。
  3. 全ての置換パターンが考慮される。

よって複数のフェルミ粒子から成る系の波動関数を表すときに、行列式を用いると便利であることが分かる。 実際、上記のスレイター行列式を見ると分かるように、フェルミ粒子波動関数の性質を全て満たしていることが分かる。

[編集]

2粒子の事例[編集]

多粒子系の波動関数を近似するための最も単純な方法は、適切に選ばれた個々の粒子の直交波動関数の積を取ることである。空間座標\mathbf{x}_1および\mathbf{x}_2の2粒子の事例では以下のようになる。


\Psi(\mathbf{x}_1,\mathbf{x}_2) = \chi_1(\mathbf{x}_1)\chi_2(\mathbf{x}_2).

この表現は多粒子波動関数に対するアンザッツ英語版としてハートリー-フォック法で用いられており、ハートリー積英語版として知られている。しかしながら、上記の波動関数がフェルミ粒子のもののように反対称ではないため、これはフェルミ粒子に対しては満足のいくものではない。というのも, そもそも反対称な波動関数は以下の式を満たすはずである:


\Psi(\mathbf{x}_1,\mathbf{x}_2) = -\Psi(\mathbf{x}_2,\mathbf{x}_1)

ハートリー積はこれを満たさない。この困難は, ハートリー積の線形結合を取ることで克服することができる:

\begin{align}
\Psi(\mathbf{x}_1,\mathbf{x}_2) &= \frac{1}{\sqrt{2}}\{\chi_1(\mathbf{x}_1)\chi_2(\mathbf{x}_2) - \chi_1(\mathbf{x}_2)\chi_2(\mathbf{x}_1)\} \\
&= \frac{1}{\sqrt2}\begin{vmatrix} \chi_1(\mathbf{x}_1) & \chi_2(\mathbf{x}_1) \\ \chi_1(\mathbf{x}_2) & \chi_2(\mathbf{x}_2) \end{vmatrix}
\end{align}

係数は規格化因子(波動関数のノルムを1にするための係数)である。この波動関数は反対称であり、もはやフェルミ粒子同士を区別しない。つまり、特定の粒子に序数を示すことはできず、与えられた添え字は交換可能である。さらに、もし2つのフェルミ粒子のどの2つの波動関数が同じとすると、この式はゼロとなる。これはパウリの排他原理を満たすことと等価である。

一般化[編集]

N個のフェルミ粒子の1粒子波動関数を\{ \chi_i(x) \}(i=1,2,\cdots, N) としたとき、スレイター行列式は以下のように表される。

 \begin{Vmatrix} \chi_1 \cdots \chi_N \end{Vmatrix} = \frac{1}{\sqrt{N!}}\begin{vmatrix} \chi_1(x_1) & \cdots & \chi_1(x_N) \\ \vdots & \ddots & \vdots \\ \chi_N(x_1) & \cdots & \chi_N(x_N) \end{vmatrix}

スレイター行列式は規格化されており、そのノルムは1である。

ハートリー積とスレイター行列式[編集]

スレイター行列式の他に、ハートリー(Hartree)積というものもある。これは区別できる(エンタングルしていない)フェルミオン波動関数を表現するものとして利用される。ハートリー積は反対称性は満たしていない。量子化学の分野では主に原子核波動関数を表すときに用いられる。

\chi_1(x_1) \cdots \chi_N(x_N)

これは置換形式のスレイター行列式に出てくる。各フェルミオンは特定の軌道にのみ局在している。

本来、フェルミオンを交換すると符号は反転すべきであるが、粒子が明確に区別される状況であれば交換の起こる可能性自体を考慮から外すことができるわけである。また、その場合空間的にも離れて存在しているため、2つの粒子が同地点にくると、ほぼゼロになる。

一方、スレイター行列式は、ハートリー積の線形結合で表されるが、その際、添え字のすべての置換パターンが考慮される。これは、すべてのフェルミオンがどの分子軌道にも入り得ることを表し、言い換えれば、すべての粒子が区別できないということを表している。

複数スレイター行列式[編集]

スレイター行列式は、パウリの排他原理を全て満たしているが、その逆は成り立たない。すなわちパウリの排他原理を満たす関数は、スレイター行列式のみではないのである。

とはいっても、それらの関数は、スレイター行列式と大きくは違わない。単に複数のスレイター行列式の線形結合を取ったものなだけである。分子軌道を N 個から増やし、次のように表される。

\Phi(x_1, \cdots, x_N) = \sum_\mathbf{i} c_\mathbf{i} \begin{Vmatrix} \chi_{i_1} \cdots \chi_{i_N} \end{Vmatrix}

これを複数スレイター行列式と呼び、パウリの排他原理はすべて、この形式を用いて展開できる。ただし任意の波動関数を表すためには、これらは完全系を成す必要がある。

量子化学におけるハートリー-フォック法は、分子軌道を1つのスレイター行列式で表す。しかし電子相関を正確に取り込む場合は、複数スレイター行列式を用いなければならず、そのような方法を配置間相互作用 (configuration interaction, CI) 法という。しかし、厳密な波動関数を求めるには、無限個の分子軌道と無限個のスレイター行列式が必要になる。

また線形結合だけでなく非線形な結合も含めると、CI法と同じ数のスレイター行列式で打ち切っても、よりも多くの電子相関を取り込むことができる。このような方法を連結クラスター(Coupled Cluster, CC)法と呼ぶ。

1つのスレイター行列式よりも当然、複数スレイター行列式の方が表現力が大きく、計算精度は高くなる。 しかし、その代償として、考慮しなければならないスレイター行列式の数は、精度を上げるにつれ極端に大きくなるため、計算コストの面から、あまり多くするわけにはいかないのが現状である。

スレイター行列式と第二量子化[編集]

第二量子化では、多粒子系の状態を、1粒子状態\phi_1,\cdots, \phi_N \ を占めている粒子数の組n_1,\cdots, n_N \ で表現する。これを座標表示したものがスレイター行列式である。

\begin{Vmatrix} \chi_1 \cdots \chi_N \end{Vmatrix} \sim |n_1, n_2, \cdots \rangle

フェルミ粒子の場合、n_1,\cdots, n_N \ は0か1のどちらかである。ボーズ粒子の場合、n_1,\cdots, n_N \ は0からNまでの値をとり得る。

これは生成演算子 \hat{a}_1^\dagger,\cdots, \hat{a}_N^\dagger を使って以下のように表される。

\begin{Vmatrix} \chi_1 \cdots \chi_N \end{Vmatrix} \sim \hat{a}_N^\dagger \cdots \hat{a}_1^\dagger | \; \rangle

この形式の利点は、通常の行列式のように煩雑でないため、操作が簡単であるということと、粒子数を簡単に変えられることである。第二量子化された演算子期待値は、ウィック (Wick) の定理によって比較的簡単に求めることが出来る。

複数スレイター行列式は、単一スレイター行列式に励起演算子\mathcal{O}を作用させることで得られる。

\mathcal{O} = \sum_{n=0}^{N} \sum_\mathbf{i}^\mathrm{occ} \sum_\mathbf{j}^\mathrm{vir} c_{n\mathbf{ij}} \hat{a}_{j_1}^\dagger \cdots \hat{a}_{j_n}^\dagger \hat{a}_{i_n} \cdots \hat{a}_{i_1}