蒙特卡羅隨機(jī)數(shù)_第1頁(yè)
蒙特卡羅隨機(jī)數(shù)_第2頁(yè)
蒙特卡羅隨機(jī)數(shù)_第3頁(yè)
蒙特卡羅隨機(jī)數(shù)_第4頁(yè)
蒙特卡羅隨機(jī)數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、隨機(jī)數(shù)的定義及產(chǎn)生方法 偽隨機(jī)數(shù)產(chǎn)生偽隨機(jī)數(shù)的乘同余方法產(chǎn)生偽隨機(jī)數(shù)的乘加同余方法產(chǎn)生偽隨機(jī)數(shù)的其他方法偽隨機(jī)數(shù)序列的均勻性和獨(dú)立性2.2 MC隨機(jī)數(shù)1隨機(jī)數(shù)的定義及性質(zhì)隨機(jī)數(shù)表物理方法1.MC隨機(jī)數(shù)的定義及產(chǎn)生方法2什么是隨機(jī)數(shù)?單個(gè)的數(shù)字不是隨機(jī)數(shù)是指一個(gè)數(shù)列,其中的每一個(gè)體稱為隨機(jī)數(shù),其值與數(shù)列中的其它數(shù)無(wú)關(guān);在一個(gè)均勻分布的隨機(jī)數(shù)中,每一個(gè)體出現(xiàn)的概率是均等的;例如:在0,1區(qū)間上均勻分布的隨機(jī)數(shù)序列中,0.00001與0.5出現(xiàn)的機(jī)會(huì)均等1.1 MC隨機(jī)數(shù)定義及特性 由具有已知分布的總體中抽取簡(jiǎn)單子樣,在蒙特卡羅方法中占有非常重要的地位??傮w和子樣的關(guān)系,屬于一般和個(gè)別的關(guān)系,或者說(shuō)

2、屬于共性和個(gè)性的關(guān)系。由具有已知分布的總體中產(chǎn)生簡(jiǎn)單子樣,就是由簡(jiǎn)單子樣中若干個(gè)性近似地反映總體的共性。 隨機(jī)數(shù)是實(shí)現(xiàn)由已知分布抽樣的基本量,在由已知分布的抽樣過(guò)程中,將隨機(jī)數(shù)作為已知量,用適當(dāng)?shù)臄?shù)學(xué)方法可以由它產(chǎn)生具有任意已知分布的簡(jiǎn)單子樣。 3 在連續(xù)型隨機(jī)變量的分布中,最簡(jiǎn)單而且最基本的分布是單位均勻分布。由該分布抽取的簡(jiǎn)單子樣稱,隨機(jī)數(shù)序列,其中每一個(gè)體稱為隨機(jī)數(shù)。 單位均勻分布也稱為0,1上的均勻分布,其分布密度函數(shù)為: 分布函數(shù)為 :1.1 MC隨機(jī)數(shù)定義及特性4 由于隨機(jī)數(shù)在蒙特卡羅方法中占有極其重要的位置,我們用專門的符號(hào)表示。由隨機(jī)數(shù)序列的定義可知,1,2,是相互獨(dú)立且具有相

3、同單位均勻分布的隨機(jī)數(shù)序列。也就是說(shuō),獨(dú)立性、均勻性是隨機(jī)數(shù)必備的兩個(gè)特點(diǎn)。 隨機(jī)數(shù)具有非常重要的性質(zhì):對(duì)于任意自然數(shù)s,由s個(gè)隨機(jī)數(shù)組成的s維空間上的點(diǎn)(n+1,n+2,n+s)在s維空間的單位立方體Gs上均勻分布,即對(duì)任意的ai, 如下等式成立:1.1 MC隨機(jī)數(shù)定義及特性5 其中P()表示事件發(fā)生的概率。反之,如果隨機(jī)變量序列1, 2對(duì)于任意自然數(shù)s,由s個(gè)元素所組成的s維空間上的點(diǎn)(n+1,n+s)在Gs上均勻分布,則它們是隨機(jī)數(shù)序列。 由于隨機(jī)數(shù)在蒙特卡羅方法中所處的特殊地位,它們雖然也屬于由具有已知分布的總體中產(chǎn)生簡(jiǎn)單子樣的問(wèn)題,但就產(chǎn)生方法而言,卻有著本質(zhì)上的差別。 1.1 MC

4、隨機(jī)數(shù)定義及特性6 為了產(chǎn)生隨機(jī)數(shù),可以使用隨機(jī)數(shù)表。隨機(jī)數(shù)表是由0,1,9十個(gè)數(shù)字組成,每個(gè)數(shù)字以0.1的等概率出現(xiàn),數(shù)字之間相互獨(dú)立。這些數(shù)字序列叫作隨機(jī)數(shù)字序列。如果要得到n位有效數(shù)字的隨機(jī)數(shù),只需將表中每n個(gè)相鄰的隨機(jī)數(shù)字合并在一起,且在最高位的前邊加上小數(shù)點(diǎn)即可。例如,某隨機(jī)數(shù)表的第一行數(shù)字為7634258910,要想得到三位有效數(shù)字的隨機(jī)數(shù)依次為0.763,0.425,0.891。 因?yàn)殡S機(jī)數(shù)表需在計(jì)算機(jī)中占有很大內(nèi)存,而且也難以滿足蒙特卡羅方法對(duì)隨機(jī)數(shù)需要量非常大的要求,因此,該方法不適于在計(jì)算機(jī)上使用。1.2 MC隨機(jī)數(shù)表7 用物理方法產(chǎn)生隨機(jī)數(shù)的基本原理是:利用某些物理現(xiàn)象,

5、在計(jì)算機(jī)上增加些特殊設(shè)備,可以在計(jì)算機(jī)上直接產(chǎn)生隨機(jī)數(shù)。這些特殊設(shè)備稱為隨機(jī)數(shù)發(fā)生器。用來(lái)作為隨機(jī)數(shù)發(fā)生器的物理源主要有兩種:一種是根據(jù)放射性物質(zhì)的放射性,另一種是利用計(jì)算機(jī)的固有噪聲。 一般情況下,任意一個(gè)隨機(jī)數(shù)在計(jì)算機(jī)內(nèi)總是用二進(jìn)制的數(shù)表示的: 其中i(i=1,2,m)或者為0,或者為1。 1.3 MC隨機(jī)數(shù)物理方法8 因此,利用物理方法在計(jì)算機(jī)上產(chǎn)生隨機(jī)數(shù),就是要產(chǎn)生只取0或1的隨機(jī)數(shù)字序列,數(shù)字之間相互獨(dú)立,每個(gè)數(shù)字取0或1的概率均為0.5。 用物理方法產(chǎn)生的隨機(jī)數(shù)序列無(wú)法重復(fù)實(shí)現(xiàn),不能進(jìn)行程序復(fù)算,給驗(yàn)證結(jié)果帶來(lái)很大困難。而且,需要增加隨機(jī)數(shù)發(fā)生器和電路聯(lián)系等附加設(shè)備,費(fèi)用昂貴。因此

6、,該方法也不適合在計(jì)算機(jī)上使用。1.3 MC隨機(jī)數(shù)物理方法90,1區(qū)間上均勻分布的隨機(jī)數(shù)是Monte Carlo模擬的基礎(chǔ):0,1均勻分布的隨機(jī)數(shù)的產(chǎn)生方法:利用一些具有內(nèi)在的隨機(jī)性的過(guò)程放射性衰變過(guò)程(radioactive decay);熱噪聲(thermal noise);宇宙線的到達(dá)時(shí)間(cosmic ray arrival);缺點(diǎn):模擬的結(jié)果不可再現(xiàn),使得模擬程序的找錯(cuò)困難利用事先制訂好的隨機(jī)數(shù)表缺點(diǎn):表的容量有限,不適合需要大量隨機(jī)數(shù)的應(yīng)用服從任意分布的隨機(jī)數(shù)序列可以用0,1區(qū)間均勻分布的隨機(jī)數(shù)序列作適當(dāng)?shù)淖儞Q或舍選后求得1.3 MC隨機(jī)數(shù)小結(jié)10偽隨機(jī)數(shù)偽隨機(jī)數(shù)存在的兩個(gè)問(wèn)題偽隨

7、機(jī)數(shù)的周期和最大容量 2 偽隨機(jī)數(shù)11 在計(jì)算機(jī)上產(chǎn)生隨機(jī)數(shù)最實(shí)用、最常見的方法是數(shù)學(xué)方法,即用如下遞推公式: 產(chǎn)生隨機(jī)數(shù)序列。對(duì)于給定的初始值1,2,k,確定n+k,=1,2,。經(jīng)常使用的是k=1的情況,其遞推公式為: 對(duì)于給定的初始值1,確定n+1,=, 2 偽隨機(jī)數(shù)12 用數(shù)學(xué)方法產(chǎn)生的隨機(jī)數(shù),存在兩個(gè)問(wèn)題:遞推公式和初始值1,2,k確定后,整個(gè)隨機(jī)數(shù)序列便被唯一確定。不滿足隨機(jī)數(shù)相互獨(dú)立的要求。由于隨機(jī)數(shù)序列是由遞推公式確定的,而在計(jì)算機(jī)上所能表示的0,1上的數(shù)又是有限的,因此,這種方法產(chǎn)生的隨機(jī)數(shù)序列就不可能不出現(xiàn)無(wú)限重復(fù)。一旦出現(xiàn)這樣的n,n (nDraw(); pad2-Draw

8、(); pad3-Draw(); TH1F * h1 = new TH1F(h1,h1,100,0.0,1.0); TH2F * h2 = new TH2F(h2,h2,100,0.0,1.0,100,0.0,1.0); TH3F * h3 = new TH3F(h3,h3,100,0.0,1.0,100,0.0,1.0,100,0.0,1.0);2 偽隨機(jī)數(shù)24 for(int i=0; i Fill(x); h2-Fill(x,y); h3-Fill(x,y,z); pad1-cd(); h1-Draw(); pad2-cd(); h2-Draw(); pad3-cd(); h3-Draw

9、(); 2 偽隨機(jī)數(shù)252 偽隨機(jī)數(shù)26如果取a=69069,將極大地改善結(jié)果2 偽隨機(jī)數(shù)271968年,Marsaglia對(duì)這一問(wèn)題進(jìn)行了研究,認(rèn)為:任何的乘同余產(chǎn)生器都存在這一問(wèn)題:在三維和三維以上的空間中,所產(chǎn)生的隨機(jī)數(shù)總是集聚在一些超平面上隨機(jī)數(shù)序列是關(guān)聯(lián)的對(duì)于32位的計(jì)算機(jī),在d-維空間中超平面的最大數(shù)目為d=3 2953d=4 566d=6 120d=10 41改進(jìn)措施:將遞推公式修改為特點(diǎn):1)需要兩個(gè)初始值(種子); 2)周期可大于m;2 偽隨機(jī)數(shù)28#include unsigned long seed0 = 9;unsigned long seed1 = 11;float

10、randac() const unsigned long a = 65539; const unsigned long b = 65539; unsigned long i2; unsigned long m = pow(2,31); i2 = (a * seed1 + b * seed0 ) % m; seed0 = seed1; seed1 = i2; return (float) i1/float(m);void SetSeed(unsigned long i0, unsigned long i1) seed0 = i0; seed1 = i1;2 偽隨機(jī)數(shù)29a=b=65539, se

11、ed0=9, seed1=112 偽隨機(jī)數(shù)30如何獲取0,1區(qū)間均勻分布的隨機(jī)數(shù)產(chǎn)生器:每一個(gè)Monte Carlo模擬程序軟件包都有自帶的產(chǎn)生器:Jetset(LUND Monte Carlo模擬系列):利用Marsaglia等所提出的算法,周期可達(dá)1043函數(shù)用法:r=rlu(idummy)Geant3(探測(cè)器模擬程序,F(xiàn)ORTRAN): 周期=1018Call grndm(vec*,len).利用CERN程序庫(kù):Y=rndm(x): 周期:5x108Y=rn32(dummy):乘同余法,a=69069,i0=65539Call ranmar(vec,len): 周期:1043Call r

12、anecu(vec,len,isq)2 偽隨機(jī)數(shù)31CLHEP(Class Library for High Energy Physics)中的隨機(jī)數(shù)產(chǎn)生器利用CLHEP中的隨機(jī)數(shù)產(chǎn)生器軟件包:2 偽隨機(jī)數(shù)32FORTRAN中使用隨機(jī)數(shù)產(chǎn)生器應(yīng)注意的問(wèn)題:在FORTRAN中,如果隨機(jī)數(shù)產(chǎn)生器是帶dummy變量的函數(shù):其中變量idum在函數(shù)中不使用,應(yīng)注意以下問(wèn)題:X=RAND(idum)FORTRAN編譯器在對(duì)程序進(jìn)行優(yōu)化時(shí):X=RAND(IDUM)+RAND(IDUM) X=2.0*RAND(IDUM)DO I=1,10 X=RAND(IDUM) END DOX=RAND(IDUM)DO I

13、=1,10 .END DO解決辦法:DO I=1,10 IDUM = IDUM +1 X=RAND(IDUM) END DO2 偽隨機(jī)數(shù)33 判斷偽隨機(jī)數(shù)序列是否滿足均勻和相互獨(dú)立的要求,要靠統(tǒng)計(jì)檢驗(yàn)的方法實(shí)現(xiàn)。對(duì)于偽隨機(jī)數(shù)的統(tǒng)計(jì)檢驗(yàn),一般包括兩大類:均勻性檢驗(yàn)和獨(dú)立性檢驗(yàn)。 六十年代初,人們開始用定性的方法研究偽隨機(jī)數(shù)序列的均勻性和獨(dú)立性問(wèn)題,簡(jiǎn)要敘述如下。2 偽隨機(jī)數(shù)均勻性和獨(dú)立性34偽隨機(jī)數(shù)的均勻性 這里只考慮偽隨機(jī)數(shù)序列1,2,n全體作為子樣時(shí)的均勻性問(wèn)題。其中n為偽隨機(jī)數(shù)序列的最大容量。 對(duì)于任意的0 x1,令Nn(x)表示偽隨機(jī)數(shù)序列1,2,n中適合不等式i x i=1,2,n 的

14、個(gè)數(shù),則 標(biāo)志偽隨機(jī)數(shù)序列1,2,n的均勻程度,稱為均勻偏度。2 偽隨機(jī)數(shù)均勻性和獨(dú)立性35 將偽隨機(jī)數(shù)序列1,2,n從小至大重新排列 并令 ,則由(n)的定義,容易證明 很明顯,對(duì)于固定的,(n)的值越小越好。它是描述偽隨機(jī)數(shù)序列均勻程度的基本量。對(duì)于任意隨機(jī)數(shù)序列,均有如下不等式成立: 當(dāng) 時(shí),所對(duì)應(yīng)的偽隨機(jī)數(shù)序列為最佳分布。2 偽隨機(jī)數(shù)均勻性和獨(dú)立性36 可以證明,偽隨機(jī)數(shù)序列為最佳分布的充要條件是它取遍序列 的所有值。 對(duì)于計(jì)算機(jī)上使用的乘同余方法,按照前面介紹的方法選取a、x1時(shí),所產(chǎn)生的偽隨機(jī)數(shù)序列的均勻偏度 對(duì)于乘加同余方法 對(duì)于部分偽隨機(jī)數(shù)的均勻性問(wèn)題通常用統(tǒng)計(jì)檢驗(yàn)方法檢驗(yàn)。 2 偽隨機(jī)數(shù)均勻性和獨(dú)立性37偽隨機(jī)數(shù)的獨(dú)立性 對(duì)于任意 ,令 表示(1,2), (2,3), (n,n+1)中適合不等式 的個(gè)數(shù),根據(jù)隨機(jī)變量間相互獨(dú)立的定義和頻率近似概率的方法,令 則(n)標(biāo)志偽隨機(jī)數(shù)序列1,2,n的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論