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