GSLプログラミング in C
例:連立方程式 A x = b を解く
#include <stdio.h>
#include <gsl/gsl_linalg.h>
int main ()
{
   double a_data[] = { 0.18, 0.60, 0.57, 0.96,
                                   0.41, 0.24, 0.99, 0.58,
                                   0.14, 0.30, 0.97, 0.66,
                                   0.51, 0.13, 0.19, 0.85 };
   double b_data[] = { 1.0, 2.0, 3.0, 4.0 };
 gsl_vector *x = gsl_vector_alloc (4);
   gsl_matrix_view m = gsl_matrix_view_array(a_data, 4, 4);
   gsl_vector_view b = gsl_vector_view_array(b_data, 4);
   int s; gsl_permutation * p = gsl_permutation_alloc (4);
   gsl_linalg_LU_decomp (&m.matrix, p, &s);
   gsl_linalg_LU_solve (&m.matrix, p, &b.vector, x);
   gsl_vector_fprintf(stdout, x, "%g");
   gsl_permutation_free (p);
   return 0;
}
行列
右辺のベクトル
解ベクトル
作業領域
メモリ開放
LU分解
方程式を解く
結果出力: ベクトル x
n たったこれだけで連立方程式が解けてしまう!
    すごいぞ GSL!
n やけにまわりくどい、タイプ量が多い、 
  コンパイルが面倒、、、
そしてコンパイル、、、