基于R软件的二重积分近似计算

2018-12-05 07:23张孔生
滁州学院学报 2018年5期
关键词:蒙特卡罗省略技巧

张孔生

1 引言

二重积分是一重积分的推广,是微积分和数学分析里非常重要的一个概念[1,2]。二重积分能否精确计算,主要依赖于积分区域的形状和被积函数的表达式。现有的教学方式通常是在讲解定义之后,通过一系列的习题让学生熟悉二重积分的计算技巧。二重积分通常需要转化为累次积分,再利用相应的积分技巧计算积分值。但是,当被积函数较复杂时,则需要考虑近似计算。本文的目的是通过课堂教学,让学生学会利用R软件,通过简单的编程,得到二重积分的近似值。

现有的计算软件非常多,R软件是其中一个,也是统计学里广泛应用的一个软件,使用R软件进行教学的主要原因是其体积小且免费,这有利于我们在课堂上很方便地使用R软件。在计算变上限二重积分时,R软件还没有现成的软件包,我们拟结合概率论的相关知识[3,4],通过蒙特卡罗模拟方法,对二重积分进行近似计算。

2 实际例子

先从特殊的二重积分的近似计算开始,介绍近似计算的原理以及相应的步骤,再给出更一般的二重积分的例子,此积分不能够得到精确值,但可以应用蒙特卡罗模拟方法[5]得到近似值,进而说明此方法的实用性。

例1计算二重积分

(1)

Davidson[6]在一份讲义中,提出了二维连续型随机变量的随机数生成方法,具体地,

随机变量X的边际概率密度函数为

随机变量X的累积分布函数为

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)

计算的结果为0.2505365, 与真实值0.25非常接近,可以看出偏差非常小。

例2计算二重积分

2)

先在被积函数里构造一个常数2,即

其中(X,Y)服从区域D={(x,y)|0≤x≤1,0≤y≤x}的均匀分布。相应的R程序如下(此处省略例1的R程序的前6行)。

f2=exp(S+T);

esti2=1/2*mean(fxy2)

例3计算二重积分

(3)

由于被积函数的特点,不能精确计算此二重积分的值。

按前述方法,通过模拟,I3≈1.070933。程序如下(此处省略例1的R程序的前6行)。

f3=exp(S^2+T^2);

esti3=1/2*mean(f3)

3 小结

本文主要利用R软件计算变上限的二重积分,关键是将二重积分转化成变量函数的数学期望,重点是在联合分布函数已知的条件下,如何生成二维随机向量,再利用算术平均即可得到二重积分的近似值,与精确值比较,发现给出的模拟方法精度高,且计算量较小,使得二重积分计算更易于求解。

通过适当的软件教学让同学们及时掌握所学的内容,进一步提升同学们的实际动手操作能力,这也为他们以后学习或深造打下基础,让他们及早地了解软件的工作方式,培养同学们的学习兴趣。

猜你喜欢
蒙特卡罗省略技巧
肉兔短期增肥有技巧
偏旁省略异体字研究
开好家长会的几点技巧
利用蒙特卡罗方法求解二重积分
利用蒙特卡罗方法求解二重积分
指正要有技巧
提问的技巧
中间的省略
探讨蒙特卡罗方法在解微分方程边值问题中的应用
复合型种子源125I-103Pd剂量场分布的蒙特卡罗模拟与实验测定