梗概
蒙特卡洛方法(Monte Carlo method),也稱統計模擬方法,是二十世紀四十年代中期由於科學技術的發展和電子計算機的發明,而被提出的一種以機率統計理論為指導的一類非常重要的數值計算方法。是指使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。
20世紀40年代,在John von Neumann,Stanislaw Ulam和Nicholas Metropolis在洛斯阿拉莫斯國家實驗室為核武器計畫工作時,發明了蒙特卡洛方法。因為Ulam的叔叔經常在蒙特卡洛賭場輸錢得名,而蒙特卡洛方法正是以機率為基礎的方法。
與它對應的是確定性算法。
蒙特卡洛方法在金融工程學,總量經濟學,生物醫學,計算物理學(如粒子輸運計算、量子熱力學計算、空氣動力學計算)等領域套用廣泛。
蒙特卡洛方法的基本思想
當所求解問題是某種隨機事件出現的機率,或者是某個隨機變數的期望值時,通過某種“實驗”的方法,以這種事件出現的頻率估計這一隨機事件的機率,或者得到這個隨機變數的某些數字特徵,並將其作為問題的解。 有一個例子可以使你比較直觀地了解蒙特卡洛方法:假設我們要計算一個不規則圖形的面積,那么圖形的不規則程度和分析性計算(比如,積分)的複雜程度是成正比的。蒙特卡洛方法是怎么計算的呢?假想你有一袋豆子,把豆子均勻地朝這個圖形上撒,然後數這個圖形之中有多少顆豆子,這個豆子的數目就是圖形的面積。當你的豆子越小,撒的越多的時候,結果就越精確。在這裡我們要假定豆子都在一個平面上,相互之間沒有重疊。
蒙特卡洛方法的工作過程
在解決實際問題的時候套用蒙特卡洛方法主要有兩部分工作:
用蒙特卡洛方法模擬某一過程時,需要產生各種機率分布的隨機變數。用統計方法把模型的數字特徵估計出來,從而得到實際問題的數值解。
蒙特卡洛方法分子模擬計算的步驟
使用蒙特卡洛方法進行分子模擬計算是按照以下步驟進行的:
使用隨機數發生器產生一個隨機的分子構型。對此分子構型的其中粒子坐標做無規則的改變,產生一個新的分子構型。計算新的分子構型的能量。比較新的分子構型於改變前的分子構型的能量變化,判斷是否接受該構型。若新的分子構型能量低於原分子構型的能量,則接受新的構型,使用這個構型重複再做下一次疊代。若新的分子構型能量高於原分子構型的能量,則計算玻爾茲曼因子,並產生一個隨機數。若這個隨機數大於所計算出的玻爾茲曼因子,則放棄這個構型,重新計算。若這個隨機數小於所計算出的玻爾茲曼因子,則接受這個構型,使用這個構型重複再做下一次疊代。如此進行疊代計算,直至最後搜尋出低於所給能量條件的分子構型結束。
蒙特卡洛方法在數學中的套用
通常蒙特卡洛方法通過構造符合一定規則的隨機數來解決數學上的各種問題。對於那些由於計算過於複雜而難以得到解析解或者根本沒有解析解的問題,蒙特卡洛方法是一種有效的求出數值解的方法。一般蒙特卡洛方法在數學中最常見的套用就是蒙特卡洛積分。
積分非權重蒙特卡洛積分,也稱確定性抽樣,是對被積函式變數區間進行隨機均勻抽樣,然後對被抽樣點的函式值求平均,從而可以得到函式積分的近似值。此種方法的正確性是基於機率論的中心極限定理。當抽樣點數為m時,使用此種方法所得近似解的統計誤差恆為,
不隨積分維數的改變而改變。因此當積分維度較高時,蒙特卡洛方法相對於其他數值解法更優。圓周率蒙特卡洛方法可用於近似計算圓周率:讓計算機每次隨機生成兩個0到1之間的數,看以這兩個實數為橫縱坐標的點是否在單位圓內。生成一系列隨機點,統計單位圓內的點數與總點數,(圓面積和正方形面積之比為PI:4,PI為圓周率),當隨機點取得越多(但即使取10的9次方個隨機點時,其結果也僅在前4位與圓周率吻合)時,其結果越接近於圓周率。實際上,計算機產生的隨機數只能精確到某位數,並不能產生任意實數(例如無理數等等);上述做法將平面分割成一個個格線,由此計算出來的面積當然與圓或多或少有差距。