您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 用蒙特卡罗方法计算π值实验报告
本科生实验报告实验课程蒙特卡罗模拟学院名称核技术与自动化工程学院专业名称核技术及应用学生姓名王明学生学号2017020405指导教师邮箱511951451@qq.com实验成绩二〇一七年九月二〇一八年一月实验一、选择一种编程语言模拟出π的值一、实验目的1、理解并掌握蒙特卡罗模拟的基本原理;2、运用蒙特卡洛思想解决实际问题;3、分析总结蒙特卡洛解决问题的优缺点。二、实验原理用蒙特卡洛思想计算π的值分为如下几部:第一步构建几何原理:构建单位圆外切正方形的几何图形。单位圆的面积为S0=π,正方形的面积S1=4;第二步产生随机数进行打把:这里用MATLAB产生均匀随机数。分别生产均匀随机数(x,y)二维坐标。X,y的范围为-1到1.总共生成N个坐标(x,y).统计随机生成的坐标(x,y)在单位圆内的个数M。第三步打把结构处理:根据S0/S1=M/N计算出π的值。因此π=4*M/N。第四步改变N的值分析π的收敛性:总数1000开始打把,依次增长10倍到1百万个计数。三、实验内容1、用matlab编写的实验代码,总计数率为1000。zfx_x=[1,-1,-1,1,1];zfx_y=[1,1,-1,-1,1];plot(zfx_x,zfx_y)axis([-33-33]);holdon;r=1;theta=0:pi/100:2*pi;x=r*cos(theta);y=r*sin(theta);rho=r*sin(theta);figure(1)plot(x,y,'-')N=1000;mcnp_x=zeros(1,N);mcnp_y=zeros(1,N);M=0;fori=1:Nx=2*(rand(1,1)-0.5);y=2*(rand(1,1)-0.5);if((x^2+y^2)1)M=M+1;mcnp_x(i)=x;mcnp_y(i)=y;endendplot(mcnp_x,mcnp_y,'.')PI1=4*M/N;2、用matlab绘制的图形四、实验结果1.当模拟总计数为1000时,某次计算结果:PI=3.128。2.改变实验总数绘制PI的收敛特性:总计数N10e310e410e510e610e7模拟值3.2363.1223.140163.1421163.141782相对误差(%)3.005078-0.62366-0.04560.0166570.006013五、实验总结模拟总计数率越低时,模拟出的π值的误差就越大,随着模拟总计数的增加,模拟值值逐渐趋近于π真实值。蒙卡模拟的方法是收敛。并且模拟的方法比较简单,可以把复杂的计算转换为简单的模拟计算;但是蒙卡模拟的收敛速度比较慢。
本文标题:用蒙特卡罗方法计算π值实验报告
链接地址:https://www.777doc.com/doc-4231614 .html