正態(tài)分布隨機數(shù)生成算法_第1頁
正態(tài)分布隨機數(shù)生成算法_第2頁
正態(tài)分布隨機數(shù)生成算法_第3頁
正態(tài)分布隨機數(shù)生成算法_第4頁
正態(tài)分布隨機數(shù)生成算法_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、概率論與數(shù)理統(tǒng)計課程設計題目:正態(tài)分布隨機數(shù)生成算法要編程得到服從均勻分布的偽隨機數(shù)是容易的。c語言、java語言等都提供了相應的函數(shù)。但是要想生成服從正態(tài)分布的隨機數(shù)就沒那么容易了。得到服從正態(tài)分布的隨機數(shù)的基本思想是先得到服從均勻分布的隨機數(shù),再將服從均勻分布的隨機數(shù)轉變?yōu)榉恼龖B(tài)分布。接下來就先分析三個從均勻分布到正態(tài)分布轉變的方 法。然后編程實現(xiàn)其中的兩個方法并對程序實現(xiàn)運作的效果進行統(tǒng)計分析。1、方法分析(1) 利用分布函數(shù)的反函數(shù)若要得到分布函數(shù)為 f(x)的隨機變量y??闪顈 = f(u),其中u是服從均勻分布的隨機變量,有p(y 0(i =1,2|),則對一切 xwr有21 1

2、 e)廣 1 二lim p l x xi -n x =1 -=e 2dtvvncr)2 -gcv21/.因此,對于服從均勻分布的隨機變量xi,只要n充分大,隨機變量xi-nn i、n 0.i m就服從n(0,1 )。我們將實現(xiàn)這一方法。(3) 使用box muller方法- -x2先證明廣ehdx=2n:2二令 i = j e 2 dx ,則i2200e 2 1.joo2:-=y-dx e 200dy =匚edxdy令 x = r cos9, y = r sin 8,則有r2i22二二干00e rdrdur2=2冗 krdr =2n。接下來再來得出 box muller方法:設(x,y )為一

3、對相互獨立的服從正態(tài)分布的隨機變量。則有概率密度函數(shù)1fxy x,y =ex2 y2,則r有分布函數(shù):r 10冗2 )令 x = rcos 工 y = rsin ,其中 i e 2 udud【-e 2 udu = 1 - e令 fr r =1 -e 2r = frz =2ln 1-z如果x服從均勻分布,則 r的分布函數(shù)即為 fr(r)。最后,可以ui用代替(1-z),令日為2叫2,其中uiu(0,1), u2(0,1),得:x =rcosu -、,-2ln u1 cos 2二u2 ,丫 =rsim -2-3 sin 2二u2從而,只需要有兩個服從均勻分布的隨機變量u1,u2,就能通過公式x =

4、rcos? -2lnu1 cos 2 :u 2來得到一個服從正態(tài)分布的隨機變量x。用box muller方法來生成服從正態(tài)分布的隨機數(shù)是十分快捷方便的。我們也將實現(xiàn)這一方法。2、實現(xiàn)與分析(1)利用中心極限定理方法的實現(xiàn)與分析利用中心極限定理來生成隨機數(shù)的函數(shù)(c+語言)編寫如下:const int n = 200;double getrand() double s = 0;for ( int i = 0; i != n; +i) s += double (rand() % 1000) / 1000;return s; 函數(shù)生成的隨機數(shù)是n個0,1間服從均勻分布的隨機數(shù)的和。這里 n為200。

5、從而理論上產(chǎn)生的隨機數(shù)應近似服從n(nn,n2),其中n為n,即200, n為0.5,仃2為1/12。程序生成了 200個隨機數(shù),并求出樣本均值與樣本方差,也即n與o 2的最大似然估計:/生成隨機數(shù)并存儲double sum, store200, xi, su = 0, sb = 0, ssb = 0;int cnt = 0;sum = 0;for ( int i = 0; i != 200; +i) xi = getrand();sum += xi; storei = xi; /得到樣本均勻與樣本方差su = sum / 200;for ( int i = 0; i != 200; +i)

6、sb += (storei - su) * (storei - su);sb /= 200;ssb = sqrt(sb);此次選取 y =90, y2 =92, =94, y4=96, y =98, y6 =100, y? =102, y8 =104,y9 =106,y10 =108,它們將實軸分成11個互不相交的區(qū)間,從而將樣本值分成11組。程序統(tǒng)計了每組中的樣本數(shù)量。為方便計算,程序還計算出了int segments12, m = 2;double x1 = 90, x10 = 108;memset(segments, 0, sizeof (segments);for ( int i =

7、0; i != 200; +i)if (storei x10)+segments10;else+segments int (storei - x1) / m + 1);cout i t ni endl;for ( int i = 0; i != 11; +i)cout i + 1 t segmentsi;if (i 10)cout t fixed setprecision(2) (90 + i * 2 - su) / ssb;cout endl;程序的最終運彳r輸出如圖2 1所示。樣本均值:993樣本方差二1678302kill1n i11-2.2625-1.7?315-1.29424-0.8

8、0529-0.316360.187378291.1591?1.641032.13114圖2 1最終輸出結果對結果的統(tǒng)計如表 2 1所示。由表21中可見 * =13.380 ,今k =11,m= 2,并令豆=0.05,則 %(k-m-1 尸405(8 )=15.507.由于 13.380 15.507,故可認為產(chǎn)生的 隨機數(shù)服從正態(tài)分布。表21 i(yi,yni?i2(n-200 ?)200 ?i1s9020.01190.0612(90,9220.02652.0553(92,94100.06010.0344(94,96120.11345.0295(96,98370.16640.4166(98,1

9、00460.20690.5167(100,102420.17401.4898(102,104230.12950.3259(104,106150.07460.00010(106,108100.03391.52911(108, f10.01661.62113.380利用中心極限定理的方法雖然可以得到服從正態(tài)分布的隨機數(shù)樣本,其思想也較為簡單,容易想到。但是這種方法每次都要先產(chǎn)生若干個服從均勻分布的隨機數(shù)樣本并求它們的 和,因而算法的時間復雜度高。(2)box muller方法的實現(xiàn)與分析使用box muller方法得到隨機數(shù)的函數(shù)如下:double getrand()double u1 = dou

10、ble (rand() % 10000) / 10000, u2 = double (rand() % 10000) / 10000, r;r = 20 + 5 * sqrt(-2.0 * (log(u1) / log(e) * cos(2 * pi * u2);return r;用此函數(shù)得到的隨機數(shù)樣本理論上服從n (20,25)。所實現(xiàn)的程序產(chǎn)生了500個隨機變量的樣本其他與利用中心極限定理的實現(xiàn)基本相同。程序得到的最終結果如圖2 2所示。樣本均值:200566 樣本方差:26.387milm 二 2i,1ni117-1.96211-1-57335-1,1944?-0.7?5580 .40

11、664-0.01?920.388610.7?9551.16103g1.551130圖2-2對結果的統(tǒng)計如表 2-2所示。表22 i(ynyjni?i- 2(n 500?)500?1s10170.02501.622(10,12110.03321.893(12,14350.06080.694(14,16470.09580.015(16,18580.12980.736(18,20640.15141.817(20, 22920.15203.368(22, 24610.13140.339(24, 26550.09860.6510(26, 28300.07241.0611(28,收300.06060.0012.19由表 2-2 可見 * =12.1 9 今 k=11,m = 2,并令 口=0.0,5 則 /(k-m-1 )=22.05 (8 ) =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論