【发布时间】:2017-04-13 20:32:00
【问题描述】:
我正在尝试使用拒绝方法从概率密度函数 f(x) = (1/3)x^2 , -1
我的教科书给出了使用拒绝方法的以下规则:
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 有 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);
【问题讨论】:
标签: matlab statistics probability