2011年8月7日日曜日

JAMAの固有値分解の実行時間

Javaで簡単に行列計算を行うことができるJAMAライブラリの実行速度を調べてみた。
対象行列の固有値分解がやりたいので、その実行時間を図った。


実行環境

  • OS    : Windows7 Professional(64bit)
  • メモリ: 4GB
  • CPU  : Intel(R) Core(TM) i5 CPU  M460 @ 2.53GHz 2.54GHz

実験方法
乱数を使って対象行列を作成し、固有値分解のみの実行時間をSystem.currentTimeMillis()を使って、


  1. long start = System.currentTimeMillis();
  2. matrix.eig();
  3. long end = System.currentTimeMillis();
  4. long time = end - start;
で測定。
対象行列のサイズを変更したときの、処理時間の変化をみる。

下が実行結果(両対数グラフ)



サイズが5000(グラフの右端)のとき、約2.8時間処理にかかった。
これが遅いのかはわからないので、時間があるときに他のライブラリもためす