張孔生
二重積分是一重積分的推廣,是微積分和數(shù)學(xué)分析里非常重要的一個(gè)概念[1,2]。二重積分能否精確計(jì)算,主要依賴于積分區(qū)域的形狀和被積函數(shù)的表達(dá)式。現(xiàn)有的教學(xué)方式通常是在講解定義之后,通過一系列的習(xí)題讓學(xué)生熟悉二重積分的計(jì)算技巧。二重積分通常需要轉(zhuǎn)化為累次積分,再利用相應(yīng)的積分技巧計(jì)算積分值。但是,當(dāng)被積函數(shù)較復(fù)雜時(shí),則需要考慮近似計(jì)算。本文的目的是通過課堂教學(xué),讓學(xué)生學(xué)會(huì)利用R軟件,通過簡單的編程,得到二重積分的近似值。
現(xiàn)有的計(jì)算軟件非常多,R軟件是其中一個(gè),也是統(tǒng)計(jì)學(xué)里廣泛應(yīng)用的一個(gè)軟件,使用R軟件進(jìn)行教學(xué)的主要原因是其體積小且免費(fèi),這有利于我們在課堂上很方便地使用R軟件。在計(jì)算變上限二重積分時(shí),R軟件還沒有現(xiàn)成的軟件包,我們擬結(jié)合概率論的相關(guān)知識[3,4],通過蒙特卡羅模擬方法,對二重積分進(jìn)行近似計(jì)算。
先從特殊的二重積分的近似計(jì)算開始,介紹近似計(jì)算的原理以及相應(yīng)的步驟,再給出更一般的二重積分的例子,此積分不能夠得到精確值,但可以應(yīng)用蒙特卡羅模擬方法[5]得到近似值,進(jìn)而說明此方法的實(shí)用性。
例1計(jì)算二重積分
(1)
Davidson[6]在一份講義中,提出了二維連續(xù)型隨機(jī)變量的隨機(jī)數(shù)生成方法,具體地,
隨機(jī)變量X的邊際概率密度函數(shù)為
隨機(jī)變量X的累積分布函數(shù)為
FY|X(y|x)
以下是R軟件的命令:
set.seed(12345)
n=100000
u1=runif(n)
u2=runif(n)
S=sqrt(u1);
T=S*u2;
f1=S*T;
esti1=mean(f1)
計(jì)算的結(jié)果為0.2505365, 與真實(shí)值0.25非常接近,可以看出偏差非常小。
例2計(jì)算二重積分
2)
先在被積函數(shù)里構(gòu)造一個(gè)常數(shù)2,即
其中(X,Y)服從區(qū)域D={(x,y)|0≤x≤1,0≤y≤x}的均勻分布。相應(yīng)的R程序如下(此處省略例1的R程序的前6行)。
f2=exp(S+T);
esti2=1/2*mean(fxy2)
例3計(jì)算二重積分
(3)
由于被積函數(shù)的特點(diǎn),不能精確計(jì)算此二重積分的值。
按前述方法,通過模擬,I3≈1.070933。程序如下(此處省略例1的R程序的前6行)。
f3=exp(S^2+T^2);
esti3=1/2*mean(f3)
本文主要利用R軟件計(jì)算變上限的二重積分,關(guān)鍵是將二重積分轉(zhuǎn)化成變量函數(shù)的數(shù)學(xué)期望,重點(diǎn)是在聯(lián)合分布函數(shù)已知的條件下,如何生成二維隨機(jī)向量,再利用算術(shù)平均即可得到二重積分的近似值,與精確值比較,發(fā)現(xiàn)給出的模擬方法精度高,且計(jì)算量較小,使得二重積分計(jì)算更易于求解。
通過適當(dāng)?shù)能浖虒W(xué)讓同學(xué)們及時(shí)掌握所學(xué)的內(nèi)容,進(jìn)一步提升同學(xué)們的實(shí)際動(dòng)手操作能力,這也為他們以后學(xué)習(xí)或深造打下基礎(chǔ),讓他們及早地了解軟件的工作方式,培養(yǎng)同學(xué)們的學(xué)習(xí)興趣。