蒙特卡羅模擬簡(jiǎn)介
蒙特·卡羅方法(Monte Carlo method),也稱統(tǒng)計(jì)模擬方法,是二十世紀(jì)四十年代中期由于科學(xué)技術(shù)的發(fā)展和電子計(jì)算機(jī)的發(fā)明,而被提出的一種以概率統(tǒng)計(jì)理論為指導(dǎo)的一類非常重要的數(shù)值計(jì)算方法。是指使用隨機(jī)數(shù)(或更常見的偽隨機(jī)數(shù))來解決很多計(jì)算問題的方法。與它對(duì)應(yīng)的是確定性算法。蒙特·卡羅方法在金融工程學(xué),宏觀經(jīng)濟(jì)學(xué),計(jì)算物理學(xué)(如粒子輸運(yùn)計(jì)算、量子熱力學(xué)計(jì)算、空氣動(dòng)力學(xué)計(jì)算)等領(lǐng)域應(yīng)用廣泛。
蒙特卡羅模擬因摩納哥著名的賭場(chǎng)而得名。它能夠幫助人們從數(shù)學(xué)上表述物理、化學(xué)、工程、經(jīng)濟(jì)學(xué)以及環(huán)境動(dòng)力學(xué)中一些非常復(fù)雜的相互作用。
數(shù)學(xué)家們稱這種表述為“模式”,而當(dāng)一種模式足夠精確時(shí), 他能產(chǎn)生與實(shí)際操作中對(duì)同一條件相同的反應(yīng)。但蒙特卡羅模擬有一個(gè)危險(xiǎn)的缺陷: 如果必須輸入一個(gè)模式中的隨機(jī)數(shù)并不像設(shè)想的那樣是隨機(jī)數(shù), 而卻構(gòu)成一些微妙的非隨機(jī)模式, 那么整個(gè)的模擬(及其預(yù)測(cè)結(jié)果)都可能是錯(cuò)的。
蒙特卡羅法優(yōu)點(diǎn):
1.方法的誤差與問題的維數(shù)無關(guān)。
2.對(duì)于具有統(tǒng)計(jì)性質(zhì)問題可以直接進(jìn)行解決。
3.對(duì)于連續(xù)性的問題不必進(jìn)行離散化處理
蒙特卡羅法缺點(diǎn):
1.對(duì)于確定性問題需要轉(zhuǎn)化成隨機(jī)性問題。
2.誤差是概率誤差。
3.通常需要較多的計(jì)算步數(shù)N.
蒙特卡羅方法的缺點(diǎn)及其改進(jìn)
我們知道,蒙特卡羅方法是非常好用來做積分的。如果要算一個(gè)函數(shù)f(x)在區(qū)間[a,b]內(nèi)的積分,我們可通過計(jì)算機(jī)利用蒙特卡羅方法來計(jì)算出積分近似值。即先估計(jì)一個(gè)比f(x)在區(qū)間[a,b]內(nèi)最大值還要大的c,(必須保證f(x)在區(qū)間[a,b]不小于0)然后不斷地在二維矩形區(qū)域[a,b]×[0,c]內(nèi)隨機(jī)產(chǎn)生隨機(jī)數(shù)對(duì)(e,f),判斷f與f(e)的大小,并統(tǒng)計(jì)f《f(e)的數(shù)量n,當(dāng)產(chǎn)生點(diǎn)的數(shù)量N足夠大時(shí),計(jì)算出n/N*(b-a)*c,這就是函數(shù)f(x)在區(qū)間[a,b]內(nèi)的積分值。
對(duì)蒙特卡羅方法的改進(jìn):如果要算一個(gè)函數(shù)f(x)在區(qū)間[a,b]內(nèi)的積分,令s=0,我們可以在區(qū)間[a,b]內(nèi)產(chǎn)生N個(gè)隨機(jī)數(shù)e,賦值:s+=f(e)/N(之所以這樣做是為了防止溢出),當(dāng)N足夠大時(shí),計(jì)算s*(b-a),這就是函數(shù)f(x)在區(qū)間[a,b]內(nèi)的積分值。 改進(jìn)方法的優(yōu)點(diǎn):
1.維度降低,節(jié)省一半產(chǎn)生隨機(jī)數(shù)的時(shí)間,
2.相對(duì)精度更高,由于蒙特卡羅方法矩形上界需要估計(jì),因此帶來了一定的不確定性,估計(jì)值取得過大,顯著提升計(jì)算時(shí)間,估計(jì)值取得過小,就會(huì)出現(xiàn)計(jì)算錯(cuò)誤。而改進(jìn)方法不需要估計(jì)!
3.改進(jìn)方法可以求解蒙特卡羅方法所不能計(jì)算的積分,求解范圍更大,如果積分函數(shù)f(x)在區(qū)間[a,b]內(nèi)是無界的,或者積分函數(shù)f(x)在區(qū)間[a,b]內(nèi)有負(fù)值,蒙特卡羅方法就無法求解。
蒙特卡羅模擬基本原理及思想
當(dāng)所要求解的問題是某種事件出現(xiàn)的概率,或者是某個(gè)隨機(jī)變量的期望值時(shí),它們可以通過某種“試驗(yàn)”的方法,得到這種事件出現(xiàn)的頻率,或者這個(gè)隨機(jī)變數(shù)的平均值,并用它們作為問題的解。這就是蒙特卡羅方法的基本思想。蒙特卡羅方法通過抓住事物運(yùn)動(dòng)的幾何數(shù)量和幾何特征,利用數(shù)學(xué)方法來加以模擬,即進(jìn)行一種數(shù)字模擬實(shí)驗(yàn)。它是以一個(gè)概率模型為基礎(chǔ),按照這個(gè)模型所描繪的過程,通過模擬實(shí)驗(yàn)的結(jié)果,作為問題的近似解??梢园衙商乜_解題歸結(jié)為三個(gè)主要步驟:構(gòu)造或描述概率過程;實(shí)現(xiàn)從已知概率分布抽樣;建立各種估計(jì)量。
蒙特卡羅模擬的應(yīng)用
通常蒙特卡羅模擬通過構(gòu)造符合一定規(guī)則的隨機(jī)數(shù)來解決數(shù)學(xué)上的各種問題。對(duì)于那些由于計(jì)算過于復(fù)雜而難以得到解析解或者根本沒有解析解的問題,蒙特卡羅模擬是一種有效的求出數(shù)值解的方法。一般蒙特卡羅模擬在數(shù)學(xué)中最常見的應(yīng)用就是蒙特卡羅積分。
蒙特卡羅算法表示采樣越多,越近似最優(yōu)解。舉個(gè)例子,假如筐里有100個(gè)蘋果,讓我每次閉眼拿1個(gè),挑出最大的。于是我隨機(jī)拿1個(gè),再隨機(jī)拿1個(gè)跟它比,留下大的,再隨機(jī)拿1個(gè)……我每拿一次,留下的蘋果都至少不比上次的小。拿的次數(shù)越多,挑出的蘋果就越大,但我除非拿100次,否則無法肯定挑出了最大的。這個(gè)挑蘋果的算法,就屬于蒙特卡羅算法。告訴我們樣本容量足夠大,則最接近所要求解的概率。
蒙特卡羅模擬在金融工程學(xué),宏觀經(jīng)濟(jì)學(xué),生物醫(yī)學(xué),計(jì)算物理學(xué)(如粒子輸運(yùn)計(jì)算、量子熱力學(xué)計(jì)算、空氣動(dòng)力學(xué)計(jì)算)等領(lǐng)域也應(yīng)用廣泛。
計(jì)算機(jī)技術(shù)的發(fā)展,使得蒙特卡羅模擬在最近10年得到快速的普及?,F(xiàn)代的蒙特卡羅模擬,已經(jīng)不必親自動(dòng)手做實(shí)驗(yàn),而是借助計(jì)算機(jī)的高速運(yùn)轉(zhuǎn)能力,使得原本費(fèi)時(shí)費(fèi)力的實(shí)驗(yàn)過程,變成了快速和輕而易舉的事情。它不但用于解決許多復(fù)雜的科學(xué)方面的問題,也被項(xiàng)目管理人員經(jīng)常使用。
借助計(jì)算機(jī)技術(shù),蒙特卡羅模擬實(shí)現(xiàn)了兩大優(yōu)點(diǎn):
一是簡(jiǎn)單,省卻了繁復(fù)的數(shù)學(xué)報(bào)導(dǎo)和演算過程,使得一般人也能夠理解和掌握;
二是快速。簡(jiǎn)單和快速,是蒙特卡羅方法在現(xiàn)代項(xiàng)目管理中獲得應(yīng)用的技術(shù)基礎(chǔ)
蒙特卡洛法之MATLAB實(shí)現(xiàn)
蒙特卡洛法(隨機(jī)取樣法)也稱為計(jì)算機(jī)隨機(jī)模擬方法,它源于世界著名的賭城——Monte Carlo。它是基于對(duì)大量事件的統(tǒng)計(jì)結(jié)果來實(shí)現(xiàn)一些確定性問題的計(jì)算。使用蒙特卡洛法必須使用計(jì)算機(jī)生成相關(guān)分布的隨機(jī)數(shù)。
eg:
y = x^2 ,y = 12 - x與X軸在第一象限與X軸圍成一個(gè)曲邊三角形。設(shè)計(jì)一個(gè)隨機(jī)試驗(yàn),求該圖形的近似值。
其圖形如下圖所示:
x=0:0.25:12
y1=x.^2;
y2=12-x;
plot(x,y1,x,y2)
xlabel(‘x’);ylabel(‘y’);
legend(‘y1=x^2’,‘y2=12-x’);
title(‘王晨繪制’);
axis([0 15 0 15]);
text(3,9,‘交點(diǎn)’);
grid on12345678910
設(shè)計(jì)的隨機(jī)試驗(yàn)的思想如下:在矩形區(qū)域[0,12]*[0.9]上產(chǎn)生服從均與分布的10^7個(gè)隨機(jī)點(diǎn),統(tǒng)計(jì)隨機(jī)點(diǎn)落在曲邊三角形內(nèi)的個(gè)數(shù),則曲邊三角形的面積近似于上述矩形的面積乘以頻率
x=unifrnd(0,12,[1,10000000]);
y=unifrnd(0,9,[1,10000000]);
frequency=sum(y《x.^2 & x《=3)+sum(y《12-x & x》=3)
area=12*9*frequency/10^71234
其結(jié)果如下圖所示:
評(píng)論