蒙特卡罗方法学习总结 - 范文中心

蒙特卡罗方法学习总结

06/21

蒙特卡罗方法学习总结

核工程与核技术2014级3班张振华[1**********]

一、蒙特卡罗方法概述

1.1蒙特卡罗方法的基本思想

1.1.1基本思想

蒙特卡罗方的基本思想就是,当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率、数学期望有关的量时,通过某种试验方法,得出该事件发生的频率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。

1.1.2计算机模拟打靶游戏

为了能更为深刻地理解蒙特卡罗方法的基本思想,我们学习了蒲丰氏问题和打靶游戏两大经典例子。下面主要对打靶游戏进行剖析、计算机模拟(MATLAB程序)。

设某射击运动员的弹着点分布如表1-1

所示,

首先用一维数轴刻画出已知该运动员的弹

着点的分布如图1-1所示。研究打靶游戏,我

们不用考察子弹的运动轨迹,只需研究每次“扣图1-1

动扳机”后的子弹弹着点。每一环数对应唯一确定的概率,且注意到概率分布函数有单调不减和归一化的性质。首先我们产生一个在(0,1)上均匀分布的随机数(模拟扣动扳机),然后将该随机数代表的点投到P轴上(模拟子弹射向靶上的一个确定点),得到对应的环数(即子弹的弹着点),模拟打靶完成。反复进行N次试验,统计出试验结果的样本均值。样本均值应当等于数学期望值,但允许存在一定的偏差,即理论计算值应该约等于模拟试验结果。

clearall;clc;

N=100000;s=0;

forn=1:N%step4.重复N次打靶游戏试验

x=rand();

if(x

g=7;

s=s+g;

elseif(x

g=8;s=s+g;

elseif(x

g=9;s=s+g;

else

g=10;s=s+g;

end

end%step1.产生在(0,1)上均匀分布的随机数%step2.若随机数落在(0.0,0.1)上,则代表弹着点在7环%step3.统计总环数%step2.若随机数落在(0.1,0.2)上,则代表弹着点在8环%step2.若随机数落在(0.2,0.5)上,则代表弹着点在9环%step2.若随机数落在(0.5,1.0)上,则代表弹着点在10环

gn_th=7*0.1+8*0.1+9*0.3+10*0.5;

fprintf('理论值:%f\n',gn_th);

gn=s/N;

fprintf('试验结果:%f\n',gn);%step5.计算、输出理论值%step6.计算、输出试验结果

1.2蒙特卡罗方法的收敛性与误差

1.2.1收敛性

由大数定律可知,应用蒙特卡罗方法求近似解,当随机变量Z的简单子样数N趋向于无穷大(N充分大)时,其均值依概率收敛于它的数学期望。

1.2.2误差

ˆ-E(Z)

1.2.3收敛性与误差的关系

在一般情况下,求具有有限r阶原点矩EZ)

-1⎛-r

⎫⎪。不难看出,在具有有限方差(r=2)的假设下,试验次数N需要增加两个数O N ⎪⎝⎭

量级,所以在实际的应用中应作出适当的平衡。

1.3蒙特卡罗方法的优缺点

1.3.1优点

(1)可以逼真地模拟出具有随机性质的事物的特点及物理实验过程;

(2)受几何条件的限制较小;

(3)收敛速度与问题的维数无关,在处理多维度问题时有更明显的优势;

(4)具有同时计算多个方案与多个未知量的能力;

(5)误差容易确定;

(6)程序结构简单,容易借助计算机实现。

1.3.2缺点

(1)收敛速度慢,故通常不用来处理低维度问题;

(2)误差具有概率性;

(3)在粒子输运问题中,计算结果与系统大小有关。

综上所述,在应用蒙特卡罗方法解决现实问题时,应充分考虑蒙特卡罗方法的优缺点,尽可能地发挥其优点,同时还要注意到其缺点有可能带来的问题。

1.4蒙特卡罗方法在核科学技术方面的主要应用

蒙特卡罗方法在核科学技术方面主要应用于粒子输运问题。

二、随机数

2.1随机数的定义、性质及产生

2.1.1随机数的定义

由单位均匀分布(最简单、最基本的分布)抽取的简单子样称为随机数序列,其中每一个体称为随机数,通常用ξ表示。

2.1.2随机数的性质

由随机数的定义,可以知道随机数本身具有独立性、均匀性两大性质。

2.1.3随机数的产生

可以使用随机数表和物理方法来产生随机数。

随机数表,由0到9十个数字组成,每个数字等概率出现且相互独立。若需要一个n位有效数字的随机数,只需要将随机数表中每n个相邻的随机数字合并在一起,且在最高位前加上小数点即可。但是,随机数表在计算机中占用的内存空间很大,而且难以满足使用蒙特卡罗方法时需要产生大量随机数的要求,故该方法不适于在计算机上使用。

物理方法,利用某些物理现象,在计算机上增加某些特殊设备,可以在计算机上直接产生随机数。但是,此方法产生的随机数序列无法重复实现,给结果验算带来极大的困难,而且须另外在计算机上联接附加设备,故该方法亦不适于在计算机上使用。

在现实使用蒙特卡罗方法时,通常使用数学方法来产生伪随机数来替代随机数。

2.2伪随机数

2.2.1伪随机数

在计算机上用递推公式ξn+k=T(ξn,ξn+1, ,ξn+k-1),n=1,2, 产生随机数数列是最常见的产生伪随机数的方法。对于给定的初始值ξ1,ξ2, ,ξk,确定ξn+k,n=1,2, 。

2.2.2伪随机数的缺陷

1)产生伪随机数的递推公式和处置确定后,整个随机数序列随之被唯一确定,不满足随机数相互独立的要求。但是,只要递推公式设计比较合理,随机数间的相互独立性可以近似满足随机数的要求。

2)随机数序列是由递推公式确定得,而在计算机上所能表示的[0,1]上的数又是有限的。如果出现有n',n''(n'

2.3产生伪随机数的乘同余方法

2.3.1产生伪随机数的乘同余方法

乘同余方法的一般形式:对于任一初始值x1;伪随机数序列下面的递推公式确定:

⎧xi+1≡a⋅xi(modM)⎪⎨ξ=x+,i=1,2, i+1⎪M⎩

通常,取M=2(s为计算机中二进制数的最大可能有效位数);a=5s2k+1(k为计算

。机上所能容纳的最大整数);x1=1。此时伪随机数序列的最大容量λ(M)=2s-2

2.3.2C语言乘同余方法产生伪随机数

同样,我们可以应用C语言来编程练习,加深对乘同余方法的理解。摘取乘同余方法产生随机数模拟掷骰子代码中产生伪随机数的函数doublerandnum()及与之直接相关的代码:

_int64M=pow(2,32);

_int64a=pow(5,13);

_int64xi=1;

doublerandnum()

{

_int64xn;

doublecauchy;//step1.给M赋初始值M=2^s=2^32;//step2.给a赋初始值a=5^(2k+1)=5^13;//step3.给x1赋值x1=1;

{xn=(a*xi)%M;

xi=xn;

cauchy=xi*1.0/M;}//step3.乘同余方法的递推公式;

returncauchy;

}

三、由已知分布的随机抽样

3.1随机抽样及其特点

由已知分布的随机抽样指的是由己知分布的总体中抽取简单子样。随机数序列是由单位均匀分布的总体中抽取的简单子样,属于一种特殊的由已知分布的随机抽样问题。为方便起见,用XF表示由己知分布函数F(x)中产生的简单子样的个体。对于连续型分布,常用分布密度函数f(x)表示总体的己知分布,用Xf表示由己知分布密度函数f(x)产生的简单子样的个体。另外,在抽样过程中用到的伪随机数均称随机数。

3.2直接抽样方法

3.2.1离散型分布的直接抽样方法

对于任意离散型分布F(x)=

xi

I-1

i=1Ii=1XF=XI,(∑Pi≤ξ

对于任意离散型分布,直接抽样方法是非常理想的。在前面的蒙特卡罗方法基本思想中所详述的计算机模拟打靶游戏就是一个离散型分布的直接抽样的典例,在此不再赘述。

3.2.2连续型分布的直接抽样方法

对于连续型分布,如果分布函数F(x)的反函数F(x)存在,则直接抽样方法为:-1

XF=F-1(ξ)

3.3替换法抽样

3.3.1替换法抽样的定义

为了实现某个复杂的随机变量y的抽样,将其表示成若干个简单的随机变量

x1,x2, ,xn的函数,y=g(x1,x2, ,xn)得到x1,x2, ,xn的抽样后,即可确定y的抽样,这种方法叫作替换法抽样。

3.3.2替换法抽样的应用

能生动表示蒙特卡罗方法的基本思想的另一个典型问题——蒲丰氏投针试验求圆周率。蒲丰氏投针试验在求解过程中需要用到sinθ(θ在[0,π]上均匀分布)的值,但在应用直

接抽样时需要用到待求量π,我们考虑使用替换法抽样来解决这个矛盾。

1⎧1,-1≤x≤1⎪sinϕ服从分布:f(x)=⎨-x⎪0,其他⎩

直接抽样方法为:sinϕ=sin2πξ,令ϕ=2θ,则θ在[0,π]上均匀分布。作变换⎧x=ρcosθ(ρ∈[0,1]),则sinθ=⎨y=ρsinθ⎩yx+y。

(x,y)表示上半单位圆内的点,若(x,y)在上半个单位圆内均匀分布,则对应地,θ在

[0,π]上均匀分布。又sinϕ=2sinθcosθ=2xy,那么问题最终转换为在上半个单位x+y

圆内均匀抽样(x,y)的问题。为获得上半个单位圆内的均匀点,采用挑选法,在上半个单位圆的外切矩形内均匀投点。舍弃圆外的点,余下的就是所需要的点。

同样,借助MATLAB程序来理解整个具体过程:

clearall;clc;

a=5.0;l=4.0;N=100000;

s=0;

forn=1:N

x=a*rand();

x=2*rand()-1;

y=rand();

while(x^2+y^2>1)

x=2*rand()-1;

y=rand();

end

sin_theta=(2*x*y)/(x^2+y^2);

if(x

s=s+1;

end

end

p=s*1.0/N;

result=2*l/(a*p);

fprintf('真值pi=%f\n',pi);

fprintf('计算pi=%f\n',result);

四、学习感想

在真实核物理实验中无可避免地涉及到放射性,为了避免对人员和环境造成伤害,降低成本,通常以模拟核物理实验来替代真实核物理实验。蒙特卡罗方法在实验核物理中的重要性不言而喻。

初次接触蒙特卡罗方法时,有很多基本的思路在之前都未曾接触过,所以会觉得蒙特卡罗方法非常难学。当然,本人在刚接触一门新的学科时经常会有这样的想法,一开始上课很难听得懂,作业也不会做。但我会尝试去接受、理解各种抽象的知识点,配合一定的练习去学习掌握好基本的知识。通过模仿老师所提供的或从其他途径获得的程序,慢慢地对蒙特卡罗方法有了一定的理解,上面的知识点是本人自认为是已经理解并掌握的。蒙特卡罗方法总的来说,可以总结出两个关键词:“随机抽样”、“统计”。

但是,有一些知识点(譬如蒙特卡罗方法在粒子运输中的应用),理解尚未足够透彻,难以形成自己的思路、组织语言写成学习总结。各学科之间经常会有着很多微妙的联系,在后续的学习中,将会接触到更多的专业知识,触类旁通,对理解蒙特卡罗方法应该会进一步拓宽和加深。

最后,非常感谢老师的谆谆教导!谢谢!


相关内容

  • 十大经典数学模型
    十大经典数学模型 1.蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟来检验自己模型的正确性,是比赛时必用的方法) 2.数据拟合.参数估计.插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而 ...
  • 用于不确定性分析的高斯过程响应面模型
    第20卷第1期 2011年3月 计算机辅助工程 ComputerAidedEngineering V01.20No.1Mar.2011 文章编号:1006-0871(2011)01.0101.05 用于不确定性分析的高斯过程响应面模型 设计 ...
  • 概率论第一章总结
    概率论与数理统计第一章总结 1. 随机事件 在试验的结果中,可能发生也可能不发生的事件成为随机事件,通常用字母A ,B ,C 等表示.在每次试验的结果中,如果某事件一定发生,则称为必然事件.相反,如果某事件一定不发生,则称为不可能事件. 2 ...
  • 20**年高级项目管理师复习题
    高级项目管理师1-基础知识 高级项目管理师复习题 一.项目启动: 1.项目:受时间.费用和质量资源约束 大型项目:战略目标 相关项目和子项目 项目组合:控制.协调和整体最优效果 2.项目管理的目的:项目组合值最大 复杂项目管理:选择 评估 ...
  • PMP第五版100个知识点
    100个知识点 1. 一个项目在启动阶段会进行量级估算,准确范围是-50至100%.2000版的量级估算准 确度为:-25%到+75%. 参考:PMBOK2004 P161 CH P137 7.1 成本估算. 2. 质量控制通常先于范围确认 ...
  • [环境与资源保护法学]自考知识点总结10
    <环境与资源保护法学>自考讲义(十) 第二十八章 国际环境法概述 本章主要讲述国际环境法的基本知识,学习本章,要求考生了解国际环境法的定义.渊源.体系.主体.客体以及历史发展等知识,[02.10单选.简答].[05.1006.1 ...
  • 分子模拟的方法及其应用
    第40卷第5期 当 代 化 工 Vol.40,No.5 2011年5月 Contemporary Chemical Industry May,2011 分子模拟的方法及其应用 李春艳,刘 华,刘波涛 (中北大学物理系,山西 太原030001 ...
  • 1999年蒙特利尔公约(中文版)
    1999年蒙特利尔公约 (1999年5月28日签订于蒙特利尔) 本公约的当事国: 认识到一九二九年十月十二日在华沙签订的<统一国际航空运输某些规则的公约>(以下称"华沙公约") ,和其他有关文件在统一国际航空 ...
  • [推荐父母阅读书单]
    [推荐父母阅读书单].txt等待太久得来的东西多半已经不是当初自己想要的了.一层秋雨一阵凉,一瓣落花一脉香,一样流年自难忘,一把闲愁无处藏.幸福生活九字经:有希望,有事干,有人爱.女人和女人做朋友,要之以绿叶的姿态,同时也要暗藏红花的心机. ...
  • 室内自主移动机器人定位方法研究综述
    第 卷第 期 年 月 机器人 × ∂ √ 文章编号 2 2 2 室内自主移动机器人定位方法研究综述 李群明 熊蓉 褚健 浙江大学工业控制技术国家重点实验室 浙江杭州 Ξ 摘 要 定位是确定机器人在其作业环境中所处位置的过程 应用传感器感知信 ...