GSL(GNU Scientific Library) はその名の通り科学技術計算ライブラリで さまざまな数値計算法の関数がたくさん集められています.<URL:http://www.gnu.org/software/gsl/> ANSI C で記述されていて,C や C++ から呼び出せます.
Ruby/GSL は国立天文台の常定さんがメンテナンスしておられる GSL の Ruby ラッパーです. 最新版(2006/03/08 現在) 1.7 では GSL 1.7 の全ての関数を網羅しています. <URL:http://rb-gsl.rubyforge.org>
このチュートリアルでは Ruby/GSL の使用例をお見せします.
Debian, Vine
# apt-get install rb-gsl
Fedora Core
# yum install rb-gsl
FreeBSD
# cd /usr/ports/math/ruby-gsl # make install
ruby-gsl というパッケージが電脳Ruby プロジェクトから提供されています。詳しくはこちら。
まずは gsl で使われている描画ライブラリをインストールします. (rb-gsl に必須ではないらしいのですが, インストールでこけるので一応.) Plotutils 公式ページ(GNU)から
をダウンロードします.
展開した後に, 展開されたディレクトリに移ります. そして
% ./configure
で Makefile を生成します. この時デフォルトのインストールパス(/usr/local/) 以外の場所にインストールしたい場合は
% ./configure --prefix=<インストール先のパス>
などとしましょう. configure が終わったら
% make
します. 時間がかかるので紅茶でも飲んで待ちましょう. 終わったら
# make install
します(場合によってスーパーユーザになってください). 簡単ですね.
をダウンロードしましょう.
展開した後に, 展開されたディレクトリに移ります. そして plotutils 同様に
% ./configure or ./configure --prefix=<インストール先のパス> % make # make install
とします. これで終了です.
次に Ruby/GSL をインストールします. RubyGSL 公式ページの 3. Installation, 2 の Download から <URL:http://rubyforge.org/frs/?group_id=285>に飛びます. ここから
をダウンロードしましょう.
落とした資源を展開して, 展開したディレクトリに移ります.
まずは設定します. NArray を gsl で利用できるようにするには
% ruby setup.rb config -- --with-narray-include=<narray.h's path>
とします. この時 narray.h のパスを陽に指定しなくてはなりません. また plotutils や gsl のインストール先がデフォルトのロードパスにない場合は 以下の様に設定してやらなければなりません.
% export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<インストール先のパス>/lib % export C_INCLUDE_PATH=$C_INCLUDE_PATH:<インストール先のパス>/include
実行した際に, narray.h がロードされたことを確認したら
% ruby setup.rb setup
とします. 無事終了したら
# ruby setup.rb install
します. ただし, rb_gsl.so が取り残されるかもしれません. その時は手動で
# cd ext; install rb_gsl.so <インストール先のパス>
と実行して移してやります. 以上でインストールは終了です.
それではサンプルを実行してみましょう. サンプルは展開したディレクトリの samples/ 以下にあります. リファレンスマニュアル を眺めつつお好みのプログラムを実行してみましょう.
Ruby/SSL2 の例題スクリプトを参考にしています. ただし欠損値は考慮してません.
eof_gsl.rb: GSL::Eigen::symmv(実対称行列の固有値固有ベクトルを求める) の利用
eof.rbeof_gsl.rb で定義した Analysis::eof を呼ぶスクリプト.
eof.rb の実行結果