- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
随机数地产生
7.2 随机数的产生 一.随机数的概念 二.均匀分布随机数的产生 三. 任意分布随机数的模拟 l.离散型随机数的模拟 2.连续型随机数的模拟 3.正态随机数的模拟 * * 对随机系统进行模拟,需要产生服从某种分 布的一系列随机数. ? 定义 设随机变量X(总体)服从某种随机分布,对其进行了n次独立观察,得到一组简单随机样本 X1,X2,…,Xn ,满足 1) X1,X2,…,Xn相互独立; 2) 每一个X1,X2,…,Xn都与总体X 同分布. 利用某种方法得到一串数列r1 , r2 , … , rn 在一定的统计意义下可作为随机样本 X1,X2,…,Xn 的一组样本值,称r1 , r2 , … , rn一组具有与X 相同分布的随机数. 例7.2.1 设随机变量X~B(1, 0.5), 模拟该随机变量X的一组样本值. 一种简单的方法是 抛一枚均匀硬币,观察出现正反面的情况, 出现正面记为数值“1”,否则记为“0”得: 可看成总体X 的一系列样本值,或称产生了 一系列具有两点分布的随机数. 0,0,1,0,1,1,1,0,1,0,0,0, 0,1,1,0,1,0, … 数学软件有产生常用分布随机数的功能 对特殊分布 需要数据量很大时 不太有效 需要寻求一种简便、经济、可靠, 并能 在计算机上实现的产生随机数的方法. 最常用、最基础的随 机数是在(0,1)区间 内均匀分布的随机数 (简记为RND) 理解为:随机变量X~U(0,1)的一组样本值的模拟值 一般采用某种数值计算方法产生随机数序列,在计算机上运算来得到. 通常是利用递推公式: 给定k个初始值ξ1,ξ2,…,ξk , 利用递推公式 递推出一系列随机数ξ1,ξ2,…,ξn,… 乘同余法 混合同余法 常用方法 具有较好的 统计性质 1.乘同余法 递推公式为 用M 除λxn后得到的余数记为xn+1 其中λ是乘因子, M为模数(modulus),第一 式是以M为模数的同余式. 给定初值x0 (称为种子),递推计算出 r1,r2,… 即在(0, 1)上均匀分布的随机数序列. 例7.2.2 取x0=1,λ=7,M=103,有 λx0=7×1=7 , x1=7 , r1=7/1000=0.007 λx1=7×7=49, x2=49 , r2=49/1000=0.049 λx2=7×49=343 , x3=343, r3=343/1000=0.343 λx3=7×343=2401 , x4=401 , r4=401/1000=0.401 λx4=7×401=2807, x5=807 , r5=807/1000=0.807 其余类推. 2.混合同余法 递推公式为 用模 M 去除 λxn+C的余数 其中,C是非负整数. 例7.2.3 选λ=97, C=3, M=1000,得递推公式 取定种子x0=71,得 97x0+3=6890, x1=890, r1=0.890 97x1+3=86333, x2=333, r2=0.333 97x2+3=32304, x3=304, r3=0.304 97x3+3=29491, x4=491, r4=0.491 97x4+3=47830, x5=630, r5=0.630 余类推,接下来的随机数是: 0.113,0.964,0.511,0.570,0.293,0.424, 0.131,0.710,0.873,0.684,0.351,0.050, 0.853… 有下述问题: 1.数列{rn}是有周期的,周期L≤M(模数); 因0≤xn≤M,数列{xn}最多有 M个相异值, 从而{rn}也同样如此. 2. 数列{rn}本质上是实数列, 给定初始值由递 推公式计算出的一串确定的数列. 不能简单等同于真正意义的随机数. 解决方法 与思路: 1. 选择合适模拟参数 2. 对数列进行统计检验 从计算机中直接调用某种分布的随机数同样存在类似问题. 1. 选择模拟参数 1) 周期的长度取决于参数x0, λ, M的选择; 2) 通过适当选取参数可以改善随机数的统计 性质. x0=1,λ=513,M=236 (L=234≈2×1010) 几组供参考的参数值: x0=1,λ=7,M=1010 (L=5×107) 在计算机上编程产生随机数还应注意 浮点运算对周期的影响 x0=1,λ=517,M=212 (L=240≈1012) 2. 对数列进行统计检验 无论用哪一种方法产生的随机数序列 (实 数列) RND, 都存在问题: 将其看着是在(0,1)
文档评论(0)