【问题标题】:Random Poisson Noise随机泊松噪声
【发布时间】:2011-10-12 13:57:50
【问题描述】:

我正在寻找 Mathematica 中以下 Matlab 函数的等价物:

“R = poissrnd(lambda) 从平均参数 lambda 的泊松分布中生成随机数。lambda 可以是向量、矩阵或多维数组。R 的大小就是 lambda 的大小。”

下面的函数输出示例。

b = 95.7165   95.7165   95.7165   95.7165   95.7165   98.9772   98.9772   98.9772   98.9772    0.3876

poissrnd(b)

ans =100   115     81    90   109   106   104    87   104     2

我怎样才能在 Mathematica 8 中做类似的事情?

【问题讨论】:

    标签: wolfram-mathematica poisson


    【解决方案1】:

    Poisson distribution 仅针对整数定义。所以你需要像这样使用RandomIntegerPoissonDistribution

    poissrnd[lambda_]:=RandomInteger[PoissonDistribution[lambda]]
    

    用法:

    b = {95.7165, 95.7165, 95.7165, 95.7165, 95.7165, 98.9772, 98.9772, 
      98.9772, 98.9772, 0.3876};
    
    poissrnd /@ b
    
    Out[1] = {104, 97, 67, 84, 96, 123, 93, 96, 100, 0}
    

    【讨论】:

      【解决方案2】:

      通过阅读广泛的在线 Mathematica 文档,尤其是关于 PoissonDistribution 及其绘图示例的部分,它会将您指向 PDF。这将允许您计算分布值。

      请注意,根据我的个人经验,对于简单的发行版,插入发行版的公式并使用它而不是花哨的 PDF 方法会更快。泊松分布并不太复杂。

      【讨论】:

        【解决方案3】:

        或者,您可以使用

        In[2]:= lambda = {1.0, 2.05, 11.04}
        
        Out[2]= {1., 2.05, 11.04}
        
        In[3]:= Map[RandomVariate[PoissonDistribution[#]] &, lambda]
        
        Out[3]= {0, 3, 11}
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-10-17
          • 2015-09-26
          • 1970-01-01
          • 1970-01-01
          • 2013-02-13
          • 1970-01-01
          • 2011-06-26
          相关资源
          最近更新 更多