蒙特卡罗方法学习总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图1-1
蒙特卡罗方法学习总结
核工程与核技术2014级3班张振华20144530317
一、蒙特卡罗方法概述
1.1蒙特卡罗方法的基本思想
1.1.1基本思想
蒙特卡罗方的基本思想就是,当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率、数学期望有关的量时,通过某种试验方法,得出该事件发生的频率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。
1.1.2计算机模拟打靶游戏
为了能更为深刻地理解蒙特卡罗方法的基本思想,我们学习了蒲丰氏问题和打靶游戏两大经典例子。下面主要对打靶游戏进行剖析、计算机模拟(MATLAB 程序)。
设某射击运动员的弹着点分布如表1-1
所示,
首先用一维数轴刻画出已知该运动员的弹
着点的分布如图1-1所示。研究打靶游戏,我
们不用考察子弹的运动轨迹,只需研究每次“扣动扳机”后的子弹弹着点。每一环数对应唯一确定的概率,且注意到概率分布函数有单调不减和归一化的性质。首先我们产生一个在(0,1)上均匀分布的随机数(模拟扣动扳机),然后将该随机数代表的点投到P 轴上(模拟子弹射向靶上的一个确定点),得到对应的环数(即子弹的弹着点),模拟打靶完成。反复进行N 次试验,统计出试验结果的样本均值。样本均值应当等于数学期望值,但允许存在一定的偏差,即理论计算值应该约等于模拟试验结果。
clear all;clc;
N=100000;s=0;
for n=1:N %step 4.重复N 次打靶游戏试验
x=rand();
%step 1.产生在(0,1)上均匀分布的随机数if(x<=0.1)
%step 2.若随机数落在(0.0,0.1)上,则代表弹着点在7环g=7;
s=s+g;
%step 3.统计总环数elseif(x<=0.2)
%step 2.若随机数落在(0.1,0.2)上,则代表弹着点在8环g=8;s=s+g;
elseif(x<=0.5)
%step 2.若随机数落在(0.2,0.5)上,则代表弹着点在9环g=9;s=s+g;
else
%step 2.若随机数落在(0.5,1.0)上,则代表弹着点在10环
g=10;s=s+g;
end
end gn_th=7*0.1+8*0.1+9*0.3+10*0.5;
%step 5.计算、输出理论值fprintf('理论值:%f\n',gn_th);
gn=s/N;
%step 6.计算、输出试验结果
fprintf('试验结果:%f\n',gn);1.2蒙特卡罗方法的收敛性与误差
1.2.1收敛性
由大数定律可知,应用蒙特卡罗方法求近似解,当随机变量Z 的简单子样数N 趋向于无穷大(N 充分大)时,其均值依概率收敛于它的数学期望。
1.2.2误差
由中心极限定理可知,近似值与真值的误差为N
Z E Z N αλ<-)(ˆ。式中的αλ的值可以根据给出的置信水平,查阅标准正态分布表来确定。
1.2.3收敛性与误差的关系
在一般情况下,求具有有限r 阶原点矩()∞ ⎪⎪⎭ ⎫ ⎝⎛--r N O 1。不难看出,在具有有限方差(2=r )的假设下,试验次数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伪随机数 在计算机上用递推公式 ,2,1),,,,(11==-+++n T k n n n k n ξξξξ产生随机数数列是最常见的产生伪随机数的方法。对于给定的初始值k ξξξ,,,21 ,确定 ,2,1,=+n k n ξ。 2.2.2伪随机数的缺陷 1)产生伪随机数的递推公式和处置确定后,整个随机数序列随之被唯一确定,不满足随机数相互独立的要求。但是,只要递推公式设计比较合理,随机数间的相互独立性可以近似满足随机数的要求。 2)随机数序列是由递推公式确定得,而在计算机上所能表示的]1,0[上的数又是有限的。如果出现有)(,n n n n ''<'''',使i n i n +''+'=ξξ,那么,随机数列就会出现周期性循环现象,不能满足随机数的要求。我们可以定义伪随机数的周期为n n T '-''=,伪随机数的最大容量为n ''=λ。但是,只要在一个循环周期的伪随机数个数多于所用随机数的个数时,此问题不会出现。