王洪濤,李滿枝,沈有建
(海南師范大學數學與統(tǒng)計學院,海南???71158)
蒙特卡羅方法是計算多重積分常用的一種算法,是以隨機模擬和統(tǒng)計試驗為手段,從隨機變量概率分布中,通過選擇隨機數方法產生一種符合該隨機變量概率分布特性的隨機數值序列,作為輸入變量序列進行特定的模擬試驗、求解的方法。[1]蒙特卡羅方法一般都是將抽樣點均勻分布在積分區(qū)域中,假如我們可以將抽樣點分布集中在“最重要的”區(qū)域(對結果貢獻最多的區(qū)域)中,而不是均勻分布于某一范圍內,蒙特卡羅方法效率便提高了,使用這一概念于蒙特卡羅抽樣過程中,叫做“重點抽樣”,對于某區(qū)域重要性進行衡量的函數叫做“重要函數”,這種減少方差的模擬試驗法為重要抽樣法,也稱為相似密度抽樣法。
積分都可以看作是某個隨機變量的數學期望。因此,在利用蒙特卡羅法計算二重積分的時候,采用了這個隨機變量算術平均值來作為其近似值。[3][4]
定理1[2][3][4]對于二重積分dy,設f(x,y)為區(qū)域D上的有界函數,
1)在所求積分區(qū)域D上構造一個概率密度函數 g(x,y),滿足條件
2)令
3)(xi,yi),i=1,2,…,n 是以 g(x,y)為概率密度的隨機數列,當n充分大時,
則
在定理1中,若取 g(xi,yi)=cf(x,y),c=時,計算方差為零,即方差最小。g(x,y)=cf(x,y)稱為有利密度函數或重要函數,以 g(x,y)為概率密度的隨機變量(xi,yi),i=1,2,…,n稱為有利隨機數,這樣得到方差最優(yōu)的蒙特卡羅算法。
定理2[5][6]設 g(x,y)為某二維概率密度函數,D為一平面區(qū)域,滿足(xi,yi),i=1,2,…,n 是區(qū)域 D 上的均勻分布隨機向量,zi為[0,1]上的均勻分布隨機變量,(xi,yi)與 zi相互獨立。取常數 α>0,使 αg(x,y)≤1,則(xi,yi)在 αg(x,y)≥zi條件下的條件概率密度函數為 g(x,y)。
一場看似無法避免的悲劇,卻又消弭于無形之中,而用的方法卻異常簡單,似不合情理,但仔細一想,卻又合情合理,回過頭來一看,這個故事所體現(xiàn)的正是一種簡單的智慧。人生的實質就是在不斷地解決問題,而解決問題的方法卻有千千萬萬,就如同那沙灘上的沙礫,一望無際。但總起來說只有兩類:將問題簡單化或復雜化。面對難題,智者只是將思維稍稍轉了一下彎,繞過障礙,就能取得“山重水復疑無路,柳暗花明又一村”的效果;而普通人卻是向這個難題發(fā)起無用的沖擊,最后身陷絕境,進退不得,抱憾終生。
(一)根據被積函數f(x,y)估算c值,得到概率密度函數 g(x,y)=cf(x,y);
(二)在區(qū)域D內產生以g(x,y)為概率密度函數的二維隨機數(xi,yi),i=1,2,…,n;
(三)計算 f(xi,yi)(i=1,2,…,n);
應用重要函數法計算積
為了便于進行結果對比,應用線性同余法產生1000個均勻隨機數,每100個隨機數計算一次計算結果。由,
f(x,y)=x2+y2,x∈[-1,1],y∈[0,3],在積分區(qū)域中選取三個點分別應用泰勒公式展開,應用重要函數法進行計算,并對比計算結果。
根據定理2,由 αg(x,y)≤1,因為 max[g(x,,令α=0.5即可滿足條件,產生以g(x,y)為概率密度函數的二維隨機數(xi,yi),隨機點分布圖見圖1。
積分計算公式為
2.(x0,y0)處展開得
根據定理 2,由 αg(x,y)≤1,因為 max[g(x,,令 α=0.5即可滿足條件,產生以 g(x,y)為概率密度函數的二維隨機數(xi,yi),隨機點分布圖見圖2。
積分計算公式為
3.在(x0,y0))處展開得
根據定理 2,由 αg(x,y)≤1,因為 max[g(x,,令 α=0.5即可滿足條件,產生以 g(x,y)為概率密度函數的二維隨機數(xi,yi),隨機點分布圖見圖3。
積分計算公式為
下表給出上述三種計算結果。其中,積分理論值為 I=7.50476。
不同點的展開計算結果
(一)應用重要函數法計算二重積分難度較大,尤其是估計值十分繁瑣。
(二)在積分區(qū)域中選取不同的點,分別應用泰勒公式展開函數得到不同結果,計算效果相差很大,樣本點在重要區(qū)域分布圖也不一樣;若在不合適點展開函數得到的結果誤差很大,嚴重失真。
(三)在積分區(qū)間中點(0,1.5)展開函數得到的結果最理想。
(四)根據算法構造和計算結果比較,重要函數法的結果受到取點位置影響較大。
[1]徐鐘濟.蒙特卡羅方法[M].上海:上??茖W技術出版社,1985.
[2]尹增謙,管景峰.蒙特卡羅方法及應用[J].物理與工程,2002(3).
[3]劉輝玲,葉鋒.計算多重積分的均勻隨機數蒙特卡羅法的實現(xiàn)[J].電腦知識與技術,2008(8).
[4]黎鎖平.運用蒙特卡羅方法求解隨機性問題[J].甘肅工業(yè)大學學報,2001(2).
[5]李滿枝,王洪濤,苗俊紅.二重積分的Monte-Carlo數值仿真[J].計算機仿真,2011(5).
[6]李滿枝,王洪濤.蒙特卡羅積分計算[M].???海南出版社,2011.