時(shí)間:2017-08-30 14:36來源:藍(lán)天飛行翻譯公司 作者:民航翻譯 點(diǎn)擊:次
To view this page ensure that Adobe Flash Player version 9.0.124 or greater is installed. 約在1946年,物理學(xué)家Von Neumann等在電子計(jì)算機(jī)上用隨機(jī)抽樣方法模擬了中子連鎖反應(yīng),并把這種方法稱作Monte Carlo方法。
近十年來,隨著電子計(jì)算機(jī)的出現(xiàn)和迅速發(fā)展,人們才有意識(shí)地、廣泛地、系統(tǒng)地應(yīng)用隨機(jī)抽樣試驗(yàn)來解決數(shù)學(xué)和物理問題,而且把Monte Carlo方法當(dāng)作計(jì)算數(shù)學(xué)的一個(gè)新的重要分支。
MONTE CARLO 方法亦稱為隨機(jī)模擬(random simulation )方法,有時(shí)也稱作隨機(jī)抽樣(random sampling)方法。它的基本思想是:為了求解數(shù)學(xué)、工程技術(shù)上的問題,首先建立一個(gè)概率模型或隨機(jī)過程,使它的參數(shù)等于問題的解;然后通過對(duì)模型或過程的隨機(jī)抽樣試驗(yàn)產(chǎn)生一系列隨機(jī)數(shù)來計(jì)算所求參數(shù)的統(tǒng)計(jì)特征,最后給出所求解的近似值。
隨機(jī)數(shù)的產(chǎn)生當(dāng)然不是枚舉法,這里在計(jì)算機(jī)上產(chǎn)生的隨機(jī)數(shù)都是“偽隨機(jī)數(shù)”,也就是由一種迭代過程即數(shù)學(xué)過程產(chǎn)生一系列數(shù)的方法。當(dāng)然這樣做的結(jié)果,隨機(jī)性就需要進(jìn)行驗(yàn)證。因?yàn)檫@種數(shù)學(xué)方法在迭代過程開始前,每一項(xiàng)都是不能預(yù)測的。對(duì)這些所產(chǎn)生的成千上萬的數(shù),只要它們能通過一系列的局部隨機(jī)性檢驗(yàn),如均勻性、獨(dú)立性等檢驗(yàn),那么就可把它們當(dāng)作隨機(jī)數(shù)來使用,Lehmer首先把這樣產(chǎn)生的數(shù)定名為“偽隨機(jī)數(shù)”,本論文中使用的Matlab工具是一個(gè)很好的解決很多工程的龐大向?qū),使用它產(chǎn)生的隨機(jī)數(shù)即為“偽隨機(jī)數(shù)”。
舉一個(gè)簡單的例子 :
變量X和Y是服從相同分布的,X在值域[1.0,2.0]中隨機(jī)取值,Y是獨(dú)立于X的在[3.0,4.0]中取值的隨機(jī)變量。設(shè)函數(shù)Z=X+Y是MONTE CARLO方法中所要研究的概率模型,Z為所求參數(shù),通過對(duì)X和Y的隨機(jī)抽樣,來計(jì)算參數(shù)Z的統(tǒng)計(jì)特征,并給出近似值。
首先需對(duì)變量X和Y在其分布范圍內(nèi)隨機(jī)取值,將X和Y的每一個(gè)隨機(jī)值相加就得到Z的一個(gè)隨機(jī)值,然后重復(fù)該過程N(yùn)次(一般為1000次)。這個(gè)隨機(jī)取值的過程可用MATLAB工具實(shí)現(xiàn),得到的N個(gè)隨機(jī)N值可用MATLAB進(jìn)行仿真從而得到參量Z的概率分布曲線 (見MATLAB簡介一節(jié))。表1為該例子的一個(gè)隨機(jī)結(jié)果。
次序 X[1.0,2.0] Y[3.0,4.0] Z=X+Y
1 1.62 3.63 5.25
2 1.93 3.15 5.08
3 1.19 3.42 4.61
4 1.40 3.75 5.15
5 1.56 3.45 5.01
從這個(gè)簡單的算例可以看出,如果Z是由許多復(fù)雜變量組成的函數(shù),就可以通過MONTE CARLO 方法來解決。建立在Reich模型基礎(chǔ)上的碰撞危險(xiǎn)評(píng)估算式就是MONTE CARLO方法中所要研究的概率模型,只需將該算式中各不確定參量在其分布范圍內(nèi)隨機(jī)取值,然后根據(jù)算式得出計(jì)算結(jié)果(總碰撞危險(xiǎn))的隨機(jī)序列值。如果進(jìn)行足夠多次數(shù)的循環(huán),該序列就會(huì)非常近似總碰撞危險(xiǎn)次數(shù)的概率分布。
2.3 Matlab軟件及編程思想
出于科學(xué)數(shù)值計(jì)算上的原因,Matlab語言應(yīng)運(yùn)而生。目前在Matlab環(huán)境下可以進(jìn)行數(shù)值計(jì)算、符號(hào)計(jì)算、實(shí)現(xiàn)視圖建模仿真、文字處理、與硬件實(shí)時(shí)交互等功能。在本篇中主要用到的功能有:
(1)數(shù)值計(jì)算功能(Numeric Function)
矩陣的創(chuàng)建和保存,數(shù)值矩陣的四則運(yùn)算、乘方運(yùn)算和各種分解;數(shù)組運(yùn)算、多項(xiàng)式及數(shù)值積分運(yùn)算。
(2)符號(hào)計(jì)算功能
符號(hào)計(jì)算有兩大特點(diǎn):符號(hào)解析解和任意精度的數(shù)值解。
(3)圖形和可視化功能(Graphic Function)
Matlab具有強(qiáng)大的圖形化功能和可視化功能,其功能函數(shù)種類全面而詳盡。高級(jí)功能圖形指令有:二維、三維曲線,圖形標(biāo)識(shí);坐標(biāo)軸的控制;圖形的疊加等。
1. 編程思想
在本篇中利用的數(shù)據(jù)都是離散數(shù)據(jù),比如觀測到一定偏航距離下的飛機(jī)數(shù)。因此需要用Matlab的圖形和可視化功能首先將這些離散數(shù)據(jù)用柱狀圖表示出來。在此之前只需要簡單的將這些離散數(shù)據(jù)用X,Y坐標(biāo)方向上的兩個(gè)數(shù)組定義一下,然后利用Matlab庫函數(shù)提供的bar(x,y)就可以畫出象圖2a一樣的柱狀圖。
對(duì)離散數(shù)據(jù)的擬合在本篇中只有兩種:正態(tài)分布曲線的擬合以及多項(xiàng)式函數(shù)的擬合。對(duì)離散數(shù)據(jù)進(jìn)行正態(tài)分布曲線擬合時(shí)如果 較明確,就可以利用Matlab庫函數(shù)提供的y=normpdf(x, )畫出所服從的分布曲線。但對(duì)于 不明確的離散數(shù)據(jù),只能通過算法來實(shí)現(xiàn)。
在對(duì)圖4-7a中所擬合的曲線尾部進(jìn)行處理時(shí),采用了在水平線和多項(xiàng)式擬合函數(shù)曲線之間插值的方法。在用Matlab畫水平線時(shí),一定要注意Matlab在畫圖時(shí),橫坐標(biāo)和縱坐標(biāo)的維數(shù)要是一樣的。如果要橫坐標(biāo)上有10個(gè)點(diǎn),要畫y=779這個(gè)常數(shù),只能將語句寫為:y=779*ones(size(10)),size(x)表示與橫坐標(biāo)具有相同的維數(shù)。在對(duì)離散點(diǎn)進(jìn)行多項(xiàng)式擬合時(shí),Matlab提供兩個(gè)函數(shù)就可以完成這項(xiàng)功能:p=polyfit(x,y,n)和y2=polyval(p,x)。當(dāng)n=3時(shí),前式表示對(duì)離散點(diǎn)進(jìn)行形如 的3次多項(xiàng)式擬合,并把系數(shù) 賦值給p。n的取值不一樣,多項(xiàng)式曲線的現(xiàn)狀也是大不一樣的,因此應(yīng)用不同次數(shù)的多項(xiàng)式進(jìn)行插值,然后進(jìn)行比較,取一個(gè)擬合效果較為光滑的次數(shù)作為最終采用的結(jié)果。后式表示系數(shù)p對(duì)應(yīng)的多項(xiàng)式在x點(diǎn)對(duì)應(yīng)的y值。接下來只需要調(diào)用繪制二維曲線函數(shù)plot(x,y,'-'),就可以繪出多項(xiàng)式函數(shù)擬合曲線。
|