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。平均值。或者大约等于期望值,即 下列常见的指数分布概率密度函数中的 lambda 的倒数。

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

搜了一下网上有人讲。可是。最后的结论不是非常清晰,残念ね。

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

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


1)  将 Mu 设置为5,然后生成1e4个符合指数分布的数,统计平均值。

CNT_number = 10000;  
Mu = 5;
a=exprnd(Mu, 1, CNT_number);  
plot(a);  
mean = sum(a) /CNT_number 


2) 输出为:

 mean =

   5.0090


3) 
     exprnd 函数中參数 MU 指的是确实是均值。 或者也能够理解为指数分布的期望值。


Davy_H

2014-7-14



posted on 2017-05-18 10:41  ljbguanli  阅读(2671)  评论(0编辑  收藏  举报