2016-11-29 3 views
0

私は確率密度関数f(x)=(1/3)x^2、-1 <x< 2の分布から1000個の数値を抜き出して試行しています。私はまた、データに基づいてヒストグラムをプロットしたい。拒否法を使用したサンプリング

私の教科書には、拒否方法を使用するための以下の規則があります。
1. a≦x≦bに対して0≦f(x)≦cのような数字a、b、cを探します。境界ボックス は、x軸に沿ってaからbまで、y軸に沿って0からcまで伸びます。
2.乱数ジェネレータ または乱数のテーブルから、標準ユニフォームランダム変数UおよびVを取得します。
3. X = a +(b-a)UとY = cVを定義する。次に、Xはユニフォーム(a、b)分布を持ち、Yは ユニフォーム(0、c)であり、点(X、Y)はバウンディングボックス内で均等に分布している。これらのルールに基づいて

は、私は次のコードを書いたが、私は本当に遠く適切な解決策からだと正確に pが定義されているいくつかのガイダンス

a=-1; b=2; c=2; 

while p < 1000 

    U = rand; V = rand; 

    X = a+U*(b-a); Y = c*V; f = (1/3)*X^2; 

    if Y<=f 
     x(p)=X; 
     p = p+1; 
    end 

end 

histogram(x); 

答えて

0

を使用することができると信じて? 0

Wrtアルゴリズムの場合、f(x)X=2に最大値に達するので、cを4/3に設定することができます。

関連する問題