蒙特卡罗算法实验报告
- 格式:doc
- 大小:140.50 KB
- 文档页数:8
高性能计算实验报告引言高性能计算是计算机科学领域的一个重要研究领域,在许多科学和工程领域有着广泛的应用。
本实验旨在通过使用并行计算技术,在一个实际问题上展示高性能计算的能力和优势。
实验背景在本实验中,我们选择了一个经典的问题:计算圆周率(π)的近似值。
计算圆周率是计算机科学中的一个重要问题,也是高性能计算的一个经典案例。
我们将使用蒙特卡罗方法来近似计算圆周率。
实验步骤1.生成随机点:首先,我们需要生成大量的随机点。
我们选择使用伪随机数生成器来生成这些点。
在本实验中,我们将使用Python的random库来生成均匀分布的随机点。
2.判断点的位置:对于生成的每个随机点,我们需要判断它是否在一个圆内。
为了做到这一点,我们可以计算点到圆心的距离,并检查是否小于等于圆的半径。
如果是,则该点在圆内。
3.统计在圆内的点数:我们需要记录下在圆内的点的数量,以便进行进一步的计算。
在本实验中,我们使用一个计数器来实现这一功能。
4.计算圆周率的近似值:通过统计在圆内的点的数量和总生成的点数,我们可以计算圆周率的近似值。
根据蒙特卡罗方法的原理,圆的面积与正方形的面积的比例等于在圆内的点的数量与总生成的点数的比例。
根据圆的面积公式,我们可以得到一个近似的圆周率值。
5.重复实验:为了提高准确性,我们需要进行多次实验。
每次实验,我们都会使用不同的随机种子来生成随机点。
通过取多次实验的平均值,我们可以得到更接近真实圆周率的近似值。
实验结果与分析我们进行了10次实验,每次实验生成了1000000个随机点。
下表显示了每次实验的圆周率近似值:实验次数圆周率近似值1 3.1418742 3.1424813 3.1416224 3.1417865 3.1420406 3.1420127 3.1413368 3.1418329 3.14184410 3.141643通过计算上述结果的平均值,我们得到圆周率的近似值为3.141772。
结论本实验通过使用蒙特卡罗方法来计算圆周率的近似值,展示了高性能计算的能力。
实验八蒙特卡罗方法应用1.实验目的(1)理解随机数的概念及其重要特性。
(2)了解蒙特卡罗(Monte Carlo)方法的广泛应用。
(3)设计Raptor程序,使用蒙特卡罗方法求解问题。
2.实验准备(1)认真阅读第5.7节的内容,了解随机数和蒙特卡罗方法的基本概念。
(2)熟悉可视化计算工具Raptor的使用。
3.热身实验3.1基于蒙特卡罗方法对圆周率π的求解基于蒙特卡罗方法计算圆周率π(图8.1)。
Raptor求解程序如图8.2所示:图8.1蒙特卡罗方法计算π图8.2蒙特卡罗方法求π的程序示例问题1:Raptor程序中的随机数是如何生成的?问题2:在最后求圆周率的值的时候为什么要乘以4?根据上述的Raptor程序描述蒙特卡罗方法求圆周率的具体过程。
3.2基于蒙特卡罗方法对椭圆面积的求解已知一个椭圆的长轴长为12,短轴长为6(如图8.3),设计Raptor程序求这个椭圆的面积。
Raptor程序如图8.4所示。
图8.3长轴长为12,短轴长为6的椭圆图8.4 蒙特卡罗方法求椭圆的面积的程序示例问题1:Raptor程序中的Random函数产生随机数的范围是多少?如何使用Random函数生成[-5,5)范围内的随机数?问题2:最后求椭圆的面积的依据是什么?对变量A ,Area ,num ,n 之间具有的关系进行解释说明。
问题3:随机点的个数是否会影响计算结果的精确性?4.进阶实验4.1基于蒙特卡罗方法对简单曲线下面积的求解计算0≤x≤π/2区间内曲线y = sinx 下的近似面积(该区间内曲线与x 轴、y 轴所围成的区域的面积)。
4.2基于蒙特卡罗方法对球体在第一卦限体积的求解计算球体x 2 + y 2 + z 2 ≤ 2(图8.5)在第一卦限(x > 0,y > 0 ,z > 0)的体积。
图8.5 球体x 2 + y 2 + z 2 = 25.综合实验5.1基于蒙特卡罗方法对曲线下面积的求解 用蒙特卡罗方法求曲线()2f x x = (12)x ≤≤下的面积。
本科实验报告实验名称:《概率与统计》随机模拟实验随机模拟实验实验一设随机变量X 的分布律为-i P{X=i}=2,i=1,2,3......试产生该分部的随机数1000个,并作出频率直方图。
一、实验原理采用直接抽样法:定理:设U 是服从[0,1]上的均匀分布的随机变量,则随机变量-1()Y F U =与X 有相同的分布函数-1()Y F U =(为F(x)的逆函数),即-1()Y F U =的分部函数为()F x .二、题目分析易得题中X 的分布函数为1()1- ,1,0,1,2,3, (2i)F x i x i i =≤≤+=若用ceil 表示对小数向正无穷方向取整,则F(x)的反函数为产生服从[0,1]上的均匀分布的随机变量a ,则m=F -1(a)则为题中需要产生的随 机数。
三、MATLAB 实现f=[]; i=1;while i<=1000a=unifrnd(0,1); %产生随机数a ,服从【0,1】上的均匀分布 m=log(1-a)/log(1/2);b=ceil(m); %对m 向正无穷取整 f=[f,b]; i=i+1; enddisplay(f);[n,xout]=hist(f); bar(xout,n/1000,1)产生的随机数(取1000个中的20个)如下:-1ln(1-)()1ln()2a F a ceil ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦频率分布直方图实验二设随机变量X 的密度函数为24,0,()0,0x xe x f x x -⎧>=⎨≤⎩试产生该分布的随机数1000个,并作出频率直方图 一、实验原理取舍抽样方法,当分布函数的逆函数难以求出时,可采用此方法。
取舍抽样算法的流程为:(1) 选取一个参考分布,其选取原则,一是该分布的随机样本容易产生;二是存在常数C ,使得()()f x Cg x ≤。
(2) 产生参考分布()g x 的随机样本0x ; (3) 独立产生[0,1]上的均匀分布随机数0u ;(4) 若000()()u Cg x f x ≤,则保留x 0,作为所需的随机样本;否则舍弃。
本科生实验报告实验课程蒙特卡罗模拟学院名称核技术与自动化工程学院专业名称核技术及应用学生姓名王明学生学号**********指导教师邮箱****************实验成绩二〇一七年九月二〇一八年一月实验一、选择一种编程语言模拟出π的值一、实验目的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([-3 3 -3 3]);hold on;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;for i=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。