0
我試圖從使用拒絕方法的概率密度函數f(x)=(1/3)x^2,-1 < x < 2的分佈中採樣1000個數字。我也想繪製一個基於數據的直方圖。使用拒絕方法進行採樣
我的教科書給出了使用拒收方法的以下規則:
1.找出a≤b≤c的數a,b和c,使0≤f(x)≤c。邊界框 沿着x軸從a延伸到b並沿着y軸從0延伸到c。
2.從隨機數發生器 或隨機數表中獲取標準的統一隨機變量U和V.
3.定義X = a +(b-a)U和Y = cV。那麼X具有Uniform(a,b)分佈,Y是 Uniform(0,c),並且點(X,Y)在邊界框中是均勻分佈的。
基於這些規則,我寫了下面的代碼,但我相信我是一個妥善的解決辦法真的不遠了,並且可以使用一些指導
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);