7/19 久しぶりに日記を書く
実対称行列を対角化する方法を勉強した。
まずは、3重対角行列に変換する。この方法はランチョス法という方法でできるようだ。
3重対角行列にしたら、そこから対角化する方法がある。スツルムの定理というものを使うとそれができる。
ハミルトニアンの対角化をpythonのnumpyのライブラリを使ってやったのだが、具体的な方法としてどういう計算をしているのか知っておいたほうがいいなと思い、調べてみた。
ライブラリでどういうものを使っているのかは、まだ調べ終わってない。
ただ、よく使われる方法が上で述べたものらしい。
ランチョス法の計算は追ってみた。まだわかっていないところもあるので、詰める必要はあるが、何をやっているかは分かった。
スツルムの定理は、定理の証明はまだしていない。それを使って3重対角行列から固有値、固有ベクトルを求めるという計算は追った。
どんな計算をするかによって計算手法はたくさんあるのだなと教科書をみて感じた。
教科書にある方法は、教育的な意味で扱っているものもある。手法のどこが問題で、それを改善したものとしてこういう方法があるという流れが好きだ。
計算手法が発展していく様をみているようで、楽しい。
最近大事にしているので、ここにも書いておこう。
問題を考えるときは、「仮定」とそこから得られる「結果」がを特に意識して研究(勉強)していくことが大事。
数値計算でもそれは同じで、その数値計算はどんな条件で使えるのか、問題点は何か、などを考える必要がある。ライブラリがあるからとりあえずそれを使いましたっていうのもいいけど、それがどんなアルゴリズムなのかとか、それがいつ使えるのか、いつ使えないのか考える必要もあると思う。というか、単純にアルゴリズムに関しても興味はあるし、使っているライブラリがどういう手法を用いているのかは(余裕に合わせて)調べていきたい