進捗報告

CLAPACKを利用した数値計算ライブラリの実装がかなり進みました.
C#から利用できます(もちろんC++/CLIからも利用可能.CLR上で動くため,VB.Netからでも利用できる?).

【実装完了】

  • Matrixクラス
  • Vectorクラス
  • RowVectorクラス
  • ColVectorクラス
  • 上記クラスに対する基本的な処理(四則演算,平均,分散,ノルム)
  • 逆行列,転置,トレース
  • 固有値分解(固有値固有ベクトルを求める)
  • 特異値分解(特異値と特異ベクトルを求める)
  • 標準化(平均0,分散1にするやつ)
  • 相関分析
  • 主成分分析
  • プロクラステス分析
  • コレスポンデンス分析(これで数量化Ⅲ類にも対応)
  • クラスタ分析(ファジィクラスタリングのみ)
  • XSVクラス(任意の区切り文字により構成されたファイルを読み込み,Matrixと相互変換可能とするクラス,CSVファイルやタブ区切りファイル: TSVの読み書きが簡単にできる)
  • おまけで,gnuplotを操作するクラス


【実装予定】

  • 行列式
  • クラスタ分析(残りの手法,とりあえずは非階層のものだけ)
  • 多次元尺度構成法(SammonMapping)
  • 判別分析

まだ,テストはこれからです.
あんまりバグでないでほしいなぁ...
けっこう疲れます.(´ω`)
みんなからの評判がよければ,公開します.

使用例:固有値分解

Matrix m = new Matrix(3, 3);
m[0, 0] = 4; m[0, 1] = 1; m[0, 2] = -4;
m[1, 0] = 3; m[1, 1] = 4; m[1, 2] = -6;
m[2, 0] = 2; m[2, 1] = 1; m[2, 2] = -2;

EigenvalueDecomposition eigen = new EigenvalueDecomposition(m);
Vecotr^ vec = eigen.RealEigenvalues;
// ↑このほかにも,固有値ベクトルが取れる.