欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    王洪彬蒙特卡洛MonteCarlo.ppt

    • 资源ID:5414167       资源大小:1.05MB        全文页数:20页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    王洪彬蒙特卡洛MonteCarlo.ppt

    蒙特卡罗(Monte Carlo)方法,简介及算法实现(C+版&Java版)物理学院 0510267王洪彬,蒙特卡洛法是什么?,蒙特卡洛(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第二次世界大战中研制原子弹的“曼哈顿计划”。该计划的主持人之一、数学家冯诺伊曼用驰名世界的赌城摩纳哥的Monte Carlo来命名这种方法,为它蒙上了一层神秘色彩。,Monte Carlo方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件产生的“频率”来近似事件的“概 率”。19世纪人们用投针试验的方法来决定圆周率。本世纪40年代电子计算机的出现,特别是近年来高速电子计算机的出现,使得用数学方法在计算机上大量、快速地模拟这样的试验成为可能。,考虑平面上的一个边长为1的正方形及其内部的一个形状不规则的“图形”,如何求出这个“图形”的面积呢?Monte Carlo方法是这样一种“随机化”的方法:向该正方形“随机地”投掷N个点,若有M个点落于“图形”内,则该“图形”的面积近似为M/N。,圆周率的值=3.14159 26535 89793 23846 26433 83279 50288 41971 69399 3751058209 74944 59230 78164 06286 20899 86280 34825 34211 7067982148 08651 32823 06647 09384 46095 50582 23172 53594 0812848111 74502 84102 70193 85211 05559 64462 29489 54930 3819644288 10975 66593 34461 28475 64823 37867 83165 27120 1909145648 56692 34603 48610 45432 66482 13393 60726 02491 4127372458 70066 06315 58817 48815 20920 96282 92540 91715 3643678925 90360 01133 05305 48820 46652 13841 46951 94151 1609433057 27036 57595 91953 09218 61173 81932 61179 31051 1854807446 23799 62749 56735 18857 52724 89122 79381 83011 9491298336 73362 44065 66430 86021 39494 63952 24737 19070 2179860943 70277 05392 17176 29317 67523 84674 81846 76694 0513200056 81271 45263 56082 77857 71342 75778 96091 73637 1787214684 40901 22495 34301 46549 58537 10507 92279 68925 8923542019 95611 21290 21960 86403 44181 59813 62977 47713.,用该方法计算的基本思路是:1根据圆面积的公式:s=R2,当R=1时,S=。由于圆的方程是:x2+y2=1(x2为x的平方的意思),因此1/4圆面积为x轴、y轴和上述方程所包围的部分。如果在1*1的正方形中均匀地落入随机点,则落入1/4圆中的点的概率就是1/4圆的面积。其4倍,就是圆面积。由于半径为1,该面积的值为的值。,#include#include#includeconst long N=2000000000;/*定义随机点数*/void main()int n=0;double x,y;/*坐标*/srand(time(00);for(int i=1;i=N;i+)x=(double)rand()/RAND_MAX;y=(double)rand()/RAND_MAX;/*在01之间产生一个随机x,y坐标*/if(x*x+y*y=1.0)n+;/*统计落入单位圆中的点数*/coutThe PI is 4*(double)n/Nendl;/*计算出的值*/,计算机模拟实验数据处理,实验简评,由实验结果知此结果与我们前面给的值相差太大。方法不是很好,但可以通过扩大随机测试值来获得更精确的结果。注:实验中我应用了“iomanip.h”中的setprecision(int);来设置输出精度。,一道积分题,我做过一道证明积分不等式的题:我想中间的积分值可以用蒙特卡洛法求得因为它是一个二重积分,其几何直观为一 个立体的体积,很巧的是它可以完全包含 于一个棱长为1的正方体中,我们在其中产 生随机点,其中落于所求体积的点数与正 方体中产生的点数之比即为所求的积分值。下面是它的C+代码:,#include#include#include#includeconst long N=2000000000;/*定义随机点数*/void main()long n=0;double x,y,z;/*坐标*/srand(time(00);for(long i=1;i=N;i+)double m;x=(double)rand()/RAND_MAX;y=(double)rand()/RAND_MAX;z=(double)rand()/RAND_MAX;/*在01之间产生一个随机x,y,z坐标*/m=0-(x*x+y*y);if(z=exp(m)n+;/*统计落入所求体积中的点数*/coutThe integral is(double)n/Nendl;/*计算出积分值*/,两端的界值,下面是一次运行结果:,恰好界于0.496466325949717和0.766666666666667之间,The integral is 0.5577358,下面是我编写的Java程序,其实现方法与我编写的C+程序是相同的:,public class CalculatePI public static final int N=2000000000;public static void main(String args)double x,y;int n=0;for(int i=0;i N;i+)x=Math.random();y=Math.random();if(x*x+y*y=1)n+;System.out.println(The PI is+4*(double)n/N);,public class CalculateIntegral public static final int N=2000000000;public static void main(String args)double x,y,z,m;int n=0;for(int i=0;i N;i+)x=Math.random();y=Math.random();z=Math.random();m=0-x*x-y*y;if(z=Math.exp(m)n+;System.out.println(The Integral is+(double)n/N);,蒙特卡洛方法是一种比较粗糙的计算方法,它与其说是一种数学的方法,不如看成一种实验方法;有的时候人们不得不依赖于此种方法。一来人们的才智不够,二来它的确在某些方面给我们知识;但不可否认对于可控参数比较少的情况,蒙特卡洛法不失为一个对研究对象获得认识的一个有效方法;从计算来说,用蒙特卡洛法计算值确实粗糙,我们一般用更好的方法来计算。比如说级数的方法,下面是我用级数的方法编的C+和Java程序:,/CalculatePI_Ad.cpp#include#includevoid main()double sum=0.0,f=1;for(int i=1;i+=2)sum+=f/i;if(1.0/i=1e-14)break;f=-f;coutThe PI is setprecision(15)4*sumendl;,The PI is 3.14159265079415,public class CalculatePI_Ad public static void main(String args)double sum=0.0,f=1;for(int i=1;i+=2)sum+=f/i;if(1.0/i=1e-15)break;f=-f;sum*=4;System.out.println(The PI is+sum);System.out.println(The PI in Math class is+Math.PI);,The PI is 3.1415926507941494The PI in Math class is 3.141592653589793,Game Over!,

    注意事项

    本文(王洪彬蒙特卡洛MonteCarlo.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开