arand

機能

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

形式

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

パラメータ

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

  2. dpt : 出力データ点数 (Scalar)

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

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

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

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

解説

  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/11/12