みたにっき@はてな

三谷純のブログ

コーディング

最近は、コーディングと言えば印刷とかクリップボードへのコピーとか全然アカデミックでないWindowsに固有の内容で頭を悩ませることが多かったのですが、ここ数日、久しぶりに研究らしい数値計算バリバリなコーディングをしました。本当はこっちの方がメインにならないといけないのですが。。

今回は制約付きの最適解をラグランジュの未定乗数法、オイラー法を行列演算を使って解く内容だったのですが、無事に動いてホッとしました。この手の数値計算デバッグが非常にしにくいので着手する前は不安だったのですが、意外にスムーズにできて自分でも驚きました。

が、しかし計算時間が遅いのが難点。数千×数千の行列の逆行列を繰り返し求める必要が生じるのですが、これが遅い。。せっかく実装したのに、実用に耐えるレベルとは言えませんでした。

どなたかお勧めの行列ライブラリがありましたら教えてくださいませ。疎行列の逆行列が高速に求まれば十分です(C/C++言語)。