1、第 34 卷 第 2 期 玉林师范学院学报(自然科学) Vol.34 No.22013 年 JOURNAL OF YULIN NORMAL UNIVERSITY (Natural Science)数学1 引言 特卡洛(Monte Carlo)方法亦被称为随机仿真(Random simulation)方法或统计试验(Statistical testing)方法1,2.该方法源于第二次世界大战期间美国秘密研制原子弹的有关工作对裂变物质的中子随机扩散进行直接模拟,并以摩纳哥国最大的赌城蒙特卡洛作为该秘密工作的代号.用赌城的名称来比喻随机仿真,既体现了一种随机,也体现了一定的概率,很快被人们所接受,后
2、来人们便把计算机随机仿真方法称为蒙特卡洛方法.该方法以概率论统计理论为主要理论基础,以随机抽样为主要手段,主要用于解决确定性的数学问题(如计算定积分、解决线性方程)和随机性问题(如扩散问题、库存问题),特别在解决一些具有统计意义的数学与物理问题有着其它方法无法比拟的优点3-5.2 蒙特卡洛积分方法及其结构蒙特卡洛基本思想是1:首先建立一个随机匀均的与求解有关的概率模型,使所求的解是我们所建立模型的概率分布或数学期望;然后在该模型里随机产生随机样本;最后用算术平均值作为求解问题的近似解.蒙特卡洛积分就是建立一个随机均匀的概率模型,通过随机产生有限多个(但尽可能多)随机样本,然后计算所有样本的平均
3、值,最后乘以积分区间,就可以得到了较为准确的积分结果.2.1 一重定积分的几何意义及其蒙特卡洛方 法一重定积分的几何意义是 :若 y=g(x)是 一条连续的曲线,则ab#g(x)dx表示由曲线y=g(x),及直线x=a, x=b, y=0所围成的曲边梯形面积(在 X轴的下方取负)(如图1所示),那么计算一重定积分就可以通过 求面积的方法来实现.用蒙特卡洛方 法计 算定积分ab#g(x)dx的数值,其计算步骤为:第一步:随机产生均匀分布在 a,b的抽样样本 xn=1,2, N( N尽可能的取大);收稿日期 2012-09-17基金项目 玉林师范学院2012年度校级重点项目(2012YJZD11)
4、。作者简介 陈乐,男,玉林师范学院物理科学与技术工程学院讲师,硕士,主要研究方向:非线性动力学。利用蒙特卡洛方法计算一重和二重积分陈 乐(玉林师范学院 物理科学与技术工程学院,广西 玉林 537000)摘 要 简要概述了蒙特卡洛和蒙特卡洛积分的基本思想,给出了一重和二重积分的蒙特卡洛积分方法和二重积分的主要程序结构与算法,并通过例子进行了说明,且对积分误差进行了定性分析.关键词 蒙特卡洛方法;随机;积分中图分类号 O242.2 文献标识码 A 文章编号 1004-4671(2013)02-0022-04蒙数学第二 步:计 算每一个样本的值 g(xn), n=1,2, N;第 三步: 求平 均值
5、 g(x) = N-1g(xn)n = 1N! 作为 g(xn)的统计近似值;第四步:计算定积分ab#g(x)dx=(b-a)g(x).图1 一重积分所表示的几何意义2.2 二重定积分的几何意义及其蒙特卡洛方法二重积分在几何意义上是代表曲顶柱体的体积. f(x,y)dvD# 的值等于以 D为底,曲面 z= f(x,y)为顶的曲顶柱体(如图2所示)的体积.图2 二重积分所表示的几何意义 图3 积分函数的投影计算曲顶柱体的体积时,可以用“平行截面面积”法来计算.首先在区间 a,b上随机抽取一个样本 x0,然后作平行于 yOz面的平面 x=x0.该平面在 yOz面上的投影就是以区间 1(x0), 2
6、(x0)为底、曲线z= f(x0,y)为曲边的曲边梯形(图2中阴影部分),所以该平面的面积为然后再对截面的面积积分即可求得曲顶柱体的体积为根据二重定积分的几何意义,采用蒙特卡洛积分方法计算二重积分 f(x,y)1(x)2(x)# dy= Gab# dx的数值,计算步骤为:第一步:计算随机样本截面 A(x0)的面积:先将 A(x0)投影到 yOz平面上(如图3所示),然后采用上文所述的计算一重定积分的方法计算该截面的面积.第二步:随机均匀的产生有限个(但尽可能多)截面,然后求出所有随机截面平均面积 A(x),将其作为所有随机截面面积的统计近似平均值.第三步:计算积分 f(x,y)1(x)2(x)
7、# dy= Gab# dx=(b-a)A(x)的数值.zyo1(x0) 2(x0)z= f(x0,y)A(x0) = f(x0,y)1(x0)2(x0)#dyV = f(x,y)1(x)2(x)# dy= Gab# dxg(x)g(x)bOyxa陈 乐 利用蒙特卡洛方法计算一重和二重积分玉林师范学院学报2013 年第 2 期数学3 计算机程序计算的主要流程及算法代码根据积分的物理意义和蒙特卡洛的思想,我们不难得到该程序蒙特卡洛积分的计算机模拟程序主要流程(如图4所示)和算法代码.由于二重积分已经包括了一重积分,所以图4只给出二重积分的主要流程图,并在该流程图的基础上给了例2实例的算法代码,该算
8、法代码在Visual-Basic平台下实现6.Private Sub Form_Load()随机函数发生器Randomize TimerEnd Sub-Function f(ByVal x As Double, ByVal y As Double) 积分函数的定义f = x * yEnd Function -Private Sub Command1_Click()点击积分运算开始p=1000第一重积分的运算样本数q=1000第二重积分的运算样本数For n1 = 1 To q第二重积分的运算A = 0m = 1 + Rnd()For n2 = 1 To p第一重积分的运算Rn = 1 + (m
9、 - 1) * Rnd()随机数的产生A = A + f(m, Rn)Next n2AverAm = A / pAm = (m - 1) * AverAms = s + AmNext n1AverS = s / qPrint AverS 输出积分结果End Sub 结束程序4 计算结果与数值分析下面通过两个积分的例子进行计算机模拟并进行数值分析,其中 n表示随机均匀产生的样本数(在二重积分中, n=p*q,p、q分别为算法代码中所取的值,通过改变p、q两者的值即可实现对随机样本数 n的控制).积分结果是随机取10次在相同随机样本数下积分结果的平均值,误差是指计算结果与绝对精确值之间的绝对误差
10、值.例1. 计算一重积分 I = sin(x)0r# .例2计算二重积分 I = xydv =D#xydy1x#; E13#dx.开始产生随机样本计算样本面积取所有样本面积的平均计算体积结束图4 二重积分计算的主要流程图随机数 n n=103n=104n=105n=106n=107n=108积分结果 2.00344440 1.99902303 2.000430116 2.00034002 2.000008476 1.999999056绝对误差 0.172220% 0.0488485% 0.0215058% 0.0170010% 0.0004238% 0.0000472%表1 一重定积分积分精度
11、与随机数的关系数学表2 二重定积分积分精度与随机数的关系通过上述两个例子的计算机结果,我们可以发现蒙特卡洛积分方法具有以下特点:积分的精度与积分重数关系不大,只取决了随机样本数的选取.在例1中,当样本数 n=103时,积分结果的绝对误差达到了10-3,当样本数 n=108时,积分结果的绝对误差已经达到了10-7.对于二重定积分,当样本数 n=103时,积分结果的绝对误差达到了10-3,当样本数 n=108时,积分结果的绝对误差已经达到了10-4.这都说明,随机积分样本数选取越多,精度就越高.在计算机资源允许的条件下,通过增加样本数或通过多次积分然后取平均,使计算的精度大大提高,从而达到精度目标
12、.我们知道,用蒙特卡洛方法计算多重积分仅是该方法在高等数学教学中的一个简单应用,且随着积分重数的增加,该方法的缺陷将凸显出来.但是,由于该方法积分原程序代码比较简单,较易实现,且随着随机样本数的提高,积分结果的精度会越来越高,因此在实际的应用中,选取尽可能多随机样本数,然后再采用多次平均的方法,将会达到我们所要求的积分精度.尽可能多的随机样本数的选取,只会影响程序运算的时间,一般不会造成程序的“死循环”或“溢出”,而对于Simpson等积分方法,积分精度越高,程序运行所要的时间就越久,程度设计也更为复杂.随着计算机硬件和软件水平的不断提高,计算机运算速度越来越快,蒙特卡洛积分表现出极为强大的生
13、命力和具有深刻的现实意义,为我们处理数学问题或者物理等方面遇到的数学问题提供了一种更新、更好的思维方法和解决手段. Using the Monte Carlo Method to Calculate the One and Double Definite IntegralCHEN Le(College of Physical Science random; integral【参考文献】齐欢,王小平.系统建模与仿真M. 清华大学出版社,2004.王赞,陈云飞.基于蒙特卡洛法的硅纳米线热导率研究J.东南大学学报(自然科学版),2009,39(2):245-249.董艳秋,田敬博.蒙特卡洛法结构可靠
14、性分析J.黑龙江工程学院学报(自然科学版),2010,24(1):27-29.123张坤,陈海清.红外光源辐射特性的蒙特卡洛模拟J.激光与红外,2010,40(5):491-495.周琼,李晋斌.二维反铁磁海森堡模型的量子蒙特卡洛模拟J.广西大学学报(自然科学版),2011,36(2):334-338.陈乐,庞寿全.在Visual-Basic平台下实现DLA分形生长的模拟J.玉林师范学院(自然科学版),2007,28(3):25-27.456【责任编辑 谢文海】随机数 n n=103n=104n=105n=106n=107n=108积分结果 8.02526600 7.98157123 8.00460600 8.00170106 8.00170106 8.00123857绝对误差 0.3158250% 0.230359% 0.0575750% 0.1008343% 0.02126325% 0.0154821%陈 乐 利用蒙特卡洛方法计算一重和二重积分