2006年06月04日

C++で固有値解析

arpack++を使って密行列の固有ベクトルを求める

#include "ardsmat.h" //密行列作成のため
#include "ardssym.h" //対称密行列操作のため

int N = 3 ; //行列サイズ
double* A = new double [ N*(N+1)/2 ] ; //対称行列の領域を確保
//対称行列の要素を入れる
ARdsSymMatrix B( A, N ) ; //行列を作成
int dim = 2 ; //求めたい固有ベクトルの数
ARluSymStdEig dprob( dim, A ) ;
int nconv = dprob.FindEigenvectors();
double** EigenVec = new double* [ dim ] ; //固有ベクトルを入れる配列
for ( int i = 0 ; i < dim ; i ++ ) {
EigenVec[i] = dprob.RawEigenvector(dim-1-i) ;
}


posted by xi at 22:38 | Comment(0) | TrackBack(0) | 機械学習
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。