進捗報告
CLAPACKを利用した数値計算ライブラリの実装がかなり進みました.
C#から利用できます(もちろんC++/CLIからも利用可能.CLR上で動くため,VB.Netからでも利用できる?).
【実装完了】
- Matrixクラス
- Vectorクラス
- RowVectorクラス
- ColVectorクラス
- 上記クラスに対する基本的な処理(四則演算,平均,分散,ノルム)
- 逆行列,転置,トレース
- 固有値分解(固有値と固有ベクトルを求める)
- 特異値分解(特異値と特異ベクトルを求める)
- 標準化(平均0,分散1にするやつ)
- 相関分析
- 主成分分析
- プロクラステス分析
- コレスポンデンス分析(これで数量化Ⅲ類にも対応)
- クラスタ分析(ファジィクラスタリングのみ)
- XSVクラス(任意の区切り文字により構成されたファイルを読み込み,Matrixと相互変換可能とするクラス,CSVファイルやタブ区切りファイル: TSVの読み書きが簡単にできる)
- おまけで,gnuplotを操作するクラス
【実装予定】
まだ,テストはこれからです.
あんまりバグでないでほしいなぁ...
けっこう疲れます.(´ω`)
みんなからの評判がよければ,公開します.
使用例:固有値分解
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; // ↑このほかにも,固有値ベクトルが取れる.