如何用matlab產生符合某種分佈的隨機序列

2021-03-03 21:05:49 字數 2287 閱讀 8176

1樓:劉威

看你要什麼了 matlab自帶很對隨機數

你要的分佈要是自己定義的話 可以用均勻分佈做出來

你要告訴我你要什麼

如何在matlab中生成一組在規定範圍符合指定分佈的隨機數

2樓:匿名使用者

首先要確定需要的是什麼分佈的隨機數,也就是要知道隨機數要符合的概率密度分佈函式f(x)的定義,然後求其積分函式f(x),然後求f(x)的反函式

得到反函式的定義之後,利用函式rand產生一系列(0,1)之間的隨機數代入反函式中計算得到的結果數列就符合原來f(x)的分佈。

這種方法適用於,能夠容易得到概率密度分佈函式的積分函式的反函式的解析表示式的情況。

下面以指數分佈為例給出**和驗證影象

指數分佈的概率密度函式形式為

f(x)= λexp(-λx) (x>0)

0 (x<=0)

其中λ > 0是分佈的一個引數

指數分佈的累積分佈函式

f(x)= 1-exp(-λx) (x>0)

=0 (x<=0)

指數分佈的累積分佈函式的反函式是

g(y)= -log(1-y)/λ (0

使用直接抽取的方法 先產生 [0,1]間的隨機數列

利用累積分佈函式的反函式,得到的結果就是符合指數分佈的序列

n=10000; %產生隨機數的個數

lambda=3; %引數λ

y=rand(1,n); %生成n個0,1間均勻分佈隨機數

x=-log(1-y)/lambda; %生成指數分佈隨機數

[n,xout]=hist(x,30); %分割槽間統計隨機數出現概率

nn=n/n/mean(diff(xout));

bar(xout,nn,1);hold on; %畫圖驗證隨機數是否符合概率密度函式

plot([0 xout],lambda*exp(-lambda*([0 xout])),'r');hold off;

xlabel('x');

ylabel('p(x)');

想用matlab生成指定概率分佈的隨機數,怎麼生成

3樓:硪丨曖戀

均勻分佈u(a,b):

產生m*n階[a,b]均勻分佈u(a,b)的隨機數矩陣:unifrnd (a,b,m, n)

產生一個[a,b]均勻分佈的隨機數:unifrnd (a,b)

0-1分佈u(0,1)

產生m*n階[0,1]均勻分佈的隨機數矩陣:rand (m, n)

產生一個[0,1]均勻分佈的隨機數:rand

二類分佈binornd(n,p,mm,nn) 如binornd(10,0.5,mm,nn)

即產生mm*nn均值為n*p的矩陣

binornd(n,p)則產生一個。而binornd(10,0.5,mm)則產生mm*mm的方陣,軍陣為n*p。

產生m*n階離散均勻分佈的隨機數矩陣:

unidrnd(n,mm,nn) 產生一個數值在1-n區間的mm*nn矩陣

產生mm nn階期望值為 的指數分佈的隨機數矩陣:

exprnd ( ,mm, nn)

如何在matlab中生成一組在規定範圍符合指定分佈的隨機數

4樓:匿名使用者

1,rand 生成均勻分佈的偽隨機數。分佈在(0~1)之間

2,randn 生成標準正態分佈的偽隨機數(均值為0,方差為1)

3, randi 生成均勻分佈的偽隨機整數

如何用matlab均勻分佈隨機序列

5樓:匿名使用者

方法2、用統計工具箱,y = unifrnd(0,1,m,n).

另外,提供常用的函式分佈供參考:

1、 均勻分佈u(a,b)

產生m*n階[a,b]均勻分佈u(a,b)的隨機數矩陣:unifrnd (a,b,m, n)

2、0-1分佈u(0,1)

產生m*n階[0,1]均勻分佈的隨機數矩陣:rand (m, n)

3、二類分佈binornd(n,p,mm,nn),即產生mm*nn均值為n*p的矩陣

4、產生m*n階離散均勻分佈的隨機數矩陣:

unidrnd(n,mm,nn) 產生一個數值在1-n區間的mm*nn矩陣;

5、產生mm nn階期望值為 的指數分佈的隨機數矩陣:exprnd ( ,mm, nn).

matlab如何用inpolygon函式判斷點是否在園內

如果說是範圍的話應該是滿足與三角形三條邊直線方程有關的不等式組但是如果你有三版點a x1,y1 b x2,y2 c x3,y3 組成三角形權想知道某點 x,y 是否在三角型裡面可以用matlab函式 in on inpolygon x,y,x1 x2 x3 y1 y2 y3 返回的in和on都是邏輯...

如何用MATLAB畫周期函式,如何用MATLAB畫周期函式?

n0 1 n1 200 取最左邊的一個週期的邊界t0 200 週期for i 0 4 5個週期t n0 0.1 n1 y 0.002 1.0191 t t0 i 表示式 plot t,y hold on n0 n0 t0 左邊界右移一個週期n1 n1 t0 右邊界右移一個週期end 第6個週期 t ...

如何用matlab中subplot的使用

subplot就是將figure中的影象劃分為幾塊,每塊當中顯示各自的影象,有利於進行比較。比如example裡面有這樣的例子 in e 3.2 4.1 5.0 5.6 outgo 2.5 4.0 3.35 4.9 subplot 2,1,1 plot in e subplot 2,1,2 plot...