主题:关于MATLAB中服从泊松分布的随机数的生成
hyt0931
[专家分:30] 发布于 2008-03-03 11:50:00
用MATLAB生成P=6.6*10^-8 N=400 的服从泊松分布的随机数,我用POISSRND生成了1000个随机数可全都是0,请高手帮帮忙,怎样才能生成服从该分布的不全为0的随机数?
回复列表 (共4个回复)
沙发
blivfate [专家分:720] 发布于 2008-03-03 21:39:00
POISSRND Random arrays from the Poisson distribution.
R = POISSRND(LAMBDA) returns an array of random numbers chosen from the
Poisson distribution with parameter LAMBDA. The size of R is the size
of LAMBDA.
R = POISSRND(LAMBDA,M,N,...) or R = POISSRND(LAMBDA,[M,N,...]) returns
an M-by-N-by-... array.
你可以使用第二种调用格式,比如
poissrnd(5,1,1000);
得出的数并不是0,下面是部分:
Columns 1 through 13
6 5 3 6 4 3 8 2 10 8 6 5 6
Columns 14 through 26
7 9 6 4 9 4 8 4 3 6 3 4 4
Columns 27 through 39
5 5 7 4 7 4 3 3 2 12 5 4 4
板凳
gslyd [专家分:1300] 发布于 2008-03-04 10:05:00
产生的值取决于lambda的大小。lambda=p*N为poiss分布的平均数和方差。
3 楼
hyt0931 [专家分:30] 发布于 2008-03-05 15:54:00
我的LAMDA=6.6*10^-8*400 怎么变换才能生成大于0的服从泊松分布的随机数,谢谢了
4 楼
gslyd [专家分:1300] 发布于 2008-03-07 00:08:00
普松分布指的是在一个1非常少(其中出现1的概率接近于0)的(0,1)总体中以很大的样本容量(n)抽样所得到的总和数的分布。你的总体出现 1 的概率p=6.6e-8非常小,只抽400个元素,这个样本的总和数当然仍然可能是0,若增大样本容量,比如说100M,则这个样本中总会出现非0元素,其总和数就可能为0,1,2,3,...,他们的概率分布符合普松分布即poissrnd(n*p)。
我来回复