GSLHowTos

GNU Scientific Library についてのHOWTO集

リンク


目次


逆行列を求める

LU分解法を使う場合
 const int NROWS = 3;
 const int NCOLS = 3;
 double AData[] = {
   1, 2, 3,
   0, 1, 0,
   0, 1, 1,
 };
 double BData[NROWS*NCOLS]; 
 gsl_matrix_view A = gsl_matrix_view_array(AData, NROWS, NCOLS);
 gsl_matrix_view B = gsl_matrix_view_array(BData, NROWS, NCOLS);
 
 gsl_permutation *p = gsl_permutation_alloc(NROWS);
 int signum;
 gsl_linalg_LU_decomp(&A.matrix, p, &signum);
 gsl_linalg_LU_invert(&A.matrix, p, &B.matrix); // B = A^(-1)

 gsl_permutation_free(p);
最終更新:2009年03月16日 16:27
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。