2

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 で同様のことを行うにはどうすればよいですか?

4

3 に答える 3

9

ポアソン分布は、整数に対してのみ定義されます。したがって、次のようにPoissonDistributionRandomIntegerを使用する必要があります。

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}
于 2011-10-12T14:02:38.480 に答える
4

PoissonDistributionMathematica の広範なオンライン ドキュメントを読むことによって、特にPDF. これにより、分布値を計算できます。

私の個人的な経験では、単純なディストリビューションの場合、ディストリビューションの式をプラグインして、派手なPDFアプローチの代わりにそれを使用する方が高速であることに注意してください。ポアソン分布はそれほど複雑ではありません。

于 2011-10-12T14:02:36.180 に答える
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}
于 2011-10-12T14:22:24.963 に答える