arand

機能

任意の経験分布関数に従う乱数を生成する.

形式

x = arand( dpt, seed, f, min, max )

パラメータ

  1. x : 出力時系列 (Series)

  2. dpt : 出力データ点数

  3. seed : 乱数の初期値 (奇数)

  4. f : 経験分布関数バッファ (Series,Snapshot)

  5. min : 経験分布関数定義域下限 (乱数最小値)

  6. max : 経験分布関数定義域上限 (乱数最大値)

解説

  1. 乱数のシードは,M 系列を用いて生成している.

  2. 乱数生成のアルゴリズムは,逆関数法を用いている.

  3. 経験分布関数 f の値域は,0≦f≦1 の区間に入っていなければならない.

使用例

コーシー分布に従う乱数を発生させる.

func cauchy(x) {                       #
  return 1 / (PI * (x^2 + 1));         #  コーシー分布の
}                                      #  密度関数定義

series f;
x = (0~999) / 1000 - 0.5;              #  分布関数の定義域設定
ff = cauchy(x);                        #  密度関数の値設定
a = sum(ff,f);                         #  密度関数を積算する
f = f / a;                             #  経験分布関数の設定
data = arand(1024,1,f,min(x),max(x));  #  乱数生成
Last updated: 2005/03/31