魏麗英,陳曉鵬
(1.桂林電子科技大學(xué) 數(shù)學(xué)與計(jì)算科學(xué)學(xué)院,廣西 桂林 541004;2.山西省潞安集團(tuán) 地質(zhì)處,山西 長治 046204)
模擬是指把某一現(xiàn)實(shí)的或抽象的系統(tǒng)的狀態(tài)和特征,用另一個(gè)稱為模型的系統(tǒng)來代替或模仿。電子計(jì)算機(jī)的出現(xiàn)及計(jì)算機(jī)科學(xué)技術(shù)的迅猛發(fā)展,給許多學(xué)科帶來了巨大的影響。計(jì)算機(jī)不但使問題的求解變得更加方便、快捷和精確,而且使得解決實(shí)際問題的領(lǐng)域更加廣泛。計(jì)算機(jī)適合于解決規(guī)模大、難以解析化以及不確定的數(shù)學(xué)模型,為系統(tǒng)模擬提供了極有力的工具。計(jì)算機(jī)模擬就是用計(jì)算機(jī)程序在計(jì)算機(jī)上模仿各種實(shí)際系統(tǒng)的運(yùn)行過程,并通過計(jì)算了解系統(tǒng)隨時(shí)間變化的行為或特性。
Monte Carlo方法,即隨機(jī)模擬法,是用計(jì)算機(jī)模擬隨機(jī)現(xiàn)象,通過仿真試驗(yàn),得到實(shí)驗(yàn)數(shù)據(jù),再進(jìn)行分析推斷,得到某些現(xiàn)象的規(guī)律或某些問題的求解的方法,它是計(jì)算機(jī)模擬的基礎(chǔ),它對(duì)解決隨機(jī)性問題具有很強(qiáng)的能力。Monte Carlo方法的基本思想是:首先建立一個(gè)概率模型,使所求問題的解正好是該模型的參數(shù)或其他有關(guān)的特征量;然后通過模擬統(tǒng)計(jì),即多次隨機(jī)抽樣實(shí)驗(yàn),統(tǒng)計(jì)出某事件發(fā)生的頻率。只要實(shí)驗(yàn)次數(shù)足夠多,該頻率便近似于事件發(fā)生的概率,這實(shí)際上就是概率的統(tǒng)計(jì)定義[1]。
Monte Carlo方法屬于試驗(yàn)數(shù)學(xué)的一個(gè)分支,它研究的問題大致可分為兩種類型,一種是問題本身是隨機(jī)的;另一種是本身屬于確定性問題,但可以建立它的解與特定隨機(jī)變量或隨機(jī)過程的數(shù)字特征或分布函數(shù)之間的聯(lián)系,因而也可用隨機(jī)模擬方法解決。本文旨在給出對(duì)Monte Carlo方法應(yīng)用的一點(diǎn)思考,只涉及前一種問題。
Monte Carlo方法源于1777年法國科學(xué)家Buffer提出的一種計(jì)算圓周率π的方法——隨機(jī)投針法,即著名的 Buffer投針問題,其步驟為[1]:
(1)在紙上畫出間距為d的平行直線;
(2)取長度為t(t (4)計(jì)算出π的近似值。 可 令 x~U(0,d/2),θ~U(0,π), 建 立 直 角 坐 標(biāo) 系(θ,x),如圖2所示,由幾何概率可知: 這里存在一個(gè)問題:算法的目的是計(jì)算π的值,而由此產(chǎn)生的模擬步驟中顯然已利用了π的值(產(chǎn)生隨機(jī)變量θ),這是矛盾的。筆者認(rèn)為可直接將 sinθ當(dāng)作一個(gè)隨機(jī)變量,考慮用舍選抽樣法來直接產(chǎn)生 sinθ,其中 θ~(0,π),其原理如下: 如圖 3 所示,θ~U(0,π),在半圓周 D={(x,y)|x2+y2=1,y>0}上的每一個(gè)隨機(jī)點(diǎn)與θ一一對(duì)應(yīng),故隨機(jī)變量的抽樣可由隨機(jī)變量Y=(x,y)∈D的抽樣代替,而隨機(jī)變量sinθ的抽樣可由Y中分量y的抽樣代替,這是因?yàn)榇藭r(shí) 改進(jìn)后模擬步驟如下: (1)給定初值 t,d,n; 用Matlab編程實(shí)現(xiàn),取ε=0.01時(shí)的統(tǒng)計(jì)結(jié)果如表1所示。 表1 計(jì)算機(jī)模擬統(tǒng)計(jì)結(jié)果 從表1可看出,運(yùn)算精度與參數(shù)選取有很大關(guān)系,一個(gè)啟示是實(shí)驗(yàn)?zāi)M時(shí)要精心設(shè)置參數(shù),并多次實(shí)驗(yàn)提高精度。 Monte Carlo方法可用來產(chǎn)生具有一定分布特征的隨機(jī)數(shù)。 用 Matlab編程實(shí)現(xiàn), 取 α=2,β=3,n=100,結(jié)果如表 2所示。 經(jīng)檢驗(yàn)其樣本均值為0.400 0,樣本方差為 0.043 0,而此Beta分布的期望是 0.4,方差是0.04,可見其模擬程度很好。 表2 Beta分布隨機(jī)變量 表3 標(biāo)準(zhǔn)正態(tài)隨機(jī)變量 (1)產(chǎn)生隨機(jī)變量 ui~U(-3,3),vi~U(0,1); (2)檢驗(yàn) mf(ui)≥vi是否成立,若成立則令 xj=ui,j=j+1,否則轉(zhuǎn)到步驟(1),直到i>n(n為預(yù)先給定的實(shí)驗(yàn)次數(shù))。 用Matlab編程實(shí)現(xiàn),取n=100,結(jié)果如表3所示。 經(jīng)檢驗(yàn)其樣本均值為0.001 6,樣本方差為0.914 5,可見其模擬程度較高。由標(biāo)準(zhǔn)正態(tài)隨機(jī)變量,進(jìn)行變換Y=μ+σX,可知 Y~N(μ,σ2),可得一般正態(tài)分布隨機(jī)變量。 Monte Carlo方法是通過設(shè)計(jì)適當(dāng)?shù)碾S機(jī)試驗(yàn)而完成某種計(jì)算任務(wù)的方法,它對(duì)解決隨機(jī)性問題具有很強(qiáng)的能力。隨著電子計(jì)算機(jī)的高速發(fā)展,Monte Carlo方法在自然科學(xué)及社會(huì)科學(xué)領(lǐng)域的應(yīng)用越來越廣泛,許多用確定性方法難以解決的隨機(jī)性問題都可以用它方便地解決,特別是在隨機(jī)模擬方面更顯示了其獨(dú)特的魅力。Buffer問題反映了蒙特卡羅方法的思想,通過設(shè)計(jì)適當(dāng)?shù)碾S機(jī)試驗(yàn)來完成某種計(jì)算任務(wù)。但在利用計(jì)算機(jī)模擬隨機(jī)試驗(yàn)時(shí)出現(xiàn)矛盾是由于Buffer問題本身不涉及常數(shù)π值,在利用計(jì)算機(jī)模擬試驗(yàn)中沒有回避這一問題而造成的,因此應(yīng)該設(shè)法避免[4]。 [1]重慶大學(xué)數(shù)學(xué)系.數(shù)學(xué)實(shí)驗(yàn)[M].北京:科學(xué)出版社,2000. [2]王梓坤.概率論基礎(chǔ)及其應(yīng)用[M].北京:北京師范大學(xué)出版社,2007. [3]楊肇夏.計(jì)算機(jī)模擬及其應(yīng)用[M].北京:中國鐵道出版社,1999. [4]左國新,陳應(yīng)保.蒲豐問題與蒙特卡羅方法[J].高等函授學(xué)報(bào)(自然科學(xué)版),2005,18(2):3-4.2 Monte Carlo方法模擬隨機(jī)變量
2.1 Beta分布
2.2 標(biāo)準(zhǔn)正態(tài)分布
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2011年12期