蒙特卡洛法-算法.ppt

蒙特卡洛法-算法.ppt

ID:55666062

大?。?46.50 KB

頁(yè)數(shù):19頁(yè)

時(shí)間:2020-05-23

蒙特卡洛法-算法.ppt_第1頁(yè)
蒙特卡洛法-算法.ppt_第2頁(yè)
蒙特卡洛法-算法.ppt_第3頁(yè)
蒙特卡洛法-算法.ppt_第4頁(yè)
蒙特卡洛法-算法.ppt_第5頁(yè)
資源描述:

《蒙特卡洛法-算法.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在PPT專區(qū)-天天文庫(kù)

1、《程序設(shè)計(jì)實(shí)踐》程序設(shè)計(jì)方法之蒙特卡羅(MonteCarlo)法MonteCarlo法蒙特卡羅方法(MonteCarlomethod),也稱統(tǒng)計(jì)模擬方法一種以概率統(tǒng)計(jì)理論為指導(dǎo)的一類非常重要的數(shù)值計(jì)算方法。是指使用隨機(jī)數(shù)(或更常見(jiàn)的偽隨機(jī)數(shù))來(lái)解決很多計(jì)算問(wèn)題的方法基本思想:當(dāng)所求解問(wèn)題是某種隨機(jī)事件出現(xiàn)的概率,或者是某個(gè)隨機(jī)變量的期望值時(shí),通過(guò)某種“實(shí)驗(yàn)”的方法,以這種事件出現(xiàn)的頻率估計(jì)這一隨機(jī)事件的概率,或者得到這個(gè)隨機(jī)變量的某些數(shù)字特征,并將其作為問(wèn)題的解MonteCarlo法簡(jiǎn)介MonteCarlo方法的基本思想很早以前就被人

2、們所發(fā)現(xiàn)和利用。早在17世紀(jì),人們就知道用事件發(fā)生的“頻率”來(lái)決定事件的“概率”。19世紀(jì)人們用投針試驗(yàn)的方法來(lái)決定圓周率π。本世紀(jì)40年代計(jì)算機(jī)的出現(xiàn)、特別是近年來(lái)高速計(jì)算機(jī)的出現(xiàn),使得用數(shù)學(xué)方法在計(jì)算機(jī)上大量、快速地模擬這樣的試驗(yàn)成為可能。使用蒙特卡羅方法估算π值.放置30000個(gè)隨機(jī)點(diǎn)后,π的估算值與真實(shí)值相差0.07%.蒙特卡洛方法應(yīng)用用蒙特卡洛方法模擬某一過(guò)程時(shí),需要產(chǎn)生各種概率分布的隨機(jī)變量。用統(tǒng)計(jì)方法把模型的數(shù)字特征估計(jì)出來(lái),從而得到實(shí)際問(wèn)題的數(shù)值解。應(yīng)用舉例考慮平面上的一個(gè)邊長(zhǎng)為1的正方形及其內(nèi)部的一個(gè)形狀不規(guī)則的“圖

3、形”,如何求出這個(gè)“圖形”的面積呢?MonteCarlo方法是這樣一種“隨機(jī)化”的方法:向該正方形“隨機(jī)地”投擲M個(gè)點(diǎn),其中有N個(gè)點(diǎn)落于“圖形”內(nèi),則該“圖形”的面積近似為:N/M??萍加?jì)算中的問(wèn)題比這要復(fù)雜得多。比如金融衍生產(chǎn)品(期權(quán)、期貨、掉期等)的定價(jià)及交易風(fēng)險(xiǎn)估算,問(wèn)題的維數(shù)(即變量的個(gè)數(shù))可能高達(dá)數(shù)百甚至數(shù)千。對(duì)這類問(wèn)題,難度隨維數(shù)的增加呈指數(shù)增長(zhǎng),這就是所謂的“維數(shù)的災(zāi)難”,傳統(tǒng)的數(shù)值方法難以對(duì)付(即使使用速度最快的計(jì)算機(jī))。MonteCarlo方法能很好地用來(lái)對(duì)付維數(shù)的災(zāi)難,因?yàn)樵摲椒ǖ挠?jì)算復(fù)雜性不再依賴于維數(shù)。以前那些

4、本來(lái)是無(wú)法計(jì)算的問(wèn)題現(xiàn)在也能夠計(jì)算量。為提高方法的效率,科學(xué)家們提出了許多所謂的“方差縮減”技巧。C語(yǔ)言中偽隨機(jī)數(shù)生成函數(shù)rand()產(chǎn)生隨機(jī)數(shù)的函數(shù),它可生成0~RAND_MAX內(nèi)的整數(shù)RAND_MAX在()中聲明,32,767srand(unsigndeint)設(shè)置產(chǎn)生隨機(jī)數(shù)rand函數(shù)產(chǎn)生隨機(jī)數(shù)的種子在調(diào)用rand函數(shù)之前調(diào)用srand設(shè)置種子,如果不調(diào)用rand使用一個(gè)默認(rèn)值作為種子舉例:產(chǎn)生10個(gè)隨機(jī)整數(shù)#include//預(yù)編譯命令#include

5、//預(yù)編譯命令usingnamespacestd;intmain(){intk=0;//定義整型變量kfor(k=0;k<10;k++)//循環(huán)輸出隨機(jī)數(shù)cout<

6、”值返回一個(gè)隨機(jī)數(shù)(在0到32,767之間);3、根據(jù)需要多次調(diào)用rand(),從而不斷地得到新的隨機(jī)數(shù);4、無(wú)論什么時(shí)候,你都可以給srand()提供一個(gè)新的“種子”,從而進(jìn)一步“隨機(jī)化"rand()的輸出結(jié)果。問(wèn)題:如果你每次調(diào)用srand()時(shí)都提供相同的“種子”值,那么你將會(huì)得到相同的“隨機(jī)”數(shù)序列。一種簡(jiǎn)單而有效的辦法來(lái)產(chǎn)生一個(gè)相當(dāng)隨機(jī)的“種子”值——當(dāng)前的時(shí)間值。舉例:產(chǎn)生10個(gè)隨機(jī)整數(shù)#include//預(yù)編譯命令#include//預(yù)編譯命令#include//預(yù)編譯

7、命令usingnamespacestd;intmain(){intk=0;//定義整型變量ksrand((unsignedint)time(NULL));//設(shè)置種子for(k=0;k<10;k++)//循環(huán)輸出隨機(jī)數(shù)cout<

8、de舉例:std::default_random_enginestd::normal_distribution可以產(chǎn)生正態(tài)分布的隨機(jī)小數(shù),可指定均值和方差課后練習(xí)產(chǎn)生n個(gè)隨機(jī)小數(shù)(題庫(kù)作業(yè))蒙特卡洛法舉例

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。