一、蒙特卡洛模擬法分類
蒙特卡洛法模擬法從其應用方面來划分,可以分成以下三種形式:
1)直接蒙特卡洛模擬。采用隨機數學咧來模擬復雜隨機過程的效應。
2)蒙特卡洛定積分(間接蒙特卡洛模擬)。利用隨機數序列計算積分的方法。積分維數越高,該方法的積分效率就越高。
3)Metropolis蒙特卡洛模擬。以"馬爾可夫"鏈形式產生系統的分布序列,該方法可以使我們能夠研究經典和量子多粒子系統的問題。
二、直接、間接蒙特卡洛法簡介
本文介紹其中間接蒙特卡洛模擬法求解定積分,順帶說一下直接蒙特卡洛法。摘錄馬文淦《計算物理學》中一段話,如下:
直接蒙特卡洛法使用的情況往往是問題本身具有一定的概率和數理統計性的情況,如核衰變過程等。該方法是按照實際問題所遵循的概率統計規律,用電子計算機進行直接的抽樣試驗,然后計算其統計參數。直接蒙特卡洛模擬法最充分體現出蒙特卡洛模擬法無可比擬的的特殊性和優越性,因而在物理學的各種各樣問題中得到廣泛的應用。該方法也就是通常說的"計算機試驗"。
間接蒙特卡洛法是人為構造出一個適合的概率模型,然后依照該模型進行大量的試驗,使它的某些統計參量正好是待求問題的解。
三、間接蒙特卡洛法應用
Buffon投針試驗---求π的近似值(現在采用用級數展開逼近求解)。雖然Buffon投針試驗精確度不高,就連小數點后第二位也是不精確的,但是作為直接蒙特卡洛法應用的例子,本文將對其展開分析求解。
題目太長懶得抄,給個度娘傳送門:http://baike.baidu.com/link?url=X4w29nF0EJyzcu_wpgHBWvmxyfLd93cf-g06Wl7b3GnTCXK2m2Ksp-ro2Gq69I566zeI3TJpozmv1-i0jV73Ua 。
Buffon采用投針與平行線的夾角作為變量,並充分使用了cos的特性---cos在[0,π]是均勻分布的。這就出來我們需要求的π的,挺巧妙的。然后由於cos具有均勻型的特征,而蒙特卡洛方法自變量均勻時有對應的方法,這就一拍而和了。可能詞不達意,不過讀者可以慢慢體會。
稍微推導一下公式:
1)投針長為L,平行線之間距離為S,投針與垂直平行線方向夾角為a。那么投針與平行線相交的概率就是投針在垂直平行線方向上的投影與平行線距離的比值。
![]()
2)由於夾角a在[0,π]中是均勻分布的,那么投針和平行線相交的平均概率為

3) 為了計算方便,假設有L=S,那么公式可以簡化為
![]()
4)如果投針N次,有M次和平行線相交。當N值充分大時,相交的頻數M/N與概率相等,即有
四、Buffon試驗代碼
實在是不能再簡單的入門級代碼了......→_→這步就省略了吧。
關於生成偽隨機數的算法,可以參考我的另一篇文章《偽隨機數算法(一)》,里面解釋相對比較詳細。
