以概率和統計的理論、方法為基礎的一種計算方法,將所求解的問題同一定的概率模型相聯繫,用電子電腦實現統計類比或抽樣,以獲得問題的近似解,故又稱統計模擬法或統計試驗法。
蒙特卡羅是摩納哥的一個城市,以賭博聞名於世界。蒙特卡羅法借用這一城市的名稱是為瞭象徵性地表明該方法的概率統計的特點。
蒙特卡羅法作為一種計算方法,是由S.M.烏拉姆和J.馮·諾伊曼在20世紀40年代中葉為研製核武器的需要要而首先提出來的。在此之前,該方法的基本思想實際上早已被統計學傢所采用瞭。例如,早在17世紀,人們就知道瞭依頻數來決定概率的方法。
20世紀40年代中葉,出現瞭電子計算機,使得用數學方法模擬大量的試驗成為可能。另外,隨著科學技術的不斷發展,出現瞭越來越多的復雜而困難的問題,用通常的解析方法或數值方法都很難加以解決。蒙特卡羅法就是在這些情況下,作為一種可行的而且是不可缺少的計算方法被提出和迅速發展起來的。
基本原理 考慮一個射擊運動員的射擊成績G。令x表示彈著點到靶心的距離,g(x)表示得分,而f(x)表示該運動員的彈著點的分佈密度,則
![](/img3/7732.gif)
![](/img3/7733.gif)
假設x不是一維空間的點,而是一個S維空間的點(x1,x2,…,xs),則上述積分變為
![](/img3/7734.gif)
![](/img3/7735.gif)
蒙特卡羅法解題的一般過程是,首先構成一個概率空間;然後在該概率空間中確定一個隨機變量g(x),其數學期望
![](/img3/7736.gif)
![](/img3/7733.gif)
收斂性、誤差和費用 蒙特卡羅法的近似估計ĜN依概率1收斂於G的充分必要條件是隨機變量g(x)滿足
![](/img3/7737.gif)
![](/img3/7738.gif)
![](/img3/7739.gif)
![](/img3/7740.gif)
根據中心極限定理,隻要隨機變量g(x)具有有限的異於零的方差σ2,當N足夠大時便有蒙特卡羅法的誤差公式如下:
![](/img3/7741.gif)
![](/img3/7742.gif)
提高效率的方法
降低方差技巧 降低方差是提高蒙特卡羅法效率的重要途徑之一。考慮二重積分
![](/img3/7743.gif)
① 統計估計技巧 用f(x) 和fx(y)分別表示分佈f(x,y)的邊緣分佈和條件分佈。計算Eg的統計估計技巧是用y的統計估計量
![](/img3/7744.gif)
② 重要抽樣技巧 引入任意分佈密度函數f*(x,y),則
![](/img3/7745.gif)
③ 相關抽樣技巧 考慮一個新的、積分值已知的二重積分
![](/img3/7746.gif)
![](/img3/7747.gif)
![](/img3/7748.gif)
![](/img3/7749.gif)
降低方差的技巧還有對偶變數技巧、系統抽樣技巧和分層抽樣技巧等。對偶變數技巧的一般原理是,除瞭原確定的隨機變量外,尋找另一個(或多個)具有相同數學期望的隨機變量,使得它們之間盡量是對偶負相關的,然後用它們的線性組合作為蒙特卡羅法最終所確定的隨機變量。系統抽樣技巧的一般原理是,對問題中所出現的某些隨機變量按相應分佈所確定的比例進行抽樣,而不是進行隨機抽樣。分層抽樣技巧的一般原理是,對問題中所出現的某些隨機變量進行分層,盡量使所確定的隨機變量在各層中相對平穩,各層間的抽樣按相應分佈所確定的比例進行。
其他途徑 為瞭提高蒙特卡羅法的效率,除瞭簡單地降低方差外,還有為降低費用設計的分裂和輪盤賭技巧,為逐步降低方差而設計的多極抽樣技巧,為改善收斂速度而設計的擬蒙特卡羅法,為計算條件期望而設計的條件蒙特卡羅法等等。分裂和輪盤賭技巧的一般原理是,將x的積分區域分為重要和非重要兩部分,對於抽樣確定的X,當它屬於重要區域時,對相應的Y進行多次抽樣;當它屬於非重要區域時,隻有在賭獲勝時才對相應的Y進行抽樣。多級抽樣技巧的一般原理是,在進行某一級抽樣計算的同時,根據它所提供的抽樣觀察值,設計更好的抽樣技巧,用新設計的抽樣技巧進行新的一級的抽樣計算,依次類推,最後用各級的結果的線性組合作為蒙特卡羅法的近似估計。擬蒙特卡羅法與一般蒙特卡羅法的最大區別是,前者不像後者那樣要求子樣g(X1),g(X2),…,g(Xn)是相互獨立的。用一致分佈點列替代由隨機數組成的點列的所謂數論方法,實際上就是一種擬蒙特卡羅法。條件蒙特卡羅法的一般原理是,首先將條件期望問題轉化成為非條件期望問題,然後用解非條件期望的一般方法來解決條件期望計算問題。由於條件蒙特卡羅法中引進瞭任意分佈密度函數,因此,可以選取合適的分佈密度函數來實現進一步降低方差的目的。
優缺點 蒙特卡羅法的最大優點是,在方差存在的情況下,問題的維數不影響它的收斂速度,而隻影響它的方差;問題幾何形狀的復雜性對它的影響不大;它不象其他數值方法那樣對問題一定要進行離散化處理,而是常可以進行連續處理;它的程序結構簡單,所需計算機存貯單元比其他數值方法少,這對於高維問題差別尤其顯著。蒙特卡羅法的最大缺點是,對於維數少的問題它不如其他數值方法好;它的誤差是概率誤差,而不是一般意義下的誤差。
應用 隨著電子計算機的迅速發展和科學技術問題日趨復雜,蒙特卡羅法的應用越來越廣泛,已經滲透到科學技術的各個領域。
在一些典型數學問題方面的應用主要有:多重積分計算、線性代數方程組求解、矩陣求逆、常微分方程邊值問題求解、偏微分方程求解、非齊次線性積分方程求解、本征值計算和最優化計算等等。其中的多重積分計算、非齊次線性積分方程求解和齊次線性積分方程本征值計算等,不僅非常有代表性,而且有很大的實用價值,對於高維問題常比其他數值方法好。
在一些實際問題方面的應用主要有,屏蔽計算、核臨界安全計算、反應堆物理計算、微擾計算、實驗核物理計算、高能物理計算、核物理計算、統計物理計算、真空技術、公用事業、信息論、系統模擬、可靠性計算和計算機科學等等。其中的屏蔽計算、核臨界安全計算、微擾計算、實驗核物理計算和統計物理計算等,不僅非常有代表性,而且應用得很廣泛,按蒙特卡羅法解決這些問題的能力講,已經超過瞭其他計算方法的水平。