下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.1、计算值 问题描述 设有一半径为r的圆及其外切四边形。向该正方形随机地投掷n个点。设落入圆内的点数为k。由于所投入的点在正方形上均匀分布,因而所投入的点落入圆内的概率为 。所以当n足够大时,k与n之比就逼近这一概率。从而。 程序具体代码如下:cppview plaincopy1. /随机化算法用随机投点法计算值2. #includestdafx.h3. #includeRandomNumber.h4. #include5. usingnamespacestd;6. 7. doubleDarts(intn);8. 9. intmain()10. 11. intn1=100,n2=1000,n
2、3=1000,n4=10000,n5=10000000;12. coutn1=n1,1=Darts(n1)endl;13. coutn2=n2,2=Darts(n2)endl;14. coutn3=n3,3=Darts(n3)endl;15. coutn4=n4,4=Darts(n4)endl;16. coutn5=n5,5=Darts(n5)endl;17. return0;18. 19. 20. /用随机投点法计算值21. doubleDarts(intn)22. 23. staticRandomNumberdart;24. intk=0;25. 26. for(inti=1;i=n;i+
3、)27. 28. doublex=dart.fRandom();29. doubley=dart.fRandom();30. if(x*x+y*y)=1)31. 32. k+;33. 34. 35. 36. return4*k/double(n);37. 程序运行结果如图: 2、计算定积分 例:设f(x)=x2,求 解: 1)随机投点法计算定积分 基本思想是在矩形区域上随机均匀的投点实现。本算法的基本思想是在积分区间上随机均匀的产生点, 即在a,b上随机均匀的取点, 求出由这些点产生的函数值的算术平均值, 再乘以区间宽度, 即可解出定积分得近似解。 算法具体代码如下:cppview plain
4、copy1. /随机化算法用随机投点法计算定积分2. #includestdafx.h3. #includeRandomNumber.h4. #include5. usingnamespacestd;6. 7. doubleDarts(intn,doublea,doubleb);8. doublef(doublex);9. 10. intmain()11. 12. intn1=100,n2=1000,n3=1000,n4=10000,n5=10000000;13. doublea=2.0,b=3.0;14. coutn1=n1,r1=Darts(n1,a,b)endl;15. coutn2=n
5、2,r2=Darts(n2,a,b)endl;16. coutn3=n3,r3=Darts(n3,a,b)endl;17. coutn4=n4,r4=Darts(n4,a,b)endl;18. coutn5=n5,r5=Darts(n5,a,b)endl;19. return0;20. 21. 22. /*23. *基本思想是在矩形区域内随机均匀投点,求出由这些点24. *产生的函数值的算术平均值,再乘以区间宽度,即可得25. *出定积分的近似解26. */27. doubleDarts(intn,doublea,doubleb)28. 29. staticRandomNumberdart;3
6、0. doublesum=0.0;31. for(inti=0;in;i+)32. 33. doublex=(b-a)*dart.fRandom()+a;/产生a,b)之间的随机数34. sum=sum+f(x);35. 36. return(b-a)*sum/n;37. 38. 39. doublef(doublex)40. 41. returnx*x;42. 程序运行结果如图: 2)概率法法计算定积分 设f:a,bc,d连续函数(如图2 所示), 则由曲线y=f(x)以及x 轴和直线x=a,x=b 围成的面积由定积分给出。根据几何概型可知。假设向矩形区域随机均匀的投镖n 次, 落入阴影为K
7、次, 又设M为x=a、x=b、y=c、y=d 所围成的矩形面积, s 为定积分面积,则, 所以s= k/nM。 算法具体代码 如下:cppview plaincopy1. /随机化算法用概率法计算定积分2. #includestdafx.h3. #includeRandomNumber.h4. #include5. usingnamespacestd;6. 7. doubleDarts(intn,doublea,doubleb,doubled);8. doublef(doublex);9. 10. intmain()11. 12. intn1=100,n2=1000,n3=1000,n4=10
8、000,n5=10000000;13. doublea=2.0,b=3.0;14. doubled=f(b);15. coutn1=n1,r1=Darts(n1,a,b,d)endl;16. coutn2=n2,r2=Darts(n2,a,b,d)endl;17. coutn3=n3,r3=Darts(n3,a,b,d)endl;18. coutn4=n4,r4=Darts(n4,a,b,d)endl;19. coutn5=n5,r5=Darts(n5,a,b,d)endl;20. return0;21. 22. 23. /*24. *f为积分函数,n为投镖25. *总数,a,b为积分区间,c,d为函26. *数f的值域的端点值27. */28. doubleDarts(intn,doublea,doubleb,doubled)29. 30. staticRandomNumberdart;31. intk=0;32. for(inti=0;in;i+)33. 34. doublex=(b-a)*dart.fRandom()+a;/产生a,b)之间的随机数35. doubley=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 招标投标流程培训
- 2024年饲料及宠物食品项目资金需求报告代可行性研究报告
- 矿棉项目可行性研究报告
- 隔热垫项目可行性研究报告
- 新建雷贝拉唑钠肠溶片项目立项申请报告
- 年产xxx尖尾棘轮扳手项目可行性研究报告(可行性分析)
- 年产xx橡胶木饰面项目可行性研究报告(投资方案)
- 慕课职业生涯规划
- 2023-2024学年广东省深圳市龙岗区三年级(上)期末英语试卷
- 4.3海-气相互作用课件高中地理人教版(2019)选择性必修一
- 乡村防灾减灾救灾知识讲座
- 高中物理《光学》练习题(附答案解析)
- 2024年中国大地保险公司招聘笔试参考题库含答案解析
- Thoughtworks 软件质量体系白皮书 2023
- 专项施工方案专家论证表格
- 2023年重庆市高考思想政治试卷真题(含答案)
- 米兰大教堂完整版本
- 《我爱宁波》四年级教材说明
- 职工运动会羽毛球赛秩序册
- JGJ114-2014 钢筋焊接网混凝土结构技术规程
- 绘本剧童话剧《猜猜我有多爱你》完整剧本
评论
0/150
提交评论