资源描述:
《蒙特卡罗方法(monte carlo simulation)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验数据处理方法第二部分:MonteCarlo模拟第七章均匀分布随机数的产生随机数的定义和特性随机数的产生线性乘同余方法第七章均匀分布随机数的产生7.1随机数的定义和特性7.1随机数的定义和特性什么是随机数?单个的数字不是随机数是指一个数列,其中的每一个体称为随机数,其值与数列中的其它数无关;在一个均匀分布的随机数中,每一个体出现的概率是均等的;例如:在[0,1]区间上均匀分布的随机数序列中,0.00001与0.5出现的机会均等7.1随机数的定义和特性随机数应具有的基本特性考虑一个对高能粒子反应过程的模拟:需用随机数确定:
2、出射粒子的属性:能量、方向、…粒子与介质的相互作用对这一过程的模拟应满足以下要求(相空间产生过程):出射粒子的属性应是互不相关的,即每一粒子的属性的确定独立于其它的粒子的属性的确定;粒子的属性的分布应满足物理所要求的理论分布;所模拟的物理过程要求随机数应具有下列特性:随机数序列应是独立的、互不相关的(uncorrelated):即序列中的任一子序列应与其它的子序列无关;7.1随机数的定义和特性长的周期(longperiod):实际应用中,随机数都是用数学方法计算出来的,这些算法具有周期性,即当序列达到一定长度后会重复;均匀分
3、布的随机数应满足均匀性(Uniformity):随机数序列应是均匀的、无偏的,即:如果两个子区间的“面积”相等,则落于这两个子区间内的随机数的个数应相等。例如:对[0,1)区间均匀分布的随机数,如果产生了足够多的随机数,而有一半的随机数落于区间[0,0.1]不满足均匀性如果均匀性不满足,则会出现序列中的多组随机数相关的情况均匀性与互不相关的特性是有联系的7.1随机数的定义和特性有效性(Efficiency):模拟结果可靠模拟产生的样本容量大所需的随机数的数量大随机数的产生必须快速、有效,最好能够进行并行计算。第七章
4、均匀分布随机数的产生7.2随机数的产生7.2随机数的产生[0,1]区间上均匀分布的随机数是MonteCarlo模拟的基础:[0,1]均匀分布的随机数的产生方法:利用一些具有内在的随机性的过程:放射性衰变过程(radioactivedecay);热噪声(thermalnoise);宇宙线的到达时间(cosmicrayarrival);…缺点:模拟的结果不可再现,使得模拟程序的找错困难利用事先制订好的随机数表:缺点:表的容量有限,不适合需要大量随机数的应用服从任意分布的随机数序列可以用[0,1]区间均匀分布的随机数序列作
5、适当的变换或舍选后求得7.2随机数的产生利用数学递推公式在计算机中产生随机数其中:T为某个函数,给定初值r1,r2,…,rk,可按上式确定rn+1,n=1,2,…随机数序列.算法:产生[0,M]区间上的整数In,然后利用公式rn=In/M返回[0,1]区间上的实数优点:占用计算机的内存少;产生速度快;可以重复前次的模拟结果,便于程序的找错;7.2随机数的产生缺点:不满足随机数之间相互独立的要求:公式和初值确定后,序列就唯一地确定了;伪随机数(Pseudo-RandomNumber)不满足均匀性:计算机能表示的[0,1]区
6、间内的数是有限的(由字长确定)递推到一定次数后,出现周期性的重复现象第七章均匀分布随机数的产生7.3线性乘同余方法(LinearCongruentialMethod)7.3线性乘同余方法(LinearCongruentialMethod)mod:取模运算:(aIn+c)除以m后的余数实型随机数序列:1948年由Lehmer提出的一种产生伪随机数的方法,是最常用的方法。1、递推公式:其中:I0:初始值(种子seed)a:乘法器(multiplier)c:增值(additiveconstant)m:模数(modulus)mo
7、d:取模运算:(aIn+c)除以m后的余数a,c和m皆为整数产生整型的随机数序列,随机性来源于取模运算如果c=0乘同余法:速度更快,也可产生长的随机数序列7.3线性乘同余方法(LinearCongruentialMethod)2、实型随机数序列:3、特点:1)最大容量为m:2)独立性和均匀性取决于参数a和c的选择例:a=c=I0=7,m=107,6,9,0,7,6,9,0,…7.3线性乘同余方法(LinearCongruentialMethod)4、模数m的选择:m应尽可能地大,因为序列的周期不可能大于m;通常将m取为
8、计算机所能表示的最大的整型量,在32位计算机上,m=231=2x1095、乘数因子a的选择:1961年,M.Greenberger证明:用线性乘同余方法产生的随机数序列具有周期m的条件是:c和m为互质数;a-1是质数p的倍数,其中p是a-1和m的共约数;如果m是4的倍数,a-1也是4的倍数