當前位置:編程學習大全網 - 源碼下載 - 如何用matlab生成混合高斯分布的隨機數

如何用matlab生成混合高斯分布的隨機數

m = 10;%生成壹個m行n列的隨機數矩陣。

n = 8;

miu 1 = 1;%第壹次分布的參數

sigma 1 = 2;%第壹次分布的參數

miu 2 = 6;%第二次分布的參數

sigma 2 = 1;%第二次分布的參數

R = 0.2*normrnd(miu1,sigma1,M,N)+0.8*normrnd(miu2,sigma2,M,N);

單點的概率都是零,那麽妳拿出來的隨機數是什麽?

為了滿足統計分布,需要按區間計數幾個隨機數。

另外,我不知道妳要做什麽。

如果要生成壹定概率密度的隨機數,最好用反函數法什麽的。

例如,生成壹個具有x.^2分布的隨機數,但是這些應該是歸壹化的。

============================================

首先,我知道我的錯了。從下圖可以看出。

m = 1000;%生成壹個m行n列的隨機數矩陣。

n = 1;

miu 1 = 1;%第壹次分布的參數

sigma 1 = 2;%第壹次分布的參數

miu 2 = 6;%第二次分布的參數

sigma 2 = 1;%第二次分布的參數

R = 0.2*normrnd(miu1,sigma1,M,N)+0.8*normrnd(miu2,sigma2,M,N);

x =-5:0.001:15;

y1=normpdf(x,miu1,sigma 1);

y2=normpdf(x,miu2,sigma 2);

支線劇情(2,2,1);

plot(x,y 1);

支線劇情(2,2,2);

plot(x,y2);

支線劇情(2,2,3);

y3 = 0.2 * y 1+0.8 * y2;

plot(x,y3);

次要情節(2,2,4)

dx = 0.5

xx =-5:dx:15;

yy=hist(R,xx);

YY = YY/M/dx;

plot(x,y3);

繼續

酒吧(xx,yy)

=======================================

正確的方式,我還沒想明白,還在繼續。。。。

============================================

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _新的嘗試

我覺得下面這個結果可能可以接受。

思維:基於逆變換的方法

Matlab有如下內容

P=normpdf(x,miu,sigma)是x處的概率密度。

P=normcdf(x,miu,sigma)就是求x

我給壹個區間,我認為這個區間外的概率是0(這個不夠嚴謹,理論上應該是從負無窮大到正無窮大)。

我這裏取的是-10:15,期間取25000個點,算出這些點的累積概率值(兩點的加權和y3),把這個叫做F(x)。根據逆變換方法,

F(x)=u,其中u是從0到1的均勻隨機數。只要找到它的解x0,x0就滿足給定的概率密度分布。我在這裏使用插值。使用

(y3,x)來插值u的位置。

說明有壹些地方不夠嚴謹,嚴謹要用分析方法來反推。

%%%%以下是程序。

m = 1000;%生成壹個m行n列的隨機數矩陣。

n = 1;

miu 1 = 1;%第壹次分布的參數

sigma 1 = 2;%第壹次分布的參數

miu 2 = 6;%第二次分布的參數

sigma 2 = 1;%第二次分布的參數

x =-10:0.001:15;

y1=normpdf(x,miu1,sigma 1);

y2=normpdf(x,miu2,sigma 2);

y3 = 0.2 * y 1+0.8 * y2;

y1=normcdf(x,miu1,sigma 1);

y2=normcdf(x,miu2,sigma 2);

y = 0.2 * y 1+0.8 * y2;

u =蘭特(N,M);

R=interp1(y,x,u,'線性');

dx = 0.5

xx =-10:dx:15;

yy=hist(R,xx);

YY = YY/M/dx;

酒吧(xx,yy)

堅持住;

繪圖(x,y3,' r* ')

  • 上一篇:高分懸賞,關於世界地球日的問題,哄小孩兒的,100個,站求多多益善!揮淚灑粉啊!
  • 下一篇:網站怎麽做推廣
  • copyright 2024編程學習大全網