- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
蒙特卡罗计算三重积分.
蒙特卡罗方法计算三重积分平均值摘要:本文是我读过文献[1]后学习到的一些知识和技巧。通过阅读文献我对蒙特卡罗方法有了一些新的认识,并对利用蒙特卡罗方法求三重积分有了较好的掌握。蒙特卡罗方法人类通过算法使计算机完成复杂的工作。人们通过算法设计和程序编制是计算机具有了“智能”。一般的算法都是确定性算法,即每一工作步骤都是确定的。还有一些算法叫概率算法,比如说舍伍德算法、拉斯维加斯算法,以及本文将要介绍的蒙特卡洛算法。这种算法允许在执行过程中随机选择下一个计算步骤。在某些问题中,随机性算法比确定性算法更有效率。这种算法的一个特征时,对于一个例子,用该算法计算几次得出的结果可能是不想同的,但是如果我们多计算几次,反复求解,就回降低误差,得到满意的结果。本文介绍蒙特卡罗方法(随机抽样法,统计实验法)。它使用概率模型进行近似计算。蒙特卡罗方法最早起源于18世纪法国学者蒲丰提出的头针问题:…….。后来,从事原子弹研制工作的冯·诺依曼和乌拉姆将其以摩纳哥的城市名称“蒙特卡罗”作为秘密代号称呼。蒙特卡罗方法的应用蒙特卡罗方法在数学、机械、金融、医学等领域的有着广泛的应用,成功解决了许多经典的数学和物理问题(前文提到的诺依曼从事的就是对裂变物质的中子随机扩散进行直接模拟的工作)。蒙特卡罗方法还可以用来求解多重积分,解线性方程组和非线性方程组[2]。下面将主要阐述利用蒙特卡罗方法解三重积分,并给出几个例子。利用蒙特卡罗方法计算实际问题的基本过程[2]:构造并描述随机概率过程。定积分计算问题本身并不是随机性质的问题,在用蒙特卡罗方法时要首先构造认为的概率过程,将非随机问题转化为随机问题。建立估量,根据随机过程建立某些估计值,即为所求问题的目标解。获取结果,对构造的概率模型进行程序设计,获得预期结果。第一个过程是很关键的,这个转化过程用蒙特卡罗法解三重积分[1]均匀随机数计算三重积分可分为平均值法和掷点法两种,在这里我们只考虑三重积分的平均值法。为了将非随机问题转化为随机问题,下面介绍几个定理并证明。定理1:设f(x,y,z)是区域Ω上的有界连续函数,对于1)取包含积分区域Ω的长方体V,V决定于axb,fyd,hz,g;2)取任一概率密度函数g(x,y,z),满足=1;3)(),i=1, … ,N是以g(x,y,z)为概率密度的随机数列,设(),i=1,…,n为落在Ω中的n个随机数,当N充分大时,有≈。证明 : 设(X,Y,Z)是以g(x,y,z)为概率密度的随机向量,,i=1,…,N为(X,Y,Z)的一组样本,,i=1,…,N为其相应的值。由大数定理,在给定的概率密度下,随机变量的统计平均值的极限是其概率平均,即证毕。接下来需要建立一定的估量,也就是建立蒙特卡罗估计值的标准误差。这里直接给出结论,即标准误差的值。我们要选择一个概率密度函数g(x,y,z),使得蒙特卡罗估计值的标准误差最小。为此我们介绍定理2。设f(x,y,z)是区域Ω上的有界连续函数,0≤f(x,y,z)≤M,按如下步骤得到计算值的最优的蒙特卡罗算法。去包含积分区域Ω的长方体V,V决定于axb,cyd,hzg.取有利概率密度函数g(x,y,z)=f(x,y,z)/c,其中c=,i=1,…,N是以g(x,y,z)为概率密度的随机数列,设,i=1,…,n为落在Ω中的n个随机数,当N充分大时,有4、算例算例1.用蒙特卡罗方法计算积分Ω:0x1,0y1,0z1(注:这个算例是文献原有算例,我重复文献的过程,验证程序的正确性)用mathematica计算得到的结果如下。使用蒙特卡罗方法计算得到的计算值为0.8995,精确值为0.895129.误差为0.49%。算例2:计算积分Ω:0x1,0y1,0z1用mathematica计算该积分的具体值使用蒙特卡罗方法计算得到的计算值为4.8954,精确值为5.07321.计算的误差3.5%。误差比较大的原因主要有两个原因,一是被积函数的近似比较粗略,二是判断语句中的判断值没有取好,三是计算的次数太少。针对后面两个原因进行改进之后,计算如下图这样误差就减少为0.28%。这个误差要比上一算例的误差还要小。文献:孙维君,秦华,蒙特卡罗方法在三重积分中的应用,山东理工大学学报(自然科学版), 2008年1月第22卷第1期。吴海霞,刘潞锋,蒙特卡罗方法在实际问题中的应用,太原师范学院学报(自然科学版),2009年三月第八卷第一期。
文档评论(0)