《蒙特卡洛实验报告12p》由会员分享,可在线阅读,更多相关《蒙特卡洛实验报告12p(8页珍藏版)》请在金锄头文库上搜索。
1、专业:核工程与核技术实验一 蒙特卡罗方法一、实验目的1、了解蒙特卡罗方法方法的基本思想;2、掌握蒙特卡罗方法计算面积、体积的方法;3、掌握由已知分布的随机抽样方法。二、实验原理Monte Carlo方法,又称统计模拟方法或计算机随机模拟方法,是一种基于“随机数”进行数值模拟的方法,一种采用统计抽样理论近似求解物理或数学问题的方法。倘若待求量可以表述成某些特征量的期望值、某些事件出现的概率或两者的函数形式,那么可采用蒙特卡罗方法求解。在求解某些特征量的期望值或某些事件出现的概率时,必须构建合符实际的数学模型。例如采用蒙特卡罗方法计算某函数所围面积时,构建的数学模型是构造一已知面积的可均匀抽样区域
2、,在该区域投点,由伯努利定理大数定理可知,进入待求区域投点的频率依概率1收敛于该事件出现的概率(面积之比)。由已知分布的随机抽样方法指的是由已知分布的总体中抽取简单子样。具体方法很多,详见课本第三章。三、实验内容1、安装所需计算工具(MATLAB等);以下内容采用工具软件中自带伪随机数发生器进行计算。2、求解以下区域的面积、体积:2.1、给定曲线y =2 x2 和曲线y3 = x2,曲线的交点为:P1( 1,1 )、P2( 1,1 )。曲线围成平面有限区域,用蒙特卡罗方法计算区域面积;2.2、计算所围体积其中。3、对以下已知分布进行随机抽样:三、实验报告编写1、给出各题的抽样程序并解释语句的含
3、义;2、给出2.1和2.2抽样结果误差随抽样次数的关系图,并解释原因;表1 实验记录表序号1234567试验次数103110451041.21051.51051.81062.0107试验时间计算结果实验误差3、给出3题的抽样框图、试验累积频率与理论累积频率关系图,并给出抽样次数(106)与抽样时间。2.1程序代码编写如下:N=106;% 总投点个数S=0; %记录投点在所围图形中的个数SS=0;for i=1:Nx=2*rand-1;%产生的随机变量x,y y=2*rand; ;%产生x和y的坐标 if(y=x2)% 判定是否落入所围图像中 S=S+1; %进入则加1 SS=SS+12;end
4、end Area=4*S/N%计算面积 Dev=SS/N-(S/N)2%计算方差 A=sqrt(Dev/N)%计算标准差toc 实验数据如下:序号1234567试验次数103110451041.21051.51051.81062.0107试验时间0.000000 s0.031000 s1.182000 s17.609000 s29.453000 s310.23515 s4.4532523 s计算结果 2.13202.13522.14442.12922.13942.12072.1258实验误差0.01580.00500.00220.00140.00134.198e-0045.568e-004请输
5、入总投点个数:1500002.2实验代码如下: clear;clc;M=0;N= 5*104;tic;for i=1:N x=2*rand()-1; y=2*rand()-1; z=2*rand(); t=x2+y2; s=z2; if s=t if t=-s+2*z M=M+1; end endendtocMIANJI=M/N*8clear M N i x y;计算结果:N=50000时面积为3.1350,计算时间约0.282s。实验数据如下: 序号1234567试验次数103510451041.21051.51051.81062.0107试验时间0.000000s0.016000s0.00
6、0000s0.016000s0.204000s0.265000s2.609000s计算结果2.80803.15943.1536 3.13953.14013.14713.1419实验误差0.3336-0.0178-0.01200.00210.0015-0.0055-3.0735e-0042.3程序代码编写如下:clear;clc;M = input(输入所需产生随机变量的个数:n);x = zeros(M,1);tic;for i=1:M if(rand()=0.5) x(i) = max(rand(),rand() x(i) = max(x(i),rand(); x(i) = max(x(i),rand(); else x(i) = min(rand(),rand(); x(i) = min(x(i),rand(); endendplot(x,g.)tocclear M;六、实验心得通过本次实验后,让我发现这门课非常有趣,并没有想象的那么枯燥无味,是一门很有实用价值的一门学科。同时让我学习到MATLAB的基本操作和用法。