Numpy

Numpy で行列を対角化する際の精度

要点だけまとめると,

  1. ユーザーが numpy.linalg.eig の精度を調整するのは難しそう
  2. 自分の問題の場合は「行列サイズが大きいくても,扱っている行列がエルミート行列なら,eig でなく eigh を使えば精度良く求まるよ」ということで解決できた

となります.

np.linalg.eig を使った際の精度の問題点

行列の対角化を使っていろんなことをやっている最中に遭遇した問題だが,行列の大きさが16X16ぐらいになったときに numpy.linalg.eig で対角化した際に,固有値と固有ベクトルの精度が悪くなるのが確認された.

解決策の模索

何とか解決しようと,numpy.lialg.eig がどのような仕組みで対角化していて誤差が生じたのか原因を特定しようと思った.




続きを読む

Numpy を用いた行列演算の基礎(対角化まで)

筆者が初めてnumpyで行列についていくつか処理をする際に学んだことを,こちらにまとめておきたいと思います.対角化を目標にはしていますが対角化は後半にあり,内容のほとんどは行列に関する基本的な処理ですので,初めてnumpyで行列処理をする方にも理解できるよう心がけたつもりです...




続きを読む