随机泊松噪声

时间:2011-10-12 13:57:51

标签: wolfram-mathematica poisson

我在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中做类似的事情?

3 个答案:

答案 0 :(得分:8)

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}

答案 1 :(得分:4)

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

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

答案 2 :(得分: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}