MATLAB伪随机数发生器_第1页
MATLAB伪随机数发生器_第2页
MATLAB伪随机数发生器_第3页
MATLAB伪随机数发生器_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB伪随机数发生器.txt生活是过出来的,不是想出来的。放得下的是曾经,放不下的是记忆。无论我在哪里,我离你都只有一转身的距离。 均匀性较好的随机数生成zz from /lanmuyd.asp?id=3379随机数生成算法1是一类重要的算法,广泛应用于仿真技术等场合。然而,目前的伪随机数生成器(Pseudo-random number generator, PRNG)2存在一个重要缺陷,即样本分布与真实分布不一致,这主要发生在以下两种情况:抽样代价过高,样本数目较少;空间维数较高3。因此,有必要寻找一类新的随机数发生器。准随机数发生器(Quasi-

2、random number generator, QRNG)4能够生成稳定、低差异性的(low-discrepancy)样本,而与样本数目或空间维数无关5。故针对蒙特卡罗积分结果不稳定的情况,提出一种基于QRNG的蒙特卡罗积分,发现比传统方法性能有所提升。伪随机数介绍 伪随机数是由确定的算法生成的,其分布函数与相关性均能通过统计测试。与真实随机数的差别在于,它们是由算法产生的,而不是一个真实的随机过程。一般地,伪随机数的生成方法主要有以下3种6: (1) 直接法(Direct Method),根据分布函数的物理意义生成。缺点是仅适用于某些具有特殊分布的随机数,如二项式分布、泊松分布。 (2)

3、逆转法(Inversion Method),假设U服从0,1区间上的均匀分布,令X=F-1(U),则X的累计分布函数(CDF)为F。该方法原理简单、编程方便、适用性广。 (3)接受拒绝法(Acceptance-Rejection Method):假设希望生成的随机数的概率密度函数(PDF)为f,则首先找到一个PDF为g的随机数发生器与常数c,使得f(x)cg(x),然后根据接收拒绝算法求解。由于算法平均运算c次才能得到一个希望生成的随机数,因此c的取值必须尽可能小。显然,该算法的缺点是较难确定g与c。 因此,伪随机数生成器(PRNG)一般采用逆转法,其基础是均匀分布,均匀分布PRNG的优劣决定

4、了整个随机数体系的优劣7。下文研究均匀分布的PRNG。伪随机数生成器的缺点 重复做N=10000次试验,每次产生S=20与S=100个随机分布的样本,同时采用Kolmogorov- Smirnov假设检验(hypothesis test)来确定样本是否满足均匀分布。规定: 0假设(null hypothesis)为样本服从均匀分布; 1假设(alternative hypothesis)为样本不服从均匀分布。 采用P值(0, 1)衡量,P值越趋近于0,表示越有理由拒绝0假设,即样本不服从均匀分布;P值越趋近于1,表示越有理由接受0假设,即样本服从均匀分布。 如图1与图2所示:随着P值下降,样本

5、也越来越不服从均匀分布。实践中希望P值越大越好。然而统计学的结论显示,P值一定服从均匀分布,与N、S大小无关,这表明由于随机性,总会出现某次抽样得到的样本不服从、甚至远离均匀分布。另外,样本大小的不同,造成检验标准的不同,直观上看S=100对应的均匀分布普遍比S=20对应的更均匀。因此,小样本情况下均匀分布PRNG的差异性尤为严重。准随机数发生器 上节讨论了造成差异性的两个情况:小样本与高维空间。本节讨论如何构建一类新的随机数发生器,使其具有较低的差异性。 PRNG缺陷的根源在于“随机性”与“均匀性”的矛盾。因此,不要求新的发生器模拟真实的均匀分布,而力求任意大小的样本(尤其是小样本)都能满足

6、低差异 性。换言之,以牺牲随机性为代价,换来均匀性的提高,称其为准随机数发生器(QRNG)。均匀分布QRNG的优势在于,其生成的样本更趋于均匀分布。在其 基础上构建的各类分布(包括高斯分布)的QRNG,其生成的样本也更趋于服从对应的分布。 目前有3种准随机序列(Quasi-random sequency)可用来辅助生成均匀分布随机数,分别是Halton序列、Sobol序列、Latin超立方体序列。/access/helpdesk/help/toolbox/stats/qrandstream.htmlmatlab的方法:qrandstream - C

7、lass: qrandstreamConstruct quasi-random number streamSyntaxq = qrandstream(type,d)q = qrandstream(type,d,prop1,val1,prop2,val2,.)q = qrandstream(p)Descriptionq = qrandstream(type,d) constructs a d-dimensional quasi-random number stream q of the qrandstream class, of type specified by the string type

8、. type is either halton or sobol, and q is based on a point set from either the haltonset class or sobolset class, respectively, with default property settings.q = qrandstream(type,d,prop1,val1,prop2,val2,.) specifies property name/value pairs for the point set on which the stream is based. Applicab

9、le properties depend on type.q = qrandstream(p) constructs a stream based on the specified point set p. p must be a point set from either the haltonset class or sobolset class.ExamplesConstruct a 3-D Halton stream, based on a point set that skips the first 1000 values and then retains every 101st po

10、int:q = qrandstream(halton,3,Skip,1e3,Leap,1e2)q = Halton quasi-random stream in 3 dimensions Point set properties: Skip : 1000 Leap : 100 ScrambleMethod : nonenextIdx = q.StatenextIdx = 1Use qrand to generate two samples of size four:X1 = qrand(q,4)X1 = 0.0928 0.3475 0.0051 0.6958 0.2035 0.2371 0.3

11、013 0.8496 0.4307 0.9087 0.5629 0.6166nextIdx = q.StatenextIdx = 5X2 = qrand(q,4)X2 = 0.2446 0.0238 0.8102 0.5298 0.7540 0.0438 0.3843 0.5112 0.2758 0.8335 0.2245 0.4694nextIdx = q.StatenextIdx = 9Use reset to reset the stream, and then generate another sample:reset(q)nextIdx = q.StatenextIdx = 1X = qrand(q,4)X = 0.0928 0.3475 0.0051 0.6958 0.2035 0.2371 0.3013 0.8496 0.4307 0.9087 0.5629 0.6166See Also

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论