参考
http://rb-gsl.rubyforge.org/ref.html
とても便利そう。
要約統計量の計算
require 'rubygems' require 'narray' require 'gsl' #ベクトル型 v=GSL::Vector[1..6] v[2]=10 puts v #平均 puts v.mean #分散 puts v.sd #最大値 puts v.max #最小値 puts v.min #中央値 puts v.sort.median_from_sorted_data #中央値 ? puts v.median #25%点 puts v.sort.quantile_from_sorted_data(0.25) #y=GSL::Stats::mean(x,1,x.length) #puts GSL::Stats::mean(x) #puts GSL::Stats::sd(x)
ヒストグラムの出力
require 'rubygems' require 'narray' require 'gsl' #乱数の初期化 #メルセンヌツイスタ、種は0 rng=GSL::Rng.alloc #種を3に変えたい場合 #rng=Rng.alloc(3) #rag=Rng.alloc(GSL::Rng::MT19937,3) #正規分布発生 data2=rng.gaussian(sigma=1,10000) puts data2 #一様分布を発生したい場合 #data1=rng.uniform(10) #puts data1 #ヒストグラムを作成 #箱の数50, -3から3の範囲 h=GSL::Histogram.alloc(50,[-3,3]) d= h.increment(data2) #グラフを出力 xterm h.graph() #フィッティングまでする場合。 #sigma,mean,height,=h.fit_gaussian #x=GSL::Vector.linspace(-3,3,30) #y=height*GSL::Ran::gaussian_pdf(x-mean,sigma) #GSL::graph(h,[x,y])