ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

一様分布の逆関数を使用した乱数の生成

この例は、一様分布の逆関数法を使用して乱数を生成する方法を示しています。この方法は、逆累積分布関数の計算が可能な場合の分布に役立ちますが、分布からの直接の標本化はサポートされていません。

手順 1. 標準一様分布から乱数を生成する。

rand を使用して、区間 (0,1) で一様分布から 1000 の乱数を生成します。

rng('default')  % For reproducibility
u = rand(1000,1);

逆関数法は、連続累積分布関数 (cdf) は開区間 (0,1) 全体にまたがって一意に分布するという原則に依存しています。u が (0,1) の均一な乱数である場合、x = F–1(u) は、cdf F が指定された任意の連続分布から乱数 x を生成します。

手順 2. ワイブル分布から乱数を生成する。

逆累積分布関数を使用して、u の確率に対応するパラメーター A = 1 および B = 1 をもつワイブル分布から乱数を生成します。結果をプロットします。

figure;
x = wblinv(u,1,1);
hist(x,20);

ヒストグラムから、ワイブル逆累積分布関数 wblinv を使用して生成された乱数がワイブル分布となることがわかります。

手順 3. 標準正規分布から乱数を生成する。

u を同じ値にして、望ましい分布の逆累積分布関数を使用して同じ手順に従うと、標準正規分布などの任意の分布から乱数を生成できます。

figure;
x_norm = norminv(u,1,0);
hist = (x_norm,20);

ヒストグラムから、標準正規逆累積分布関数 norminv を使用すると、u から生成された乱数が標準正規分布となることがわかります。

参考

| | |

詳細

この情報は役に立ちましたか?