資源描述:
《隨機(jī)模擬與實(shí)驗(yàn)last》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、隨機(jī)模擬與實(shí)驗(yàn)隨機(jī)模擬的基本方法又稱(chēng)為蒙特卡羅(MonteCarlo)方法。是Velleman與VonNeumann等人在20世紀(jì)40年代為研制核武器提出來(lái)的,已大量地運(yùn)用于計(jì)算機(jī)仿真試驗(yàn)。隨機(jī)模擬的典型步驟:1、根據(jù)問(wèn)題構(gòu)建模擬系統(tǒng)2、仿真系統(tǒng)中各種分布的隨機(jī)變量3、運(yùn)行模擬系統(tǒng),進(jìn)行統(tǒng)計(jì)測(cè)量4、分析數(shù)據(jù),輸出結(jié)果主要工具基本工具:C、C++等編程模擬、matlab網(wǎng)絡(luò)模擬:OPNETModeler、NS2:大型網(wǎng)絡(luò)仿真CASSAP:數(shù)字信號(hào)處理;SPW:電子系統(tǒng)1布豐(Buffon)投針試驗(yàn)例子
2、:布豐(Buffon)投針試驗(yàn)將一根長(zhǎng)為l的細(xì)針隨機(jī)地投擲于標(biāo)有無(wú)數(shù)平行線的平面上,假定平行線間距為2l,則針與平行線相交的概率為1/π。lΘBDBB2lO2隨機(jī)數(shù)及其產(chǎn)生定義:如果一個(gè)實(shí)數(shù)列{ui}與均勻分布的獨(dú)立隨機(jī)變量序列{Ui}的樣本序列具有相同的統(tǒng)計(jì)特性,則稱(chēng)之為隨機(jī)的,該數(shù)列中的各個(gè)數(shù)稱(chēng)為均勻分布隨機(jī)數(shù),簡(jiǎn)稱(chēng)隨機(jī)數(shù)(RandomNumber)。隨機(jī)數(shù)的產(chǎn)生有三種方法:1)將已有的隨機(jī)數(shù)存表,需要時(shí)直接使用:美國(guó)蘭德公司在1950年曾將100萬(wàn)個(gè)在(0,1)區(qū)間內(nèi)的實(shí)數(shù)存入計(jì)算機(jī)外存儲(chǔ)器,
3、以便在仿真過(guò)程中進(jìn)行隨機(jī)調(diào)用。2)將計(jì)算機(jī)連接到物理設(shè)備(如噪聲源)上獲得隨機(jī)數(shù)流。(隨機(jī)性和均勻性最好,但產(chǎn)生過(guò)程太復(fù)雜,未能得到推廣。)3)通過(guò)數(shù)學(xué)算法產(chǎn)生隨機(jī)數(shù)(偽隨機(jī)數(shù))。這種方法容易與計(jì)算機(jī)結(jié)合,因而得到廣泛的應(yīng)用。3偽隨機(jī)數(shù)偽隨機(jī)數(shù)的產(chǎn)生:用戶(hù)只需給定一個(gè)初始的隨機(jī)數(shù)(種子值),調(diào)用該算法,即可按某個(gè)固定的公式計(jì)算出下一個(gè)“隨機(jī)”數(shù)。隨后,以新產(chǎn)生出來(lái)的“隨機(jī)”數(shù)作為種子,再計(jì)算出新的“隨機(jī)”數(shù)。重復(fù)調(diào)用該算法即可產(chǎn)生出一系列的“隨機(jī)”數(shù),以滿(mǎn)足系統(tǒng)仿真的需要。偽隨機(jī)數(shù)本質(zhì)上不是隨機(jī)的。
4、但只要計(jì)算公式選擇得當(dāng),通過(guò)比較嚴(yán)格地統(tǒng)計(jì)檢驗(yàn),仍然可以產(chǎn)生出一系列近似于U(0,1)分布并且相對(duì)獨(dú)立的隨機(jī)數(shù)流,這種隨機(jī)數(shù)流對(duì)于大多數(shù)仿真模型,是能滿(mǎn)足需要的。因此,仍然是目前廣泛應(yīng)用的工程方法。4偽隨機(jī)數(shù)的算法偽隨機(jī)數(shù)是按照一定的計(jì)算公式產(chǎn)生的一列數(shù),主要借助于如下的遞推公式:un=f(un-1,un-2,…,un-k)該公式(或算法)也稱(chēng)為隨機(jī)數(shù)發(fā)生器(RNG)。常用的偽隨機(jī)數(shù)的算法有:1)平方取中法(VonNeumann40年代發(fā)明)2)乘法取中法3)線性同余法:簡(jiǎn)單、實(shí)用偽隨機(jī)數(shù)發(fā)生器的特
5、點(diǎn):1)產(chǎn)生的隨機(jī)數(shù)序列具有循環(huán)周期性??梢宰C明,任何產(chǎn)生偽隨機(jī)數(shù)的算法總會(huì)進(jìn)入循環(huán),這樣為了保證隨機(jī)數(shù)序列不產(chǎn)生重復(fù)的數(shù)據(jù),就要求循環(huán)的周期足夠長(zhǎng)。2)算法過(guò)程具有再現(xiàn)性:在初始化時(shí),如果賦予相同的種子值,將產(chǎn)生完全相同的隨機(jī)數(shù)序列。5偽隨機(jī)數(shù)的算法(續(xù))線性同余法1)設(shè)置y0,即設(shè)置種子2)yn=kyn-1(modN),un=yn/N三組常見(jiàn)的參數(shù)N=1010,k=7,周期≈5×107(IBM隨機(jī)數(shù)發(fā)生器)N=231,k=216+3,周期≈5×108(ran0)N=231-1,k=75,周期≈2
6、×1096一般隨機(jī)數(shù)的產(chǎn)生方法大部分計(jì)算機(jī)語(yǔ)言都提供了產(chǎn)生0-1間隔均勻分布隨機(jī)數(shù)的標(biāo)準(zhǔn)函數(shù)或方法:C語(yǔ)言中的rand函數(shù),VB中的randum函數(shù),java語(yǔ)言中的Randnum類(lèi)。由均勻分布的隨機(jī)數(shù)可構(gòu)造出任一分布F(x)的隨機(jī)數(shù),最基本的方法是逆變換法:7一般隨機(jī)數(shù)的產(chǎn)生方法(續(xù))例如:利用變換法產(chǎn)生指數(shù)分布隨機(jī)數(shù)的方法。因此,X的模擬方法為1)產(chǎn)生均勻分布隨機(jī)數(shù){ui};2)計(jì)算指數(shù)分布隨機(jī)數(shù):xi=-lnui/λ8泊松分布隨機(jī)變量的產(chǎn)生方法從泊松分布的分布律可知,采用前述方法很不適用。由于
7、因此,采用遞推法構(gòu)成泊松分布:1)產(chǎn)生均勻分布隨機(jī)數(shù);2)3)若u
8、擇“保存”選擇結(jié)果保存的目錄輸入保存結(jié)果的文件名,必須為.bmp文件選擇“保存”1245312實(shí)驗(yàn)平臺(tái)介紹實(shí)驗(yàn)平臺(tái)包含的源文件StdAfx.cpp:VC工程自帶文件,不能修改random.cpp和random.h:工程主文件,不能修改Scope.cpp和Scope.h:畫(huà)圖程序,不能修改randomDlg.cpp和randomDlg.h:主界面程序,包括對(duì)各個(gè)按鈕的動(dòng)作的響應(yīng),還包括對(duì)各種隨機(jī)變量的輸入?yún)?shù)的設(shè)定MyRand.cpp和MyRand.h:各種分布的隨機(jī)變