Master3’s blog

LaTeXやExcelVBAなどの作例集

LaTeX作例12(3.4.5 基底関数の直交化)

  • 量子化学に関する本を引用し、僕が書いたLaTeXの作例を紹介します
  • ポイントとしては、イコールでいくつもつながった式を、イコールの位置でそろえ、かつ、中央ぞろえにするというテクニックです(式(3.164))。
  • 文字の上に波線の記号チルダが登場します(式(3.172))。
  • 行列において、行数と列数をはっきりと明示できないときは、それらを省略する記法が必要です。式(3.172)を見てみてください
  • 横並びの式と式の間に、任意の間隔を設定する記法を、式(3.162)(3.173)(3.179)で使っています
  • プリアンブルは全部コピペして使ってるので、かなり余計なものも混ざってます。すいません
  • パッケージは基本的にデフォルトで入ってるやつが使われていると思います(たぶん)
  • ページ番号は原典と異なります
  • 『新しい量子化学―電子構造の理論入門』

    出版社 ‏ :  東京大学出版会 (1987/7/1)
  • 発売日 ‏ :  1987/7/1
  • 言語 ‏ :  日本語
  • 単行本 ‏ :  303ページ
  • ISBN-10 ‏ :  4130621114
  • ISBN-13 :  978-4130621113
  • [http://:title]

    3.4.5.tex - Google ドライブ

  • \documentclass{jsarticle}

    \usepackage{mathrsfs}

    \usepackage[dvipdfmx]{graphicx}

    \usepackage{parskip}

    \usepackage{indentfirst}

    \usepackage{amsmath,amssymb}

    \usepackage{braket}

     

    \usepackage{calligra}

    \usepackage{calrsfs}

    \usepackage{mathrsfs}

     

    \usepackage{bm}

    \begin{document}

     

    \subsubsection*{3.4.5 基底関数の直交化}

     

    \parindent=1zw

     

    分子軌道計算で使われる基底関数は規格化されているが、ふつう互いに直交はしていない。Roothaanの方程式に重なり行列があらわれるのはこのためである。Roothaanの方程式をふつうの固有値問題の形に直すためには、基底関数を直交化する手続を考える必要がある。

     

    互いに直交していない、つまり

    $$\int d\bm{r}\phi_\mu^*(\bm{r})\phi_\nu(\bm{r})=S_{\mu\nu}\eqno(3.161)$$

    がゼロでない値をもつ基底関数の組$\{\phi_\mu\}$が与えられているとき、それを変換して

    $$\phi_\mu'=\sum_\nu X_{\nu\mu}\phi_\nu\hspace{2cm}\mu=1,2,\cdots,\;K\eqno(3.162)$$

    が規格直交系をなす、すなわち

    $$\int d\bm{r}\phi_\mu'^*(\bm{r})\phi_\nu'(\bm{r})=\delta_{\mu\nu}\eqno(3.163)$$

    となるような変換行列$\bm{X}$(ユニタリー行列ではない)をつねに見いだすことができる。変換$\bm{X}$の性質を調べるために、式(3.162)を式(3.163)に代入すると

    \begin{flalign*}

    &&\int d\bm{r}\phi_\mu'^*(\bm{r})\phi_\nu'(\bm{r})&=\int d\bm{r}\left[\sum_\lambda X_{\lambda\mu}^*\phi_\lambda^*(\bm{r})\right]\left[\sum_\sigma X_{\sigma\nu}\phi_\rho(\bm{r})\right]&\\

    && &=\sum_\lambda\sum_\sigma X_{\lambda\mu}^*\int d\bm{r}\phi_\lambda^*(\bm{r})\phi_\rho(\bm{r}) X_{\rho\nu}&\\

    && &=\sum_\lambda\sum\limits_\sigma X_{\lambda\mu}^*S_{\lambda\sigma}X_{\sigma\nu}=\delta_{\mu\nu}&\text(3.164)

    \end{flalign*}

    を得る。この式は行列方程式

    $$\bm{X}^\dagger\bm{SX}=\textit{\textbf{1}}\eqno(3.165)$$

    と書くことができて、これは変換された軌道が規格直交系をなすために、行列$\bm{X}$が満たすべき関係である。あとでわかるように、$\bm{X}$は正則行列でなければならない。すなわち、逆行列$\bm{X}^{-1}$が存在しなければならない。つぎに、変換行列$\bm{X}$を得る1つの方法を示そう。まず$\bm{S}$はエルミート行列であるので、ユニタリー行列$\bm{U}$によって対角化することができることに注意する。

    $$\bm{U}^\dagger\bm{SU}=\bm{s}\eqno(3.166)$$

    ここで、$\bm{s}$は$\bm{S}$の固有値からなる対角行列である。

     

    \hrulefill

     

    基底関数系$\{\phi_\mu\}$を直交化するのに広く使われている方法は2つある。第1の手続きは、対称直交化と呼ばれ、$\bm{X}$として$\bm{S}$の逆平方根行列を用いる。

    $$\bm{X}\equiv\bm{S}^{-1/2}=\bm{US}^{-1/2}\bm{U}^\dagger\eqno(3.167)$$

     

    1章における行列の関数についての議論を思い出すと、$\bm{S}$を対角化して$\bm{s}$をつくり、次にその各固有値平方根の逆数をとって$\bm{s}^{-1/2}$をつくり、これを式(3.167)の変換によって“非対角化”することによって$\bm{S}^{-1/2}$を得ることができる。$\bm{S}$がエルミート行列ならば$\bm{S}^{-1/2}$もまたエルミート行列となる。式(3.167)を式(3.165)に代入すると

    $$\bm{S}^{-1/2}\bm{SS}^{-1/2}=\bm{S}^{-1/2}\bm{S}^{1/2}=\bm{S}^0=\textit{\textbf{1}}\eqno(3.168)$$

    となり、$\bm{X}=\bm{S}^{-1/2}$が直交化を行う変換行列となっていることがわかる。$\bm{S}$の固有値はすべて正(Exercise3.15)なので、式(3.167)において平方根を計算するのに問題はない。しかし、基底関数が線形従属であるか、あるいは線形従属に近い場合には、いくつかの固有値がゼロに近づき、式(3.167)はゼロに近い値での割算を含むことになる。したがって、対称直交化は、線形従属に近い基底関数に対しては数値計算のうえでの精度の問題を生じる。

     

    規格直交の基底関数を得る第2の方法は正準直交化と呼ばれる。こちらは、変換行列

    $$\bm{X}=\bm{Us}^{-1/2}\eqno(3.169)$$

    を用いる。変換行列はユニタリー行列$\bm{U}$の列を対応する固有値平方根で割った

    $$X_{ij}=U_{ij}/s_j^{1/2}\eqno(3.170)$$

    である。この$\bm{X}$の定義を式(3.165)に代入すると

    $$\bm{X}^\dagger\bm{SX}=(\bm{Us}^{-1/2})^\dagger\bm{SUS}^{-1/2}=s^{-1/2}\bm{U}^\dagger\bm{SUs}^{-1/2}=\bm{s}^{-1/2}\bm{ss}^{-1/2}=\textit{\textbf{1}}\eqno(3.171)$$

    となり、$\bm{X}=\bm{Us}^{-1/2}$もまた直交化のための変換行列であることがわかる。式(3.170)から、基底関数に線形従属性があり、固有値$s_i$のいくつかがゼロに近づくとこの直交化手続にも困難が生じてしまうように思われる。しかしながら、正準直交化ではこの困難を回避する方法がある。行列固有値方程式(3.166)において、対角行列$\bm{s}$の固有値は、$\bm{U}$の列もそれに応じて並べ換えるならば、好きなように並べ換えることができる。ここでは正の固有値$s_i$を$s_1>s_2>s_3>\cdots$の順に並べるとしよう。その値を調べてみることにより、これらのうちで最後の$m$個は小さすぎて数値計算上の問題が生じると判断できたとする。その場合には変換行列として$\bm{X}$の最後の$m$列を除去した$K\times (K-m)$行列である打ち切られた行列$\tilde{\bm{X}}$

    $$\tilde{\bm{X}}=\left(

    \begin{array}{cccc}

    U_{1,1}/s_1^{1/2}&U_{1,2}/s_2^{1/2}&\ldots&U_{1,K-m}/s_{K-m}^{1/2}\\

    U_{2,1}/s_1^{1/2}&U_{2,2}/s_2^{1/2}&\ldots&U_{2,K-m}/s_{K-m}^{1/2}\\

    \vdots&\vdots& &\vdots\\

    U_{K,1}/s_1^{1/2}&U_{K,2}/s_2^{1/2}&\ldots&U_{K,K-m}/s_{K-m}^{1/2}

    \end{array}

    \right)\eqno(3.172)$$

    を用いればよい。この打ち切られた変換行列を使えば、$K-m$個だけの変換された規格直交な基底関数

    $$\phi_\mu'=\sum_{\nu=1}^K\tilde{X}_{\nu u}\phi_\nu\hspace{1cm}\mu=1,2,\cdots,\;K-m\eqno(3.173)$$

    を得ることができる。もし除去された固有値が正確にゼロであるならば、これらはもとの基底関数の組と全く同じ部分空間を張る。実際には、$s_i\leq10^{-4}$の領域(もちろん、これは計算を行う計算機の精度に依存する)で線形従属の問題がよくあらわれる。これらの固有値に対応する列を捨ててしまうことは、基底関数の一部を“捨て去る”ことではあるが、それは部分空間全体のごくわずかの部分にすぎない。

     

    非直交の基底関数の問題を扱う1つの方法は、もとの関数$\{\phi_\mu\}$を直交化して基底関数$\{\phi_\mu'\}$をつくり、その後はこれらの規格直交な関数を計算に用いることである。こうすればRoothaanの方程式から重なり積分$\bm{S}$がなくなるから、これを解くにはFock行列を対角化するだけでよい。しかしながら、もしこの方法をとると、新しい軌道を使ってすべての2電子積分を計算するか、あるいはもとの積分$(\mu\nu|\lambda\sigma)$を新しい積分の組$(\mu'\nu'|\lambda'\sigma')$に変換する必要が生じる。実際にこれを実行するのは大変な計算時間を消費する。したがって同じ問題をもっと効率の良い方法で解くほうがよい。もとの係数行列$\bm{C}$に

    $$\bm{C}'=\bm{X}^{-1}\bm{C}\hspace{1cm}\bm{C}=\bm{XC}'\eqno(3.174)$$

    で結びついている新しい係数行列$\bm{C}'$を考えよう。ここで、$\bm{X}$は逆行列をもつと仮定しているが、線形従属性が除去されていればこう仮定してかまわない。$\bm{C}=\bm{XC}'$をRoothaanの方程式に代入すると

    $$\bm{FXC}'=\bm{SXC}'\bm{\varepsilon}\eqno(3.175)$$

    を得る。この式に左から$\bm{X}^\dagger$をかけると

    $$(\bm{X}^\dagger\bm{FX})\bm{C}'=(\bm{X}^\dagger\bm{SX})\bm{C}'\bm{\varepsilon}\eqno(3.176)$$

    となる。新しい行列$\bm{F}'$を

    $$\bm{F}'=\bm{X}^\dagger\bm{FX}\eqno(3.177)$$

    と定義し、式(3.165)を用いると

    $$\bm{F}'\bm{C}'=\bm{C}'\bm{\varepsilon}\eqno(3.178)$$

    を得る。これらが変換されたRoothaanの方程式であって、$\bm{F}'$を対角化することによって$\bm{C}'$を解くことができる。$\bm{C}'$が得られれば、式(3.174)から$\bm{C}$が求められる。それゆえに、$\bm{F}$が与えられると、式(3.177)、式(3.178)および式(3.174)を使って、Roothaanの方程式$\bm{FC}=\bm{SC\varepsilon}$を$\bm{C}$と$\bm{\varepsilon}$について解くことができる。中間のプライムのついた行列は、まさに直交化基底関数におけるFock行列と展開係数の行列

    $$\psi_i=\sum_{\mu=1}^KC_{\mu i}'\phi_\mu'\hspace{1cm}i=1,2,\cdots,\;K\eqno(3.179)$$

    $$F_{\mu\nu}'=\int d\bm{r}_1\phi_mu'^*(1)f(1)\phi_\nu'(1)\eqno(3.180)$$

    である。

     

    \hrulefill

     

     

    \end{document}

    FANZA(ファンザ) 2022年 04 月号 [雑誌]