随机数序列的选取方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设随机变量X的概率密度函数为f(x),存在实数a<b,使P{a<X<b}=1。
步骤:
(1)选取常数λ,使λf(x)<1,x∈(a, b);
(2)产生两个RND随机数r1、r2,令y= a+(b-a)r1;
(3)若r2≤λf(y),则令x=y,否则剔除r1和r2,重返步骤(2).
(4)重复循环,产生的随机数x1,x2,…,xN的分布由概率函数f(x)确定.
步骤:1)产生n个RND随机数r1,r2,…,rn;
所得yi , i=1,2,…,n即所求.
基本原理:
设随机变量Y的分布函数F(y)是连续函数,而且随机变量X~U(0,1),令Z=F-1(X),则Z与Y有相同分布。
2.舍选法
基本思想:实质上是从许多RND随机数中选出一部分,使之成为具有给定分布的随机数.
另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或者随机变量的期望值。通过随机抽样的方法,以随机事件出现的频率估计其概率,或者以抽样的数字特征估算随机变量的数字特征,并将其作为问题的解。这种方法多用于求解复杂的多维积分问题。
假设我们要计算一个不规则图形的面积,那么图形的不规则程度和分析性计算(比如,积分)的复杂程度是成正比的。蒙特卡洛方法基于这样的思想:假想你有一袋豆子,把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。借助计算机程序可以生成大量均匀分布坐标点,然后统计出图形内的点数,通过它们占总点数的比例和坐标点生成范围的面积就可以求出图形面积。
2).蒙特卡洛方法的工作过程
在解决实际问题的时候应用蒙特卡洛方法主要有两部分工作:
1.用蒙特卡洛方法模拟某一过程时,需要产生各种概率分布的随机变量。2.用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。3).蒙特卡洛方法在数学中的应用
通常蒙特卡洛方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特卡洛方法是一种有效的求出数值解的方法。一般蒙特卡洛方法在数学中最常见的应用就是蒙特卡洛积分。
4.徐柏军,岳春国,徐正军.《伪随机数实验及变换方法研究》.科学技术与工程, 2007, 6: 2472-2475.
5.威廉·费勒、胡迪鹤《概率论及其应用(第3版)》人民邮电出版社2006
.
4.乘加同余法
产生伪随机数的乘加同余方法是由Rotenberg于1960年提出来的,由于这个方法有很多优点,已成为仅次于乘同余方法产生伪随机数的另一主要方法。
乘加同余方法的一般形式是,对任意初始值x1,伪随机数序列由下面递推公式确定:
为了便于在计算机上使用,通常取 M = 2s
其中s为计算机中二进制数的最大可能有效位数。 a = 2b+1(b≥2Fra Baidu bibliotek c = 1
由于随机数在蒙特卡罗方法中所处的特殊地位,它们虽然也属于由具有已知分布的总体中产生简单子样的问题,但就产生方法而言,却有着本质上的差别。
一般采用某种数值计算方法产生随机数序列,在计算机上运算来得到.
通常是利用递推公式:
非均匀分布随机数的产生
1.反函数法
设连续型随机变量Y的概率函数为f(x),需产生给定分布的随机数.
产生随机数序列的一般方法
要产生取值为0,1,2,…,9的离散型均匀分布的随机数,通常的操作方法是把10个完全相同的乒乓球分别标上0,1,2,…,9,然后放在一个不透明的袋中,搅拦均匀后从中摸出一球记号码后放回袋中,接着仍将袋中的球搅拌均匀后从袋中再摸出一球记下号码后再放回袋中,依次下去,就得到随机序列.通常称类似这种摸球的方法产生的随机数为真正的随机数.但是,当我们需要大量的随机数时,这种实际操作方法需要花费大量的时间,通常不能满足模拟试验的需要,比如教师不可能在课堂上做10000次掷硬币的试验,来观察出现正面的频率.计算机可以帮助人们在很短时间产生大量的随机数以满足模拟的需要,那么计算机产生的随机数是用类似摸球方法产生的吗?不是.计算机是用某种数学方法产生的随机数,实际上是按照一定的计算方法得到的一串数,它们具有类似随机数的性质,但是它们是依照确定算法产生的,便不可能是真正的随机数,所以称计算机产生的随机数为伪随机数.在模拟计算中通常使用伪随机数.对这些伪随机数,只要通过统计检验符合一些统计要求,如均匀性、随机性等,就可以作为真正的随机数来使用,我们将称这样产生的伪随机数为随机数.
3.乘同余法
乘同余方法是由Lehmer在1951年提出来的,它的一般形式是:对于任一初始值x1,伪随机数序列由下面递推公式确定: 其中a为常数。
为了便于在计算机上使用,通常取:M=2s其中s为计算机中二进制数的最大可能有效位数x1=奇数a = 52k+1其中k为使52k+1在计算机上所能容纳的最大整数,即a为计算机上所能容纳的5的最大奇次幂。一般地,s=32时,a=513;s=48,a=515等。伪随机数序列的最大容量λ(M)=2s-2。乘同余方法是使用的最多、最广的方法,在计算机上被广泛地使用。
通常蒙特卡洛方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。例如在核物理研究中,分析中子在反应堆中的传输过程。中子与原子核作用受到量子力学规律的制约,人们只能知道它们相互作用发生的概率,却无法准确获得中子与原子核作用时的位置以及裂变产生的新中子的行进速率和方向。科学家依据其概率进行随机抽样得到裂变位置、速度和方向,这样模拟大量中子的行为后,经过统计就能获得中子传输的范围,作为反应堆设计的依据。
20世纪40年代,在John von Neumann,Stanislaw Ulam和Nicholas Metropolis在洛斯阿拉莫斯国家实验室为核武器计划工作时,发明了蒙特卡洛方法。因为Ulam的叔叔经常在蒙特卡洛赌场输钱得名,而蒙特卡洛方法正是以概率为基础的方法。与它对应的是确定性算法。
蒙特卡洛方法在金融工程学,宏观经济学,生物医学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。1).蒙特卡洛方法的基本思想
这样在计算中可以使用移位和指令加法,提高计算速度。
5.蒙特卡洛方法
蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。
参考文献:
1.杨自强,魏公毅.《产生伪随机数的若干新方法》.数值计算机应用, 2001,3:210~216.
2.周燕,冯天祥.《关于一种新的随机数发生器的研究》.华北水利电力学院学报, 2000, 21(2): 75-77.
3.王萍,许海洋.《一种新的随机数组合发生器的研究》,计算机技术与发展,2006,16:79~81.
一维均匀随机数的产生
在连续型随机变量的分布中,最简单而且最基本的分布是单位均匀分布。由该分布抽取的简单子样称,随机数序列,其中每一个体称为随机数。单位均匀分布也称为[0,1]上的均匀分布,其中P(·)表示事件·发生的概率。反之,如果随机变量序列ξ1,ξ2…对于任意自然数s,由s个元素所组成的s维空间上的点(ξn+1,…ξn+s)在Gs上均匀分布,则它们是随机数序列。
在计算机上用数学方法产生随机数的一般要求如下:
1)产生的随机数列要有均匀性、抽样的随机性、试验的独立性和前后的一致性.
2)产生的随机数列要有足够长的周期,以满足模拟实际问题的要求.
3)产生随机数的速度要快,占用的内存少.
计算机产生随机数的方法内容是丰富的,在这里我们介绍几种方法,计算机通常是先产生[0,1]区间上均匀分布的随机数,然后再产生其他分布的随机数.
相关文档
最新文档