require "narray"
require "gsl"
require "eof_gsl.rb"
require "numru/dcl"

include NumRu

def rand_nmal(m, s, n)

  # 正規乱数作成
  rnd_std_nmal = NArray.sfloat(n).randomn 
  rnd_nmal     = rnd_std_nmal * s + m 

  return rnd_nmal
end

n = 1000
x = NArray.float(2,n)

a = rand_nmal(0,0.4,n)  # 平均 0, 分散 0.4 の正規乱数
b = rand_nmal(0,0.2,n)  # 平均 0, 分散 0.2 の正規乱数

theta = Math::PI/6
x[0,true] = a*Math::cos(theta) - b*Math::sin(theta)
x[1,true] = a*Math::sin(theta) + b*Math::cos(theta)

val,vec = Analysis.eof(x)

DCL::gropn(1)
DCL::grfrm
DCL::grswnd(-1.5,1.5,-1.5,1.5)
DCL::uspfit
DCL::grstrf
DCL::usdaxs
DCL::sgpmzu(x[0, true],x[1,true],1,1,0.01)
for i in 0..1
  fact = val[i]
  DCL::sgplzu([-vec[0,i]*fact,vec[0,i]*fact],[-vec[1,i]*fact,vec[1,i]*fact],1,3)
end
DCL::grcls
