1. 程式人生 > 其它 >美賽數學模型(一)——蒙特卡羅法

美賽數學模型(一)——蒙特卡羅法

技術標籤:數學建模美國大學生數學建模競賽

文章目錄

蒙特卡羅方法概述及其基本思想

蒙特卡羅方法又稱隨機抽樣技巧或統計實驗方法,其基本思想為當所求問題的解是某個事件的概率,或者是某個隨機變數的數學期望,或者是與概率、數學期望有關的量時,通過某種試驗的方法,得出該事件發生的頻率,或者該隨機變數若干個具體觀察值的算術平均值,通過它得到問題的解。特殊的,當隨機變數的取值僅為1或0時,它的數學期望就是某個事件的概率。
通俗來講,蒙特卡羅方法使用隨機試驗的方式計算積分。即將所要計算的積分看作服從某種分佈密度函式 f ( r ) f(r)

f(r)的隨機變數 g ( r ) g(r) g(r)的數學期望 < g > = ∫ 0 ∞ g ( r ) f ( r )   d r <g>=\int_0^\infty {g(r)f(r)} \,{\rm d}r <g>=0g(r)f(r)dr通過某種試驗,得到N個觀察值 r 1 , r 2 , … , r N r1,r2,…,rN r1r2rN將相應的N個隨機變數的值 g ( r 1 ) , g ( r 2 ) , … , g ( r N ) g(r1),g(r2),…,g(rN) g(r1)g(r2)g(rN)的算術平均值 g = 1 N ∑ i = 1 n g ( r i ) g=\frac 1N\sum_{i=1}^n g(ri)
g=N1i=1ng(ri)
作為積分的估計值。

蒙特卡羅方法的收斂性、誤差及效率

收斂性

由於蒙特卡羅方法是由隨機變數X的簡單子樣
X 1 , X 2 , … , X N X1,X2,…,XN X1X2XN的算術平均值,則有大數定律可知隨機變數X的簡單子樣的算術平均值,當子樣數充分大是,以概率1收斂於其期望值。

誤差

由中心極限定理可知,蒙特卡羅方法的誤差 ϵ \epsilon ϵ定義為 ϵ = λ α σ N \epsilon = \frac {\lambda_\alpha \sigma} {\sqrt{N}} ϵ=N λασ

其中, λ α {\lambda_\alpha}

λα與置信度 α \alpha α一一對應,根據問題的要求確定出置信水平後,查標準正態分佈表即可。 σ \sigma σ為樣本有限非零的均方差,其估計值為 σ = 1 N ∑ i = 1 N X i 2 − ( 1 N ∑ i = 1 N X i ) 2 \sigma = \sqrt{\frac 1N\sum_{i=1}^{N}{X_i}^2-(\frac 1N{\sum_{i=1}^{N}{X_i})}^2} σ=N1i=1NXi2(N1i=1NXi)2

效率

一般來說,降低方差的技巧,往往會使觀察一個子樣的時間增加。在固定時間內,使觀察的樣本數減少。所以,一種方法的優劣,需要由方差和觀察一個子樣的費用(使用計算機的時間)兩者來衡量,這是蒙特卡洛方法中效率的概念,定義為 σ 2 ∗ c {\sigma}^2*c σ2c其中, c c c為觀察一個子樣的平均費用。

蒙特卡羅方法特點

優點

  • 能夠比較逼真地描述具有隨機性質的事物的特點及物理實驗過程
    •   從這個意義上講,蒙特卡羅方法可以部分代替物理實驗,甚至可以得到物理實驗難以得到的結果。用蒙特卡羅方法解決實際問題,可以直接從實際問題本身出發,而不從方程或數學表示式出發。它有直觀、形象的特點。
      
  • 受幾何條件限制小
    •   在計算s維空間中的任一區域上的積分時,無論區域形狀多麼特殊,只要能給出描述區域的幾何特徵條件,就可以從區域中均勻產生N個點,從而得到積分近似值。
      
  • 收斂速度與問題的維數無關
    •   維數的變化,只引起抽樣時間及估計量計算時間的變化,不影響誤差。也就是說,使用蒙特卡羅方法時,抽取的子樣總數N與維數s無關。維數的增加,除了增加相應的計算量外,不影響問題的誤差。這一特點,決定了蒙特卡羅方法對多維問題的適應性。
      
  • 具有同時計算多個方案與多個未知量的能力
    •   對於那些需要計算多個方案的問題,使用蒙特卡羅方法有時不需要像常規方法那樣逐個計算,而可以同時計算所有的方案,其全部計算量幾乎與計算一個方案的計算量相當。另外,使用蒙特卡羅方法還可以同時得到若干個所求量。
      
  • 誤差容易確定
    •   根據蒙特卡羅方法的誤差公式,可以在計算所求量的同時計算出誤差。同時也不存在有效位數損失的問題。
      
  • 程式結構簡單,易於實現

缺點

  • 收斂速度慢

    •   如前所述,蒙特卡羅方法的收斂速度為O(N^(1/2)),一般不容易得到精確度較高的近似結果。對於維數少(三維以下)的問題,不如其他方法好。 
      
  • 專案誤差具有概率性

    •   由於蒙特卡羅方法的誤差是在一定置信水平下估計的,所以它的誤差具有概率性,而不是一般意義下的誤差。 
      
  • 在粒子輸運問題中,計算結果與系統大小有關

蒙特卡羅方法的主要應用範圍

蒙特卡羅方法所特有的優點,使得它的應用範圍越來越廣。它的主要應用範圍包括:

  • 粒子輸運問題
    • 實驗核物理
    • 反應堆物理
    • 高能物理
  • 統計物理
  • 典型數學問題
  • 真空技術
  • 鐳射技術以及醫學
  • 生物
  • 探礦

利用蒙特卡羅法計算定積分

針對定積分 θ = ∫ a b f ( x )   d x \theta = \int_a^b f(x) \,{\rm d}x θ=abf(x)dx求解定積分相當於計算一個圖形的面積,而無論圖形的形狀如何,圖形面積一定能被轉化成一個以ab為底,y為高(y可以是負數)的長方形面積高,我們只需要用蒙特卡洛演算法求y即可。
所以我們可以在 [ a , b ] [a,b] [a,b]之間生成n個隨機點,並計算相應的函式值,再計算被積函式值得平均值 ∑ i = 1 n f ( x i ) n \frac{\sum_{i=1}^n f(x_i)}n ni=1nf(xi)則定積分應為 ∑ i = 1 n f ( x i ) n ∗ ( b − a ) \frac{\sum_{i=1}^n f(x_i)}n*(b-a) ni=1nf(xi)ba