首页 > 代码库 > Matlab 用 exprnd 函数生成符合指数分布的随机数

Matlab 用 exprnd 函数生成符合指数分布的随机数


实验中需要用 exprnd 函数生成大量符合指数分布的随机数样本。于是 help exprnd 

exprnd Random arrays from exponential distribution.
    R = exprnd(MU) returns an array of random numbers chosen from the
    exponential distribution with mean parameter MU.  The size of R is
    the size of MU.
 
    R = exprnd(MU,M,N,...) or R = exprnd(MU,[M,N,...]) returns an
    M-by-N-by-... array.


里边有个参数 Mu,虽然可以看到 MU 是 mean parameter,应该是期望值。即 下列常见的指数分布概率密度函数

  f(x;\lambda) = \left\{\begin{matrix}\lambda e^{-\lambda x}, &\; x \ge 0, \\0, &\; x < 0.\end{matrix}\right.  

之中的 lambda 的倒数。搜了一下网上有人讲,但是,因为他做实验的样本数目太少,妄自揣测,最后的结论讲错了,遗憾。

为了谨慎,我自己来做实验验证一下吧:

1)代码;2)效果;3)结论。

1) 

CNT_number = 100000;
Mu = 20;

for i=1:CNT_number
     a(i)=exprnd(Mu);
end
plot(a);
mean = sum(a) /CNT_number


2) 输出为:

 mean =

   19.9985

3) 
exprnd 函数中参数 MU 指的是确实是 指数分布期望值。


Davy_H

2014-7-14