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