1. 程式人生 > >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,平均值。或者大約等於期望值,即 下列常見的指數分佈概率密度函式中的 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