2012年8月31日金曜日

行列の三角化:固有値と行列式の計算


量子力学をやっていると、たくさん固有値問題を解くことになる。また同じように、行列式もたくさん計算する。行列式を計算する手法はいろいろあるが、数値的にこれらを計算するときには、たいてい固有値を求めてから行列式を計算する。これができるのは、三角行列の対角要素が固有値になっているのと同時に、その積が行列式に等しくなるという性質があるからだ。

行列の対角化は、行列の形式によっては出来る場合があったり、出来ない場合があったりするが、行列の三角化は必ず実行できる。「一般の行列」の固有値計算というのは、量子力学ではあまり行わないので、「行列の三角化」については、あまり注意を払って来なかった。

もう少し詳しく書くと、観測量は実数でないといけないが、量子力学ではそれを保証するために、対応する力学変数(演算子)はエルミートでなければならない、という制約が課される。したがって、エルミートな行列の固有値問題を専ら解くことになる。エルミートな行列は常に対角化可能だから、三角化のことなど考えなくてもいいのだ。(もちろん、固有状態も計算したいから、三角化だけでは不満足。)

一方で、教養の数学で習った線形代数では、三角化についてや、対角化可能性についてくどいほど説明がある。学部学生だった頃、「どうせエルミート行列の固有値問題しかやらないんだから、三角行列なんてどうして勉強するんだろう?」と疑問に思った。実は、多体問題をやっていると、行列式だけが必要で、固有値自体や固有状態が不要の場合が結構ある。こういうときは、なんでもかんでも対角化するのではなく、三角化して固有値だけを求めれば済む。しかも、こういう場合に登場する行列はエルミートでもユニタリーでも直交でもなんでもない、一般の行列だったりする。こういうときに、三角化の知識は使うのだ。

行列の次元を2倍に増やして、物理の問題を定式化する場合がある。例えば、超伝導や超流動のような対相関がある多体系の物理だ。2倍に次元を増やすだけで、公式が綺麗になる。しかし、この理論をもとに数値計算を行うときは、2倍次元のままでは「不便」な場合もあるので、元の大きさに次元を「圧縮して」計算したい。そういう場合には、次のような公式が便利だ。



AやBは、もともとの物理的な次元(nとしよう)をもった行列とし、それを積み重ねることで、2倍次元の行列を理論構築のためにつくったとする。このとき、AとBを互い違いに重ねた行列の行列式(上式の左辺)は、オリジナルの行列の和と差の行列式の積となる。

この公式の証明には、三角行列を用いる。左下にあるBの部分を、行列の線形性を利用して0にし、(ブロック)三角行列へと変形するのだ。途中の計算を省略すると、


となって、題意は証明される。正直とてもきれいな公式だと思う。

同じように、三角行列を使った方法を用いて、ブロック行列の行列式の公式を証明することもできる。これはLU分解という方法の応用で、任意の行列を、下三角行列と上三角行列の積に分解する方法だ。こういう便利な公式は見ていて楽しい。このホームページにはそういう公式が列挙されているので、大変参考になる。



0 件のコメント: