MonteCarlo蒙特卡洛法簡介_第1頁
MonteCarlo蒙特卡洛法簡介_第2頁
MonteCarlo蒙特卡洛法簡介_第3頁
MonteCarlo蒙特卡洛法簡介_第4頁
MonteCarlo蒙特卡洛法簡介_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Monte Carlo Simulation 簡介1概述蒙特卡羅(Monte Carlo)方法,或稱計算機隨機模擬方法或隨機抽樣方法或統(tǒng)計試驗方法 ,屬于計算數(shù)學的一個分支。是一種基于“隨機數(shù)”的計算方法。2起源Monte Carlo方法的基本思想很早以前就被人們所發(fā)現(xiàn)和利用。早在17世紀,人們就知道用事件發(fā)生的“頻率”來決定事件的“概率”。19世紀人們用投針試驗的方法來決定圓周率。 3成型這一方法成型于美國在第一次世界大戰(zhàn)進研制原子彈的“曼哈頓計劃”。 該計劃的主持人之一、數(shù)學家馮諾伊曼用馳名世界的賭城摩納哥的Monte Carlo來命名這種方法,為它蒙上了一層神秘色彩。 4發(fā)展本世紀40年

2、代電子計算機的出現(xiàn),特別是近年來高速電子計算機的出現(xiàn),使得用數(shù)學方法在計算機上大量、快速地模擬這樣的試驗成為可能。 5實質Monte Carlo 方法也稱為統(tǒng)計模擬方法,是二十世紀四十年代中期由于科學技術的發(fā)展和電子計算機的發(fā)明,而被提出的一種以概率統(tǒng)計理論為指導的一類非常重要的數(shù)值計算方法。是指使用隨機數(shù)(或更常見的偽隨機數(shù))來解決很多計算問題的方法。與它對應的是確定性算法。把一些復雜的東西用大量的模擬實驗來做,最后得到一些結論。6基本思想和原理基本思想:當所要求解的問題是某種事件出現(xiàn)的概率,或者是某個隨機變量的期望值時,它們可以通過某種“試驗”的方法,得到這種事件出現(xiàn)的頻率,或者這個隨機變

3、數(shù)的平均值,并用它們作為問題的解。 原理:抓住事物運動的幾何數(shù)量和幾何特征,利用數(shù)學方法來加以模擬,即進行一種數(shù)字模擬實驗。它是以一個概率模型為基礎,按照這個模型所描繪的過程,通過模擬實驗的結果,作為問題的近似解。7步驟可以把蒙特卡羅解題歸結為三個主要步驟:構造或描述概率過程;實現(xiàn)從已知概率分布抽樣;建立各種估計量8構造或描述概率過程對于本身就具有隨機性質的問題,主要是正確描述和模擬這個概率過程,對于本來不是隨機性質的確定性問題,比如計算定積分,就必須事先構造一個人為的概率過程,它的某些參量正好是所要求問題的解。即要將不具有隨機性質的問題轉化為隨機性質的問題。9實現(xiàn)從已知概率分布抽樣構造了概率

4、模型以后, 按照這個概率分布抽取隨機變量 (或隨機向量),這一般可以直接由軟件包調用,或抽取均勻分布的隨機數(shù)構造。這樣,就成為實現(xiàn)蒙特卡羅方法模擬實驗的基本手段,這也是蒙特卡羅方法被稱為隨機抽樣的原因。 10建立各種估計量 一般說來,構造了概率模型并能從中抽樣后,即實現(xiàn)模擬實驗后,我們就要確定一個隨機變量,作為所要求的問題的解,我們稱它為無偏估計。建立各種估計量,相當于對模擬實驗的結果進行考察和登記,從中得到問題的解。 11例子考慮平面上的一個邊長為1的正方形及其內部的一個形狀不規(guī)則的“圖形”,如何求出這個“圖形”的面積呢?Monte Carlo方法是這樣一種“隨機化”的方法:向該正方形“隨機

5、地”投擲N個點落于“圖形”內,則該“圖形”的面積近似為M/N。 12比喻可用民意測驗來作一個不嚴格的比喻。民意測驗的人不是征詢每一個登記選民的意見,而是通過對選民進行小規(guī)模的抽樣調查來確定可能的民意。其基本思想是一樣的。 13應用科技計算中的問題比這要復雜得多。但Monte Carlo 方法廣泛地應用于許多應用領域,如計算物理學 、粒子輸運計算、量子熱力學計算、量子化學、分子動力學與 。特別在金融計算中,各方法有不可取代的優(yōu)勢。14金融中的應用金融衍生產品(期權、期貨、掉期等)的定價及交易風險估算,問題的維數(shù)(即變量的個數(shù))可能高達數(shù)百甚至數(shù)千。對這類問題,難度隨維數(shù)的增加呈指數(shù)增長,這就是所

6、謂的“維數(shù)的災難”(Course Dimensionality),傳統(tǒng)的數(shù)值方法難以對付(即使使用速度最快的計算機)。 15Monte Carlo方法的優(yōu)勢Monte Carlo方法能很好地用來對付維數(shù)的災難,因為該方法的計算復雜性不再依賴于維數(shù)。以前那些本來是無法計算的問題現(xiàn)在也能夠計算。為提高方法的效率,科學家們提出了許多所謂的“方差縮減”技巧。Monte Carlo模擬適用于研究復雜體系。研究具有多得數(shù)不清的結構、狀態(tài)的體系,對此我們可以采用蒙特卡洛模擬,以統(tǒng)計的方法尋找出現(xiàn)幾率最高的結構、狀態(tài),或相應的有關數(shù)據(jù)。 16Monte Carlo 方法處理的問題Monte Carlo 方法處

7、理的問題可以分兩類確定性的數(shù)學問題 多重積分、求逆矩陣、解線性代數(shù)方程組、解積分方程、解某些偏微分方程邊值問題和計算代數(shù)方程組、計算微分算子的特征值等等 隨機性問題17方法在解決實際問題的時候應用Monte Carlo方法主要有兩部分工作:1、用此方法模擬某一過程時,需要產生各種概率分布的隨機變量。 2、用統(tǒng)計方法把模型的數(shù)字特征估計出來,從而得到實際問題的數(shù)值解。18用Monte Carlo 計算定積分考慮積分假定隨機變量具有密度函數(shù)則 19用Monte Carlo 計算定積分-抽取密度為e-x的隨機數(shù)X_1,X_n構造統(tǒng)計數(shù)則20用Monte Carlo 計算定積分-且即21用Monte

8、Carlo 計算定積分-例如 =1.9取(1.9)=0.96176 模擬結果不好!如果要達到0.001的精確度,要4X5302=1123600計算!22用Monte Carlo 計算定積分-例子說明分析和設計是重要的。重寫積分取兩個隨機數(shù)23用Monte Carlo 計算定積分-取8個隨機數(shù)大大改善了結果!24隨機數(shù)的產生隨機數(shù)是我們實現(xiàn)蒙特卡羅模擬的基本工具。隨機數(shù)的產生就是抽樣問題??梢杂梦锢矸椒óa生隨機數(shù),但價格昂貴,不能重復,使用不便。另一種方法是用數(shù)學遞推公式產生。這樣產生的序列,與真正的隨機數(shù)序列不同,所以稱為偽隨機數(shù),或偽隨機數(shù)序列。不過,經過多種統(tǒng)計檢驗表明,它與真正的隨機數(shù),

9、或隨機數(shù)序列具有相近的性質,因此可把它作為真正的隨機數(shù)來使用。25隨機數(shù)的取得如果你對隨機數(shù)有更高的要求,需要自己編輯“隨機數(shù)生成器”最簡單、最基本、最重要的一個概率分布是(0,1)上的均勻分布(或稱矩形分布) 例如在Matlab中,命令“rand()”將產生一個(0,1)中均勻分布的隨機數(shù)你可以根據(jù)需要給隨機數(shù)一個“種子”,以求不同的數(shù)26Matlab 的隨機數(shù)函數(shù)均勻分布R=unidrnd(N),-產生1到N間的均勻分布隨機數(shù)R=unidrnd(N,n,m),產生1到N間的均勻分布隨機數(shù)矩陣連續(xù)均勻分布R=unifrnd(A,B) -產生(A,B)間的均勻分布隨機數(shù)R=unifrnd(A,

10、B,m,n)產生(A,B)間的均勻分布隨機數(shù)矩陣27Matlab 的隨機數(shù)函數(shù)-正態(tài)分布隨機數(shù)R=normrnd(mu,sigma)R=normrnd(mu,sigma,m)R=normrnd(mu,sigma,m,n)特定分布隨機數(shù)發(fā)生器R=random(name,A1,A2,A3,m,n)28例a=random(Normal,0,1,3,2)a= .-0.4326 0.2877 -1.6656 -1.1465 0.1253 1.190929精確性由于Monte Carlo 方法的隨機性,精確性建立在大量的重復模擬上,最后去平均值。 對確定值的計算,要估計出樣本的個數(shù)與精確度之間的關系。對隨

11、機過程的模擬,有置信區(qū)域的估算等30方差削減技術對偶變量技術(適用正態(tài)分布函數(shù)) 取一組隨機數(shù)Z_i,可得模擬值C_i ,i=1,2,.n估計值為期平均C再取Z_i 的對偶Z_i=-Z_i,再生成估計值C然后去新的平均值C*=(C+C)/2則varC*=1/2varC+1/2cov(C,C) 1/2varC+該技術使計算更穩(wěn)定31一個例子問題 下圖是一個中子穿過用于中子屏蔽的鉛墻示意圖。鉛墻的高度遠大于左右厚度。設中子是垂直由左端進入鉛墻,在鉛墻中運行一個單位距離然后與一個鉛原子碰撞。碰撞后,任意改變方向,并繼續(xù)運行一個單位后與另一個鉛原子碰撞。這樣下去,如果中子在鉛墻里消耗掉所有的能量或者從

12、左端逸出就被視為中子被鉛墻擋住,如果中子穿過鉛墻由右端逸出就視為中子逸出。如果鉛墻厚度為5個單位,中子運行7個單位后能量耗盡,求中子逸出的幾率。 x這個問題并不復雜,但不容易找到一個解析表達式。而用模擬的方法求解卻可以有滿意的結果。32一個例子 - 這個問題并不復雜,但不容易找到一個解析表達式。而用模擬的方法求解卻可以有滿意的結果。 33一個例子 -建模 下面我們給出這個問題的模擬程序。我們關心的是一次碰撞后,中子在x軸方向行進了多少,所以行進方向是正負的結果是一樣的,我們就只考慮是正的情形。由于中子運行的方向是隨機的,我們用計算機抽取在0到間均衡分布的隨機數(shù),模擬1000000個中子在鉛墻里

13、行進的情形,看看這些中子與鉛原子碰撞7次后,有多少超過了鉛墻的右端。34一個例子 -n=1000000;m=0;t=1;for i=1:n x=1; for k=1:7 ang=pi*rand; x=x+cos(ang); if x5 & t=1 l=1; else l=0; end m=m+l; t=1;endm/n35一個例子 -解模 我們運行程序得出逸出鉛墻的中子的可能性約為1.5%。應用 有了這個數(shù)字,我們可以報告安全部門,如果數(shù)字不能達到安全要求,我們則要加厚鉛墻。36Monte Carlo 模擬二叉樹期權定價 二叉樹定價模型是從構造好的二叉樹中隨機選擇一條路徑樣本,從二叉樹的末端開

14、始倒推計算出衍生證券的價格,但是采用了Monte Carlo后,是順著二叉樹往后計算的。 基本方法: 在第一個節(jié)點(根節(jié)點),隨機產生一個0到1間的隨機數(shù),如果這個數(shù)小于p,就選擇當前的上升分支,反之選擇下降分支。這樣就產生了一個新節(jié)點,繼續(xù)上面的過程,直到二叉樹的末端。一條路徑產生了,衍生證券的最終價值就可以計算出來了(可以看作是全部可能終值集合中的一個隨機樣本),這樣完成了第一次模擬。更多的樣本路徑得到更多的樣本終值。進行多次模擬,用平均值來估計衍生證券的價格37Monte Carlo 模擬連續(xù)過程的歐式期權定價歐式期權定價的期望公式為如果標的資產服從幾何布朗運動則風險中性測度下,標的資產的過程為38Monte Carlo 模擬連續(xù)過程的歐式期權定價-所以Call Option 到期日的現(xiàn)金流為抽一個正態(tài)分布的隨機數(shù),算得上式再貼現(xiàn),就可以得到一個結果重復上面的過程(如計算10000次) 將所有的結果取平均39附表:Matlab隨機數(shù)生成器betarnd貝塔分布 binornd 二項分布chi2rnd卡方分布

溫馨提示

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

評論

0/150

提交評論