2009年8月31日月曜日

任意の確率分布に従う乱数


任意の確率分布に従って乱数を発生させる方法として,一般的に逆関数法と棄却法が用いられる.

以下に,Mathematicaで棄却法により(π/2)×sin(πx)に従う乱数の発生方法を記載する.

Clear[m, data1];
Clear[data1];
m = π/2;
f1[x_] := π/2 Sin[π x];
f2[x_, y_] := If[y < f1[x]/m, x];
data1 = DropNonNumeric[Table[f2[Random[], Random[]], {10000}]];
Histogram[data1]