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);