版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1隨機模擬與實驗隨機模擬的基本方法又稱為蒙特卡羅(Monte Carlo)方法。是Velleman與Von Neumann等人在20世紀40年代為研制核武器提出來的,已大量地運用于計算機仿真試驗。隨機模擬的典型步驟:1、根據(jù)問題構建模擬系統(tǒng) 2、仿真系統(tǒng)中各種分布的隨機變量3、運行模擬系統(tǒng),進行統(tǒng)計測量 4、分析數(shù)據(jù),輸出結果主要工具基本工具:C、C+等編程模擬、matlab網(wǎng)絡模擬:OPNET Modeler、NS2:大型網(wǎng)絡仿真2布豐(Buffon)投針試驗例子:布豐(Buffon)投針試驗 將一根長為l的細針隨機地投擲于標有無數(shù)平行線的平面上,假定平行線間距為2l,則針與平行線相交的概率
2、為1/。lBDBB2lO3布豐(Buffon)投針試驗(續(xù))例子:利用布豐投針試驗求圓周率。 按照上面的討論,利用大數(shù)定律,只要重復足夠多的次數(shù)可以近似求得4隨機數(shù)及其產(chǎn)生定義:如果一個實數(shù)列ui與均勻分布的獨立隨機變量序列Ui的樣本序列具有相同的統(tǒng)計特性,則稱之為隨機的,該數(shù)列中的各個數(shù)稱為均勻分布隨機數(shù),簡稱隨機數(shù)(Random Number)。隨機數(shù)的產(chǎn)生有三種方法: 1)將已有的隨機數(shù)存表,需要時直接使用: 美國蘭德公司在1950年曾將100萬個在(0,1)區(qū)間內的實數(shù)存入計算機外存儲器,以便在仿真過程中進行隨機調用。2)將計算機連接到物理設備(如噪聲源)上獲得隨機數(shù)流。(隨機性和均勻
3、性最好,但產(chǎn)生過程太復雜,未能得到推廣。)3)通過數(shù)學算法產(chǎn)生隨機數(shù)(偽隨機數(shù))。這種方法容易與計算機結合,因而得到廣泛的應用。 5偽隨機數(shù)偽隨機數(shù)的產(chǎn)生:用戶只需給定一個初始的 隨機數(shù)(種子值),調用該算法,即可按某個固定的公式計算出下一個“隨機”數(shù)。隨后,以新產(chǎn)生出來的“隨機”數(shù)作為種子,再計算出新的“隨機”數(shù)。重復調用該算法即可產(chǎn)生出一系列的“隨機”數(shù),以滿足系統(tǒng)仿真的需要。 偽隨機數(shù)本質上不是隨機的。但只要計算公式選擇得當,通過比較嚴格地統(tǒng)計檢驗,仍然可以產(chǎn)生出一系列近似于U(0,1)分布并且相對獨立的隨機數(shù)流,這種隨機數(shù)流對于大多數(shù)仿真模型,是能滿足需要的。因此,仍然是目前廣泛應用的
4、工程方法。6偽隨機數(shù)的算法偽隨機數(shù)是按照一定的計算公式產(chǎn)生的一列數(shù),主要借助于如下的遞推公式: un=f(un-1,un-2,un-k)該公式(或算法)也稱為隨機數(shù)發(fā)生器(RNG)。常用的偽隨機數(shù)的算法有:1)平方取中法(Von Neumann 40年代發(fā)明)2)乘法取中法 3)線性同余法:簡單、實用偽隨機數(shù)發(fā)生器的特點:1)產(chǎn)生的隨機數(shù)序列具有循環(huán)周期性??梢宰C明,任何產(chǎn)生偽隨機數(shù)的算法總會進入循環(huán),這樣為了保證隨機數(shù)序列不產(chǎn)生重復的數(shù)據(jù),就要求循環(huán)的周期足夠長。2)算法過程具有再現(xiàn)性:在初始化時,如果賦予相同的種子值,將產(chǎn)生完全相同的隨機數(shù)序列。7偽隨機數(shù)的算法(續(xù))線性同余法1)設置y0
5、,即設置種子2)yn=kyn-1(mod N),un=yn/N三組常見的參數(shù)N=1010,k=7,周期5107(IBM隨機數(shù)發(fā)生器)N=231,k=216+3,周期5108(ran0) N=231-1,k=75,周期21098一般隨機數(shù)的產(chǎn)生方法大部分計算機語言都提供了產(chǎn)生01間隔均勻分布隨機數(shù)的標準函數(shù)或方法:C語言中的rand函數(shù),VB中的randum函數(shù), java語言中的Randnum類。由均勻分布的隨機數(shù)可構造出任一分布F(x)的隨機數(shù),最基本的方法是逆變換法:9一般隨機數(shù)的產(chǎn)生方法(續(xù))例如:利用變換法產(chǎn)生指數(shù)分布隨機數(shù)的方法。因此,X的模擬方法為 1)產(chǎn)生均勻分布隨機數(shù)ui; 2
6、)計算指數(shù)分布隨機數(shù):xi=-ln ui /10泊松分布隨機變量的產(chǎn)生方法從泊松分布的分布律可知,采用前述方法很不適用。由于因此,采用遞推法構成泊松分布 :1)產(chǎn)生均勻分布隨機數(shù)u;2)3)若uF,令X=i,停止;4)5)轉向3)。11正態(tài)分布隨機變量的產(chǎn)生方法標準正態(tài)隨機變量的分布函數(shù) 的反函數(shù)不存在顯式,因此也不能用逆變法產(chǎn)生。故采用如下方法:設UiU(0,1),i=1,2,n,且相互獨立,由中心極限定理可知,當n較大時12實驗平臺介紹產(chǎn)生各種分布的隨機數(shù)統(tǒng)計并顯示各種分布的概率密度或分布律顯示均值實驗自相關序列并顯示Rx將顯示的結果保存為*.bmp文件波形顯示區(qū)域13實驗執(zhí)行步驟選擇執(zhí)行
7、的實驗內容在出現(xiàn)正確結果后,選擇“保存”選擇結果保存的目錄輸入保存結果的文件名,必須為*.bmp文件選擇“保存”1245314實驗平臺介紹實驗平臺包含的源文件StdAfx.cpp:VC工程自帶文件,不能修改random.cpp和random.h:工程主文件,不能修改Scope.cpp和Scope.h :畫圖程序,不能修改randomDlg.cpp和randomDlg.h:主界面程序,包括對各個按鈕的動作的響應,還包括對各種隨機變量的輸入?yún)?shù)的設定MyRand.cpp和MyRand.h:各種分布的隨機變量的產(chǎn)生程序,實驗過程中主要完成MyRand.cpp中的函數(shù)即可15MyRand.cpp的函數(shù)
8、unsigned int CMyRand:MyRand(unsigned int seed)函數(shù)功能:采用線性同余法,根據(jù)輸入的種子數(shù)產(chǎn)生一個偽隨機數(shù),如果種子不變,則可以重復調用該函數(shù)產(chǎn)生一個偽隨機序列參數(shù): seed作為調用函數(shù)的輸入種子,同一個偽隨機數(shù)序列可采用同一個seed實現(xiàn)思路:利用CMyRand類中定義的全局變量:S, K, N, Y。其中K和N為算法參數(shù),S用于保存種子數(shù),Y為產(chǎn)生的隨機數(shù)注意事項:Y的初值的計算16MyRand.cpp的函數(shù)double CMyRand:AverageRandom (double min,double max)函數(shù)功能:產(chǎn)生一個在minmax范
9、圍內精度為4位小數(shù)的平均分布的隨機數(shù)參數(shù):min和max代表該均勻隨機變量的取值范圍,精確到小數(shù)點后4位。該參數(shù)在randomDlg.cpp中OnAverage ()和OnAverageStat()函數(shù)中已經(jīng)設置17MyRand.cpp的函數(shù)double CMyRand:NormalRandom(double miu, double sigma, double min, double max)函數(shù)功能:產(chǎn)生均值為miu,方差為sigma的正態(tài)分布的隨機數(shù)參數(shù): miu為均值, sigma為方差, min和max 為均勻分布隨機變量的取值范圍。 所有參數(shù)在randomDlg.cpp的OnNorm
10、al()和OnNormalStat()函數(shù)中設置。實現(xiàn)思路:利用中心極限定理,通過多個獨立的均勻隨機變量之和構成正態(tài)隨機變量18MyRand.cpp的函數(shù)double CMyRand:ExpRandom(double lambda, double min, double max)函數(shù)功能:產(chǎn)生參數(shù)為lambda的指數(shù)分布的隨機數(shù)參數(shù): lambda為指數(shù)分布的參數(shù), min和max 為均勻分布隨機變量的取值范圍。所有參數(shù)在randomDlg.cpp的OnExp ()和OnExpStat ()函數(shù)中設置。實現(xiàn)思路:利用逆變換法19MyRand.cpp的函數(shù)unsigned int CMyRand
11、:PoisonRandom (double lambda, double min, double max)函數(shù)功能:產(chǎn)生參數(shù)為lambda的產(chǎn)生泊松分布的隨機數(shù)參數(shù): lambda為泊松分布的參數(shù), min和max 為均勻分布隨機變量的取值范圍。所有參數(shù)在randomDlg.cpp的OnPoison ()和OnPoisonStat ()函數(shù)中設置。實現(xiàn)思路:利用遞歸法20MyRand.cpp的函數(shù)double CMyRand:Ex(void)函數(shù)功能:計算任意分布的隨機過程的均值。本函數(shù)在randomDlg.cpp的OnSelf()函數(shù)中調用。21MyRand.cpp的函數(shù)double* CMyRand:Rx(double lambda, int points)函數(shù)功能:計算泊松過程的自相關序列參數(shù): lambda為泊松過程的參數(shù), points為輸入隨機數(shù)序列的個數(shù)。所有參數(shù)在randomDlg.cpp的OnSelfStat () 函數(shù)中設置。返回:函數(shù)返回一個動態(tài)分配的數(shù)組頭指針,產(chǎn)生的Rx序列保存于該數(shù)組中注意:不要在本函數(shù)中釋放該數(shù)組的內存22randomDlg.cpp注意事項可以修改本程序中調用的MyRand.cpp中函數(shù)的輸入?yún)?shù),以觀測參數(shù)變化后的效果。但是,不要修改其他與MyRand.cpp無關的代碼,以免出現(xiàn)錯誤!23第二次實驗
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南泥灣鎮(zhèn)污水處理站建設工程項目可行性實施報告
- 采購員工年終總結報告大全10篇
- 區(qū)域飲料酒承包合同范本
- 商鋪租賃合同房租漲幅標準
- 雪景圖教案8篇
- 商業(yè)保齡球館建造協(xié)議
- 展覽館公共服務區(qū)清潔協(xié)議
- 國際學校建設級配碎石鋪設合同
- 化工生產(chǎn)大院租賃合同
- 博物館講解員錄用合同模板
- 第01講 正數(shù)和負數(shù)、有理數(shù)-人教版新七年級《數(shù)學》暑假自學提升講義(解析版)
- 信息系統(tǒng)部署與運維-題庫帶答案
- 婚姻心理學解讀包含內容
- DZ/T 0462.3-2023 礦產(chǎn)資源“三率”指標要求 第3部分:鐵、錳、鉻、釩、鈦(正式版)
- 備戰(zhàn)2024年高考英語考試易錯點12 名詞性從句(4大陷阱)(解析版)
- 公務員歷史常識100題及一套完整答案
- 信息技術與高中英語教學融合的途徑
- 花籃拉桿式懸挑腳手架.計算書及相關圖紙
- 職業(yè)道德與法律說課稿市公開課一等獎省賽課微課金獎課件
- 《電力建設施工技術規(guī)范 第2部分:鍋爐機組》DLT 5190.2
- 史學概論完整版本
評論
0/150
提交評論