喫茶佐天

祈り2025

【メモ】numpyで固有値を求める際の精度について

 

イントロ

諸事情により、以下のようなMPOを行列化して計算する必要があった

こんなやつ(書き忘れたけど両端の外側の足は境界条件つけてるので縮約済み。なので厳密にはAではない)

見にくいかもしれんけど、固有値分布をnp.linalg.eigh、np.linalg.eigで計算するとこんな感じ。すべてがおかしいことが分かる。

上がnp.linalg.eigh、下がnp.linalg.eigだったと思う

解決策

知らねえよ。普通に条件が悪い行列なんだよな。どうすればいい?

普通にexp(Wt)を計算したいだけだったので、scipy.linalg.expmを使ったら正確に計算できましたとさ。これで2時間沼った俺の時間を返してくれ。