蒙特卡罗方法介绍( 二)
蒙特卡羅方法介紹( 二)
一、蒙特卡羅求解定積分
蒙特卡洛方法求解定積分有兩種方法,一種是上一節中講的投點法,另外一種是期望法(也稱平均值法)。
1.1 投點法
給出如下曲線f(x)f(x)f(x),求f(x)f(x)f(x)在a,ba,ba,b上的積分,即xxx在a,ba,ba,b上與曲線f(x)f(x)f(x)圍成的面積。隨機在如下矩形中進行投點,假設綠色點數為ggg,紅色點數為rrr,矩陣的面積為AAA,則綠色部分的面積SSS就是:
S=A?gr+gS = A*\frac{g}{r+g} S=A?r+gg?
注意,蒙特卡羅方法所求的數值是一個近似值,而不是精確值。
1.2 期望法(平均值法)
1.2.1 無意識統計學家定律(Law of the unconscious statistician,LOTUS)
統計學中期望描述了隨機變量的平均取值的大小特征,計算期望過程:試驗中每次可能結果的概率值乘以其結果的總和,也就是數值乘以其發生的概率的和。理解無意識統計學家定律就是告訴我們,事件萬物相互之間是有相互聯系的,一個事件的發生概率一定程度上可以用另一個事件的發生概率進行描述,比如函數F(X)=(X?3)2F(X) = (X-3)^2F(X)=(X?3)2中,XXX是一個隨機變量,XXX的概率密度函數是影響到F(X)F(X)F(X)取值的概率密度函數的。
無意識統計學加定律,則是告訴已知隨機變量XXX的概率分布fx(x)f_x(x)fx?(x),但不知道g(X)g(X)g(X)的分布,此時用LOTUS公式能計算出函數g(X)g(X)g(X)的數學期望。
XXX是離散分布時
E[g(X)]=∑xg(X)fx(x)E[g(X)] = \sum_xg(X)f_x(x) E[g(X)]=x∑?g(X)fx?(x)
XXX是連續分布時
E[g(X)]=∫g(X)fx(x)dxE[g(X)] = \int g(X)f_x(x)dx E[g(X)]=∫g(X)fx?(x)dx
常見的分布變換如下:
1.2.2 期望法
還是上邊的例子,我們用期望法求解曲線的面積。
任意選取一組獨立的、同分布的隨機變量Xi{X_i}Xi?,Xi{X_i}Xi?在[a,b][a,b][a,b]上服從分布律fxf_xfx?,也就是說fxf_xfx?是隨機變量XXX的概率密度函數(PDF)或者PMF。令:
g?(x)=g(x)fx(x)g^*(x) = \frac{g(x)}{f_x(x)} g?(x)=fx?(x)g(x)?
則g?(x)g^*(x)g?(x)也是一組獨立同分布的隨機變量。因為g?(x)g^*(x)g?(x)是xxx的函數,所以,根據LOTUS得:
E[g?(Xi)]=∫abg?(x)fx(x)dx=∫abg(x)dx=IE[g^*(X_i)] = \int_a^b g^*(x)f_x(x)dx = \int_a^b g(x)dx = I E[g?(Xi?)]=∫ab?g?(x)fx?(x)dx=∫ab?g(x)dx=I
由強大數定理知:
Pr(lim?N→∞1N∑g?(Xi)=I)=1P_r(\lim_{N \to \infty} \frac{1}{N} \sum g^*(X_i) = I) = 1 Pr?(N→∞lim?N1?∑g?(Xi?)=I)=1
上式理解為所有概率值和為1.
假設若計算的積分有如下形式:
I=∫abg(x)dxI = \int_a^b g(x)dx I=∫ab?g(x)dx
其中,被積函數g(x)g(x)g(x)在區間[a,b][a,b][a,b]內可積,任意選擇一個有簡便方法可以抽樣的函數fx(x)f_x(x)fx?(x),滿足以下條件:
{fx(x)≠0(a≤x≤b),g(x)≠0∫abg(x)dx=1\begin{cases} f_x(x) \neq 0& (a \le x \le b),g(x)\neq 0\\ \int_a^b g(x)dx=1& \\ \end{cases} {fx?(x)?=0∫ab?g(x)dx=1?(a≤x≤b),g(x)?=0?
記:
g?(x)={g(x)fx(x),fx(x)≠00,fx(x)=0g^*(x) = \begin{cases} \frac{g(x)}{f_x(x)} &,f_x(x)\neq 0\\ 0,& f_x(x) = 0\\ \end{cases} g?(x)={fx?(x)g(x)?0,?,fx?(x)?=0fx?(x)=0?
那么原積分可以寫成:
I=∫abg?(x)fx(x)dxI=\int_a^b g^*(x)f_x(x)dx I=∫ab?g?(x)fx?(x)dx
計算積分的步驟為:
I?=1N∑1Ng?(Xi)I^*=\frac{1}{N} \sum_1^N g^*(X_i) I?=N1?1∑N?g?(Xi?)
將I?I^*I?作為III的近似值。
如果a,ba,ba,b為有限值,取fx(x)f_x(x)fx?(x)為均勻分布
fx(x)={1b?a,a≤x≤b0,otherwisef_x(x) = \begin{cases} \frac{1}{b-a} &,a \le x \le b\\ 0,& otherwise\\ \end{cases} fx?(x)={b?a1?0,?,a≤x≤botherwise?
則:
I=∫abg(x)dx=(b?a)?1b?a∫abg(x)dx=(b?a)∫abg(x)1b?adxI=\int_a^b g(x)dx = (b-a) * \frac{1}{b-a}\int_a^b g(x)dx=(b-a)\int_a^b g(x)\frac{1}{b-a}dx I=∫ab?g(x)dx=(b?a)?b?a1?∫ab?g(x)dx=(b?a)∫ab?g(x)b?a1?dx
計算積分的步驟為:
I?=b?aN∑1Ng(Xi)I^*=\frac{b-a}{N} \sum_1^N g(X_i) I?=Nb?a?1∑N?g(Xi?)
將I?I^*I?作為III的近似值。
二、理解平均值法
給出如下問題,如圖所示:已知曲線f(x)f(x)f(x),求
F=∫abf(x)dxF=\int_a^b f(x)dx F=∫ab?f(x)dx
以上問題,即求解陰影部分的面積。這里,我們使用一種近似的方法來求積分,任意選取a,ba,ba,b之間的一點xxx,函數值為f(x)f(x)f(x),則陰影部分的面積約等于:
S=f(x)?(b?a)S=f(x)*(b-a) S=f(x)?(b?a)
以上隨機選取了一個點,如果隨機選取4個點,那我們分別計算4個面積,然后取平均值,作為陰影部分的面積,如下圖所示:
我們選取的點越多,計算出來的值也就越接近真實值。假設隨機選取NNN個點,則根據以上,我們可以得出:
S=1N∑1Nf(xi)?(b?a)=b?aN∑1Nf(xi)S=\frac{1}{N} \sum_1^N f(x_i)*(b-a) = \frac{b-a}{N} \sum_1^N f(x_i) S=N1?1∑N?f(xi?)?(b?a)=Nb?a?1∑N?f(xi?)
當然,這也是一種近似方法。
參考文獻
總結
以上是生活随笔為你收集整理的蒙特卡罗方法介绍( 二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pat天梯赛练习 L2-006
- 下一篇: 详解中奖概率逻辑:为什么你中不了特等奖(