李滿枝,王洪濤,張廣路
(海南師范大學(xué) 數(shù)學(xué)與統(tǒng)計學(xué)院,海南 海口 571158)
蒙特卡羅法在二重積分中的改進(jìn)算法
李滿枝,王洪濤,張廣路
(海南師范大學(xué) 數(shù)學(xué)與統(tǒng)計學(xué)院,海南 ???571158)
應(yīng)用蒙特卡羅方法計算二重積分,給出算法的詳細(xì)計算原理和計算流程步驟,在現(xiàn)有的算法基礎(chǔ)上進(jìn)行改進(jìn),并給出實(shí)例的具體計算結(jié)果.數(shù)值模擬結(jié)果表明:改進(jìn)的新算法簡化了計算過程,且模擬的精度較高.
蒙特卡羅方法;二重積分;數(shù)值計算
二重積分的傳統(tǒng)計算方法要先化成累次積分,再根據(jù)被積函數(shù)的原函數(shù)進(jìn)行計算,但若原函數(shù)難以求得,則該積分就無法直接計算,具有很大的局限性.蒙特卡羅方法為求解二重積分提供了一個新的計算方法,該方法利用計算機(jī)的快速計算和高精度的特點(diǎn)來模擬隨機(jī)投點(diǎn)實(shí)驗(yàn),然后通過概率模型,由數(shù)學(xué)期望的計算來得到積分的近似值.
蒙特卡羅方法以隨機(jī)模擬和統(tǒng)計試驗(yàn)為手段,從隨機(jī)變量的概率分布中,通過選擇隨機(jī)數(shù)的方法產(chǎn)生一種符合該隨機(jī)變量概率分布特性的隨機(jī)數(shù)值序列,作為輸入變量序列進(jìn)行特定的模擬試驗(yàn)、求解的方法[1-2].在應(yīng)用蒙特卡羅方法求解二重積分時,必須要在包含積分域的矩形區(qū)域中產(chǎn)生非均勻的隨機(jī)點(diǎn),然后設(shè)法轉(zhuǎn)換成我們需要的隨機(jī)數(shù)序列并以此作為數(shù)字模擬試驗(yàn)的輸入變量序列進(jìn)行模擬求解[3].
本文在傳統(tǒng)蒙特卡羅方法的基礎(chǔ)上做了改進(jìn),直接在積分區(qū)域中產(chǎn)生隨機(jī)點(diǎn)進(jìn)行計算,由此簡化計算過程,節(jié)省計算機(jī)時,提高計算效率.最后通過算例驗(yàn)證改進(jìn)算法的可行性與優(yōu)良性.
積分都可以看作是某個隨機(jī)變量的數(shù)學(xué)期望.因此,在利用蒙特卡羅方法計算二重積分的時候,采用了這個隨機(jī)變量的算術(shù)平均值來作為其近似值[3-5].
定理 (傳統(tǒng)蒙特卡羅方法)設(shè)f(x,y)為區(qū)域D上的有界函數(shù),
1)取一個包含D的矩形區(qū)域Ω:a≤x≤b,c≤y≤d;
3)(xi,yi),i=1,2,…,n 是以 g(x,y)為概率密度的隨機(jī)數(shù)列,設(shè)(xi,yi),i=1,2,…,k 為落在 D中的k個隨機(jī)數(shù),則n充分大時,有
定理的證明參見文[3-4].
定理 (改進(jìn)蒙特卡羅方法)設(shè)f(x,y)為區(qū)域D上的有界函數(shù),
其中AD是區(qū)域D的面積;
2)(xi,yi),i=1,2,…,n是以g(x,y)為概率密度的隨機(jī)數(shù)列,設(shè)(xi,yi),i=1,2,…,n 為落在 D中的n個隨機(jī)數(shù),則n充分大時,有
3)設(shè)(xi,yi),i=1,2,…,n為落在D中的n個隨機(jī)數(shù),則n充分大時,有
由積分中值定理,曲邊梯形D(上曲邊為y=b2(x),下曲邊為 y=a2(x))的面積在區(qū)間[a1,b1]內(nèi)任意插入n-1個分點(diǎn) xi,x0=a1,xn=b1,a1< xi< b1,(,i=1,2,…,n-1),當(dāng)n很大時即,當(dāng) n 充分大時,AD可近似看作為區(qū)域D的面積.
由上式展開得
證畢.
與傳統(tǒng)算法相比,改進(jìn)算法省略了取包含D的矩形區(qū)域Ω的步驟,因此也省略了min(a2(x))=c,max(b2(x))=d 的計算,省略了判斷隨機(jī)數(shù)落在積分區(qū)域D的步驟,從而大大降低計算難度,簡化了計算步驟.
根據(jù)公式(4)可知
計算結(jié)果見圖1,圖2,圖3.
在計算過程采用線性同余器產(chǎn)生均勻隨機(jī)數(shù),應(yīng)用以上步驟求解二重積分得到較好的結(jié)果.當(dāng)增加抽取樣本次數(shù),計算量增加,其精度也隨之增加,但是二者不成正比例關(guān)系.從圖3可以看出:當(dāng)隨機(jī)數(shù)的數(shù)目N=990時,誤差d=0.009 254,是最佳數(shù)據(jù).再產(chǎn)生更多的隨機(jī)數(shù),誤差反而較大.所以應(yīng)用蒙特卡羅法求解二重積分存在最優(yōu)數(shù)據(jù)問題.總的看來,用蒙特卡羅方法求解的算法描述簡單,有較高的計算精度,對于求解二重積分是個簡單有效的方法.
[1]徐鐘濟(jì).蒙特卡羅方法[M].上海:上??茖W(xué)技術(shù)出版社,1985.
[2]方再根.計算機(jī)模擬和蒙特卡羅方法論[M].北京:北京工業(yè)學(xué)院出版社,1988.
[3]尹增謙,管景峰,等.蒙特卡羅方法及應(yīng)用[J].物理與工程,2002,12(3):46-50.
[4]劉輝玲,葉鋒.計算多重積分的均勻隨機(jī)數(shù)蒙特卡羅法的實(shí)現(xiàn)[J].電腦知識與技術(shù),2008,4(8):2289-2291.
[5]黎鎖平.運(yùn)用蒙特卡羅方法求解隨機(jī)性問題[J].甘肅工業(yè)大學(xué)學(xué)報,2001,27(2):95-97.
[6]Fishman G S.Monte Carlo-Concepts,Algorithmsand Applications[M].New York:Springer,1996.
[7]Niederreiter H.Random Number Generation and Quasi-Monte Carlo methods[M].CBMS-NSF Regional Conference Seriesin Applied Mathematics,63:SIAM,1992.
[8]Robert C P,Casella G.Monte Carlo Statistical Method(second edition)[M].New York:Springer,2004.
責(zé)任編輯:畢和平
Calculation of Double Integrals Based on Monte Carlo Method
LI Manzhi,WANG Hongtao,ZHANG Guanglu
(College of Mathematics and Statistics,Hainan Normal University,Haikou 571158,China)
In this paper Monte Carlo method was used to calculate double integral.The realization steps,algorithm and the realization of a concrete example were were given.The example shows that the improved Monte-Carlo method has a better computing algorithm and a better accuracy.
Monte Carlo method;double integrals;numerical calculate
O 242
A
1674-4942(2010)03-0242-03
2010-05-17
海南省教育廳高等學(xué)校資助項(xiàng)目(Hjsk2010-41);海南師范大學(xué)青年教師科研資助項(xiàng)目(QN0921);海南師范大學(xué)應(yīng)用數(shù)學(xué)重點(diǎn)學(xué)科項(xiàng)目