【问题标题】:Sampling using rejection method使用拒绝法抽样
【发布时间】: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


    【解决方案1】:

    p 到底是在哪里定义的?应该设置为0

    Wrt 算法,它看起来不错,只是它可以提高效率 - f(x)X=2 处达到最大值,因此您可以将 c 设置为 4/3。

    【讨论】:

      猜你喜欢
      • 2021-08-12
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多