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