matlab仿真隨機數的產生

機率論和數理統計實驗(matlab中實現)編程

一.伯努利分佈數組

R=binornd(N,P); //N,P爲二次分佈的倆個參數,返回服從參數爲N,P的二項分佈的隨機數,且N,P,R的形式相同。函數

R=binornd(N,P,m); //m是一個1*2向量,它爲指定的隨機數的個數,其中N,P分別表明返回值R中行與列的維數;命令行

R=binornd(N,P,m,n); //m,n分別表示R的行數與列數;code

例:一個射擊手進行射擊比賽,假設每槍射擊命中率爲0.45,每槍射擊10次,共進行10萬輪,就能夠用matlab去仿真該實驗的可能狀況。orm

編寫代碼以下:blog

x=binornd(10,0.45,100000,1);
hist(x,11)

結果如圖[射擊結果直方圖]pdf

從上圖能夠看出,該射擊員每輪最有可能命中4環。隨機數

二.泊松分佈隨機數lambda

y=poisspdf(x,lambda); 求取參數爲Lambda的泊松分佈的機率密度函數值。

我要觀察取不一樣的Lanbda值,使用poisspdf函數繪出來的泊松分佈機率密度圖像。(分別取2.5,5,10)

在matlab中編程

x=0:20;
y1=poisspdf(x,2.5);
y2=poisspdf(x,5);
y3=poisspdf(x,10);
hold on
plot(x,y1,':r*')
plot(x,y2,':b*')
plot(x,y3,':g*')
hold off

三.均勻分佈隨機數

1.R=unifrnd(A,B): 生成被A和B指定上下端點【A,B】的連續均勻分佈的隨機數組R.

2.R=unifrnd(A,B,m,n,…): 返回mn……數組.

a=0;
b=1:5;
r1=unifrnd(a,b)

r1 =

0.5799    0.2172    2.6572    3.2917    3.7076

四.正態分佈隨機數

R=normrnd(mu,sigma);返回均值爲mu,標準差爲sigma的正態分佈的隨機數據。

R=normrnd(mu,sigma,m,n,…);m,n分佈表示R的行數與列數。

若是要獲得mu=10,sigma=0.4的2行4列個正態隨機數,能夠在MATLAB命令行窗口輸入代碼:

R=normrnd(10,0.4,2,4)

R =

9.7923   10.1380   10.5178    9.5354
9.9844    9.6784    9.2855    9.9237

>> R=normrnd(10,0.4,2,4)

R =

9.7484   10.3920   10.1876   10.4871
10.1456   10.3034    9.5257   10.1286

>> R=normrnd(10,0.4,2,4)

R =

10.3718   10.2499    9.9566    9.9542
9.9151   10.1271    9.9685   10.1344

由於這樣的矩陣有不少,本人在此只作了三組實驗。

因爲本人能力有限,編寫過程當中可能存在不足之處,望你們海涵~~~~

謝謝你們

相關文章
相關標籤/搜索