随机数与蒙特卡罗方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、伪随机数
伪随机数列:实际产生伪随机数的时候,往往利用 某一递推 xn = f ( xn −1, xn − 2 ,, xn − k ) 产生数列 x1 , x2 ,, xn , 当n充分大时,这一数列具有独立抽样序列的性质, 我们成为伪随机数列。
随机种子:递推公式中的初值,我们称为随机种子。一旦随机 种子确定,随机序列便可以确定。
一、蒙特卡罗方法概述
蒙特卡罗算法名称的由来: 1946年物理学家冯.诺一曼利用计算机使用随机抽 样的方法模拟了裂变中的中子反应,但这是一个 与原子弹研制相关的秘密工作,他们将该方法称 为蒙特卡罗。之后这个名字变流传开来,被人们 所喜爱。
二、蒙特卡罗方法求解实际问题的步骤
1、蒲丰(Buffon)随机投针试验介绍 随机模拟的方法从方法特征来说,最早可以追溯到 18世纪后半叶的蒲丰(Buffon)随机投针试验。从中我 们可以体会出蒙特卡罗方法的一般过程。 圆周率的注记:2011年10月16日,日本长野县饭田市公 司职员近藤茂利用家中电脑将圆周率计算到小数点后10 万亿位,刷新了2010年8月由他自己创下的5万亿位吉尼 斯世界纪录。今年56岁近藤茂使用的是自己组装的计算 机,从去年10月起开始计算,花费约一年时间刷新了纪 录。 1777年法国学者蒲丰(Buffon)提出可以用投针实验来 求得圆周率。被称为计算π最神奇方法之一。
A A A A(mod M ) = A − [ ] × M = A − [ ]× M M M
A [ 其中 M ] 表示取整运算
A< M A≥ M
。
四、均匀随机数的产生
同余法的一般递推公式:
yn = (kyn −1 + b)(mod M ) yn x (n = 1,2,3,) = n M 初值 y0
蒙特卡罗方法
姜永帅
蒙特卡罗方法
1 2 3 蒙特卡罗方法概述 蒙特卡罗方法求解实际问题的步骤 蒙特卡罗方法的特点
6
一、蒙特卡罗方法概述
模拟:是指将某一现实系统或抽象系 统的某些特征(或部分状态),用另 一系统来代替或者模仿。
例如,神州九号在发射之前,先计算机模拟所有 场景。投资建厂之前也需要模拟下运营情况以便 核算成本。
二、伪随机数
伪随机数: 我们通常把用数学方法产生的随机数称为伪随机 数。
扩展阅读: 使用计算机,利用数学方法生成的随机数具体指的是按照一定的算法 产生的数列,他们具有类似于随机变量的独立抽样序列的性质。但是 由于这些数是由算法产生的,因而不可能是真正的随机数。正是由于 伪随机数具有和真正的随机数相同的性质(如独立性等),我们就把 伪随机数作为真正的随机数来使用。
三、随机数基本定理
四、均匀随机数的产生
均匀随机数的产生 我们可以看出,均匀分布序列通过其某种分布的 反函数的运算可以得到该分布的序列。因此,其 他分布可以由均匀分布来构建,均匀分布是随机 数产生的基础。下面我们将绍均匀分布随机数的 产生策略。
四、均匀随机数的产生
均匀随机数的产生: 均匀随机数产生有很多种方法,其中最普遍用于 产生均匀随机数的方法是同余法。 求余运算记为A(modM),定义如下:
2
三、随机数基本定理
随机数基本定理
三、随机数基本定理
三、随机数基本定理
三、随机数基本定理
实例: 正态分布->均匀分布 >x=rnorm(100000,0,1) #产生10000个均值为0, 方差为1的正态随机数 >hist(x,freq=FALSE) #画出x的分布图 >z=pnorm(x) #分布函数作用于x >hist(z,freq=FALSE) #画出z的分布图分布图
二、蒙特卡罗方法求解实际问题的步骤
二、蒙特卡罗方法求解实际问题的步骤
蒙特卡罗方法
像投针实验一样,用通过概率实验所求的概率来 估计我们感兴趣的量,这样的方法称为蒙特卡罗 方法。
三、随机数基本定理
三、随机数基本定理
指数分布->均匀分布 >x=rexp(100000,5) #产生100000个指数随机数 >hist(x,freq=FALSE) #画出x的分布图 >z=pexp(x,5) #分布函数作用于x >hist(z,freq=FALSE) #画出z的分布图
随机数
姜永帅
随机数在生物信息学中占有十分重要的地位,例 如随机扰动网络、构建背景分布,多重检验校正 中的permutation方法等等。
补充阅读: 一般在下一些结论的时候一个基本的逻辑是:看某种现象是不是随机 的,如果不是随机的那么认为有一定的生物学意义,也正是我们要获 得的结果。所有的这些过程都离不开随机数的使用。
一、随机数产生随机数的一般方法介绍
(4)计算机物理法:在计算机上安装一台物理随机数发 生器,将物理过程转成随机数。 优点:得到的是真正的随机数,随机性和均匀性都很好, 取之不尽用之不竭; 缺点:有些学者做实验需要重复验证,物理法产生的随机 数无法再产生一次相同的,另外随机数发生器需要经常检 查和维修,因此这种方法也逐渐被取代。 (5)计算机数学法:使用数学算法,借助计算机来产生 随机数。是目前使用最广、发展最快的方法。特点是占用 内存少、速度快、可以生产两次相同的随机数便于重复性 研究。
四、均匀随机数的产生
四、均匀随机数的产生
有了均匀随机数,我们就可以利用反函数法构建其他任 何分布的随机数以便于我们分析。另外其他分布的随机 数也后单独的生成方式,如正态随机数生成的BoxMuller方法等,在这里就不一一介绍。目前随机数的产 生策略也在有研究者不断的开发。
五、实际数据分析中的一些随机数函数
周期约为
2 × 1010
yn = 517 yn −1 (mod 242 ) yn (n = 1,2,3,) x = n 42 2 初值 y0 = 1
周期约为 10
12
四、均匀随机数的产生
##构建生成随机数函数myrandom,两个参数myseed为种子y0的初 值、num为要产生多少个随机数。 myrandom<-function(myseed,num){ y=myseed x=c() for(i in 1:(num+1)){ y[i+1]=(5^13*y[i])%%(2^36) if(i>1){x[i-1]=y[i]/2^36} } return(x) } data<-myrandom(1,10000) #产生10000个均匀随机数 hist(data,freq=FALSE) #查看分布图
(3)计算针与直线相交的概率 :
二、蒙特卡罗方法求解实际问题的步骤
经统计实验估计出概率:
二、蒙特卡罗方法求解实际问题的步骤
这样反复地投多次,数数针与 任意平行线相交的次数,于是就 可以得到 π 的近似值。在一次 实验中,他选取 l = d/2 ,然后 投针 2212 次,其中针与平行线 相交704 次,这样求得圆周率的 近似值为 2212/704 = 3.142 。 当实验中投的次数相当多时,就 可以得到 π 的更精确的值。后 来也有很多人利用投针进行实验 。
三、随机数基本定理
三、随机数基本定理
卡方分布->均匀分布 >x=rchisq(100000,7) #产生100000个卡方随机数 >hist(x,freq=FALSE) #画出x的分布图 >z=pchisq(x,7) #分布函数作用于x >hist(z,freq=FALSE) #画出z的分布图分布图
二、蒙特卡罗方法求解实际问题的步骤
蒲丰(Buffon)实验的具体操作过程:
(1)取一张白纸,在上面画上许多条间距为a的一组平 行线;
二、蒙特卡罗方法求解实际问题的步骤
(2)取一根长度为L(L<a)的针,随机地向画 有平行直线的纸上掷N次,观察针与直线相交的 次数,记为M;
二、蒙特卡罗方法求解实际问题的步骤
实际数据分析中的一些随机数函数
五、实际数据分析中的一些随机数函数
从上表中我们可以看出R语言中的随机数生成函 数都是以r开头的,代表random。同样的其他语 言如Matlab中也有类似情况,例如Matlab中正态 随机数生成函数为normrnd(),将rnd作为函数的 结尾,用法与R语言中类似,就不详细介绍,使 用可以自行查阅。
三、随机数基本定理
随机数基本定理 分布 F ( x) 的随机数:设随机变量 ξ ~ F ( x) ,我们称 ξ 的随机抽样序列 {ξi } 为分布 F ( x) 的随机数。 例:若 ξ ~ N (µ ,σ ) ,则称{ξi } 为正态分布随机数。 若 ξ ~均匀分布,则称 {ξi } 为均匀随机数。 若 ξ ~ χ 2 ,则称{ξi } 为卡方分布随机数。
其中 的选取对生成随机数十分关键,如果数值偏小,生成序列可能重复出 现,也就是产生的数列会有周期性。一个理想的随机序列一般来说需 要非常长的周期。
K , b, y0 , M
四、均匀随机数的产生
两个常用产生随机数的函数:
yn = 513 yn −1 (mod 236 ) yn = (n = 1,2,3,) x n 36 2 Байду номын сангаас 初值 y0 = 1
三、随机数基本定理
比较:
三、随机数基本定理
均匀分布->正态、卡方、指数分布 >x=runif(10000) #产生均匀分布,甚至均匀序列 x=seq(0,1,0.0001) >hist(x,freq=FALSE) #画出z的分布图分布图 >z1=qnorm(x,100,8) #正态分布的反函数 >hist(z1,freq=FALSE) #画出z的分布图分布图 >z2=qchisq(x,7) #卡方分布的反函数 >hist(z2,freq=FALSE) #画出z的分布图分布图 >z3=qexp(x,7) #指数分布的反函数 >hist(z3,freq=FALSE) #画出z的分布图分布图
一、随机数产生随机数的一般方法介绍
产生随机数的一般方法介绍:
(1)手工法:是最早产生随机数的方法为即采用投掷骰子、摇号、 抽签、摸球等办法,目前的彩票发行仍然采用此法。 (2)随机数表:随着一些随机模拟算法的发展,如蒙特卡罗方法 (Monte-Carlo)等,需要大规模的随机数,这时手工已经不能满足 计算的需要。1927年,Tippett制造了4万个随机数的表;1939年 Kedell等用高速转盘生成了10万个随机数的表;后来兰德公司又用电 子装置产生了100万个随机数。在计算机产生之前人民就利用这些方 法产生的随机数进行统计计算。 (3)计算机存储法:在计算机发展的初期,人们只是扩展了随机数 表法的简单应用,将随机数表刻在磁盘上,使用的时候将随机数调入 内存,由于该方法存储随机数要占用较大的空间,随机数的长度也有 限,目前已经很少用了。
一、蒙特卡罗方法概述
随机模拟: 是指利用随机数进行模拟计算的方法。由于它 一般是指利用计算机产生随机数而进行计算的一 种特殊风格的方法。 又称为计算机模拟方法。
一、蒙特卡罗方法概述
蒙特卡罗(Monte Carlo)方法:
——随机模拟的别名。
一、蒙特卡罗方法概述
蒙特卡罗位于在欧洲地中海之滨、法国的 东南方,有一个世界上版图最小的国家摩 纳哥公国,世人称之为“赌博之国”、“ 袖珍之国”、“邮票小国”。 蒙特卡罗(Monte Carlo)是世界著名的 〔赌城〕,是摩纳哥的标志世界三大赌城 之一(美国超级赌城拉斯维加斯与号称东 方拉斯维加斯的中国澳门)。富丽堂皇的 蒙地卡罗赌场,建于一八六三年,是一幢 古色古香以及巍峨的宫殿式建筑物,再加 上山明水秀,使游客抵达门前,立即发生 好感。门前有一大片广场,是一个花圃, 一草一木都修剪整齐,鲜花盛放,七彩缤 纷,园旁有一停车场,园尽处一间宫殿式 的建筑便是闻名世界的蒙地卡罗赌场了。