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



猜你喜欢

转载自blog.csdn.net/DavyHwang/article/details/37760655