#!/usr/bin/ruby
# 拡張ライブラリ gsl.so をロード
require 'gsl'
# 行列をクラス
GSL_Matrix として実現
m = GSL_Matrix.new([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])
# 右辺のベクトル: to_gv は配列を
GSL_Vector にするメソッド
b = [1, 2, 3, 4].to_gv
# LU分解:lu は分解された行列、p は置換情報が入る。
lu, p = m.LU_decomp
# LU分解した行列を使って連立方程式を解く。解はベクトル x に。
x = lu.LU_solve(p,
b)
p x