形式
x = arand( dpt, seed, f, min, max )
パラメータ
-
x : 出力時系列 (Series)
-
dpt : 出力データ点数 (Scalar)
-
seed : 乱数の初期値 (奇数) (Scalar)
-
f : 経験分布関数バッファ (Series,Snapshot)
-
min : 経験分布関数定義域下限 (乱数最小値) (Scalar)
-
max : 経験分布関数定義域上限 (乱数最大値) (Scalar)
解説
-
乱数のシードは,M 系列を用いて生成している.
-
乱数生成のアルゴリズムは,逆関数法を用いている.
-
経験分布関数 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)); # 乱数生成