• 领导讲话
  • 自我介绍
  • 党会党课
  • 文秘知识
  • 转正申请
  • 问题清单
  • 动员大会
  • 年终总结
  • 工作总结
  • 思想汇报
  • 实践报告
  • 工作汇报
  • 心得体会
  • 研讨交流
  • 述职报告
  • 工作方案
  • 政府报告
  • 调研报告
  • 自查报告
  • 实验报告
  • 计划规划
  • 申报材料
  • 当前位置: 勤学考试网 > 公文文档 > 问题清单 > 正文

    蒙特卡洛实验报告2px

    时间:2020-11-08 12:46:35 来源:勤学考试网 本文已影响 勤学考试网手机站

    专业:核工程与核技术

    实验一 蒙特卡罗方法

    一、实验目的

    1、了解蒙特卡罗方法方法的基本思想;

    2、掌握蒙特卡罗方法计算面积、体积的方法;

    3、掌握由已知分布的随机抽样方法。

    二、实验原理

    Monte Carlo方法,又称统计模拟方法或计算机随机模拟方法,是一种基于“随机数”进行数值模拟的方法,一种采用统计抽样理论近似求解物理或数学问题的方法。

    倘若待求量可以表述成某些特征量的期望值、某些事件出现的概率或两者的函数形式,那么可采用蒙特卡罗方法求解。在求解某些特征量的期望值或某些事件出现的概率时,必须构建合符实际的数学模型。例如采用蒙特卡罗方法计算某函数所围面积时,构建的数学模型是构造一已知面积的可均匀抽样区域,在该区域投点,由伯努利定理大数定理可知,进入待求区域投点的频率依概率1收敛于该事件出现的概率(面积之比)。

    由已知分布的随机抽样方法指的是由已知分布的总体中抽取简单子样。具体方法很多,详见课本第三章。

    三、实验内容

    1、安装所需计算工具(MATLAB等);

    以下内容采用工具软件中自带伪随机数发生器进行计算。

    2、求解以下区域的面积、体积:

    2.1、给定曲线y =2 – x2 和曲线y3 = x2,曲线的交点为:P1( – 1,1 )、P2( 1,1 )。曲线围成平面有限区域,用蒙特卡罗方法计算区域面积;

    2.2、计算所围体积

    其中。

    3、对以下已知分布进行随机抽样:

    三、实验报告编写

    1、给出各题的抽样程序并解释语句的含义;

    2、给出2.1和2.2抽样结果误差随抽样次数的关系图,并解释原因;

    表1 实验记录表

    序号

    1

    2

    3

    4

    5

    6

    7

    试验次数

    103

    1×104

    5×104

    1.2×105

    1.5×105

    1.8×106

    2.0×107

    试验时间

    计算结果

    实验误差

    3、给出3题的抽样框图、试验累积频率与理论累积频率关系图,并给出抽样次数(>106)与抽样时间。

    2.1程序代码编写如下:

    N=10^6;% 总投点个数

    S=0; %记录投点在所围图形中的个数

    SS=0;

    for i=1:N

    x=2*rand-1;%产生的随机变量x,y

    y=2*rand; ;%产生x和y的坐标

    if((y<=2-x^2)&(y^3>=x^2))% 判定是否落入所围图像中

    S=S+1; %进入则加1

    SS=SS+1^2;

    end

    end

    Area=4*S/N%计算面积

    Dev=SS/N-(S/N)^2%计算方差

    A=sqrt(Dev/N)%计算标准差

    toc

    实验数据如下:

    序号

    1

    2

    3

    4

    5

    6

    7

    试验次数

    103

    1×104

    5×104

    1.2×105

    1.5×105

    1.8×106

    2.0×107

    试验时间

    0.000000 s

    0.031000 s

    1.182000 s

    17.609000 s

    29.453000 s

    310.23515 s

    4.4532523 s

    计算结果

    2.1320

    2.1352

    2.1444

    2.1292

    2.1394

    2.1207

    2.1258

    实验误差

    0.0158

    0.0050

    0.0022

    0.0014

    0.0013

    4.198e-004

    5.568e-004

    请输入总投点个数:

    150000

    2.2实验代码如下:

    clear;

    clc;

    M=0;

    N= 5*10^4;

    tic;

    for i=1:N

    x=2*rand()-1;

    y=2*rand()-1;

    z=2*rand();

    t=x^2+y^2;

    s=z^2;

    if s>=t

    if t<=-s+2*z

    M=M+1;

    end

    end

    end

    toc

    MIANJI=M/N*8

    clear M N i x y;

    计算结果:N=50000时面积为3.1350,计算时间约0.282s。

    实验数据如下:

    序号

    1

    2

    3

    4

    5

    6

    7

    试验次数

    103

    5×104

    5×104

    1.2×105

    1.5×105

    1.8×106

    2.0×107

    试验时间

    0.000000s

    0.016000s

    0.000000s

    0.016000s

    0.204000s

    0.265000s

    2.609000s

    计算结果

    2.8080

    3.1594

    3.1536

    3.1395

    3.1401

    3.1471

    3.1419

    实验误差

    0.3336

    -0.0178

    -0.0120

    0.0021

    0.0015

    -0.0055

    -3.0735e-004

    2.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());

    end

    end

    plot(x,'g.')

    toc

    clear M;

    六、实验心得

    通过本次实验后,让我发现这门课非常有趣,并没有想象的那么枯燥无味,是一门很有实用价值的一门学科。同时让我学习到MATLAB的基本操作和用法。

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问