蒙特卡罗算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

xi 1 6xi mod11, ui+1 xi 1 /11 (a 6, m 11 )
如果令 a 3, x0 1 ,得到序列: 1,3,9,5, 4,1,3,9........ 如果令 a 3, x0 2, 得到序列: 2, 6, 7,10,8, 2, 6.......
14
3. 指数分布 指数分布随机变量X的概率密度为
e x , x 0 f ( x) 0, x 0
指数分布常用来描述寿命问题.
15
二.随机数的生成
1.蒙特卡罗模拟的关键是生成优良的随机数。 2.在计算机实现中,我们是通过确定性的算法生成 随机数,所以这样生成的序列在本质上不是随机 的,只是很好的模仿了随机数的性质(如可以通过 统计检验)。我们通常称之为伪随机数(pseudorandom numbers)。 3.在模拟中,我们需要产生各种概率分布的随机数, 而大多数概率分布的随机数产生均基于均匀分布 U(0,1)的随机数。
2
基本思想很早以前就被人们所发现和 利用。17世纪,人们就知道用事件发 生的“频率”来决定事件的“概率”。 19世纪人们用投针试验的方法来决定π。 高速计算机的出现,使得用数学方法 在计算机上大量模拟这样的试验成为 可能。
3
从Buffon(蒲丰)投针问题谈起
Buffon 投针问题:平面上画很多平行线,间距为 a.向此平面投掷长为 l ( l < a) 的 针,此针与任一平行线相交的概率 p。
Monte Carlo Simulation Methods (蒙特卡罗模拟方法)
主要内容: 一. M-C方法概述. 二. 随机数的生成. 三. 模拟训练. 四. 实验题目.
成信院数学与信息科学系 李胜坤
1
一.M-C方法概述
蒙特卡洛(Monte Carlo)方法,或称计算机 随机模拟方法,是一种基于“随机数”的计 算方法。这一方法源于美国在第二次世界大 战中研制原子弹的“曼哈顿计划”。该计划 的主持人之一、数学家冯· 诺伊曼用驰名世 界的赌城—摩纳哥的Monte Carlo—来命名 这种方法,为它蒙上了一层神秘色彩。
每个 xi j 有 m 种选择,所以向量 ( xi 1 , xi 2 ......xi -k ) 可以取 mk -1 个不同的值,所以这样的随机数生成器 的最大周期可以达到 m 生成器的周期。
k -1
1,大大提高了简单同余
22
算法实现
许多程序语言中都自带生成随机数的方法,如 c 中的 random() 函数,Matlab中的rand()函数等。 但这些生成器生成的随机数效果很不一样,比如 c 中的函数生成的随机数性质就比较差,如果用 c ,最好自己再编一个程序。Matlab 中的 rand() 函数,经过了很多优化。可以产生性质很好的随 机数,可以直接利用。
23
从U(0,1)到其它概率分布的随机数
1.离散型随机数的模拟
2.连续型随机数的模拟
3.正态随机数的模拟
24
1.离散型随机数的模拟
设随机变量 X 的分布律为 令
P{X xi } pi
n i 1
(i 1,2,)
(n 1, 2 ,)
P(0) 0, P(n) pi ,
4.必要时,还应改进模型以降低估计方差和减少试验费 用,提高模拟计算的效率
10
回顾几种连续型分布
1.均匀分布U(a,b) 其概率密度函数为
1 ,a x b f ( x) b a 0 , 其他

cd P{c x d } , 其中(c, d ) (a, b) ba
16
乘同余法:
U(0,1)随机数的生成
xi 1 axi mod m ui 1 xi 1 / m
其中 xi , a, m 均为整数, x0 可以任意选取。
x0 称为种子,a 是乘因子,m是模数
17
一个简单的例子
当 x0 1 时,得到序列: 1,6,3,7,9,10,5,8,4,2,1,6,3......
随机投针可以理解成针的中心 点与最近的平行线的距离X是均匀 地分布在区间 [0, a / 2] 上的r.v.,针 与平行线的夹角是均匀地分布 在区间 [0, ] 上的r.v.,且X与相互独立,
l 于是针与平行线相交的充要条件为 X 2 sin , l 即相交 A { : X 2 sin }.
ˆ 然后取 2l a.s. ˆ fn ( A) 作为 的估计。根据大数定律,当 n 时, p p. af n ( A) 2l P 。这样可以用随机试验的方法求得 的估计。历史上 af n ( A)
ˆ 从而有
有如下的试验结果。
5
试验者
时间(年)
针长 投针次数 相交次数
4
于是有: l p P( X sin ) 2 0

l sin 2

0
2 2l dxd a a
2l ap
若我们独立重复地作 n 次投针试验,记 n ( A) 为 A 发生的次数。 fn ( A) 为 A
ˆ f n ( A) 。 在 n 次中出现的频率。假如我们取 fn ( A) 作为 p P( A) 的估计,即 p
18
一个简单的例子(续)
上面的例子中,第一个随机数生成器的周期 长度是 10,而后两个生成器的周期长度只有 它的一半。我们自然希望生成器的周期越长 越好,这样我们得到的分布就更接近于真实 的均匀分布。
在给定 m 的情况下,生成器的周期与 a 和 初值 x0 (种子)选择有关。
19
线性同余生成器(混合同余法) (Linear Congruential Generator )
0, 0 U i 0.3 xi 1, 0.3 U i 0.6 2, 0.6 U i
则 x1 , x2 ,, x N 是具有X分布律的随机数.
27
2.连续型随机数的模拟
a.逆变换方法(常用) (Inverse Transform Method) b.舍取方法 (Acceptance-Rejection Method)
2147483399 2147483563
复杂一些的生成器
Multiple recursive generator
xi (a1 xi 1 a2 xi 2 ...... ak xi k ) mod m ui xi / m 需要选取种子(xk 1 , xk 2 .......x0 )
2. 一般的数值积分方法的收敛阶为 O(n 2 / d ),而 由中心极限定理可以保证 Monte Carlo 方法的 收敛阶为 O(n
1/ 2
) 。此收敛阶与维数无关,且在
9
高维时明显优于一般的数值方法。
M-C的基本思路
1.针对实际问题建立一个简单且便于实现的概率统计模 型,使所求的量(或解)恰好是该模型某个指标的概率 分布或者数字特征。 2.对模型中的随机变量建立抽样方法,在计算机上进行 模拟测试,抽取足够多的随机数,对有关事件进行统计 3.对模拟试验结果加以分析,给出所求解的估计及其精 度(方差)的估计
20
常用的线性同余生成器
Modulus m 2^31-1 =2147483647 Multiplier a 16807 39373 742938285 950706376 1226874159 40692 40014 Reference Lewis, Goodman, and Miller L’Ecuyer Fishman and Moore Fishman and Moore Fishman and Moore L’Ecuyer L’Ecuyer 21
将 {P(n)} 作为区间(0,1)的分点.若随机变量 U ~ U (0,1) ,有
P{P(n 1) U P(n)} P(n) P(n 1) pn , (n 1,2, )
25
令 {P(n 1) U P(n)} {X xn }
则有
P{X xn } pn
正态分布由两个参数 和 唯一确定.其中 是X 的均值(数学期望): =E(X),它确定了概率曲线的 中心位置,而 是X的标准差: D( X ) ,它确定了 概率曲线的”宽窄”程度.
13
在许多实际问题中,有一类随机变量可以表 示成为许多相互独立的随机变量之和,而其中每 个随机变量对总和只起微小的影响,这类随机变 量往往服从或近似服从正态分布.在实际应用中, 如果我们分析到一个随机变量受到较多独立的 微小因素的叠加影响,就可以用正态分布来模拟 这个变量.如:工厂产品的测量尺寸,农作物的收 获量,某地区成年人的身高,体重等可看成服从正 态分布的随机变量.

1
0
1 n f ( x)dx E[ f ( xi )] f ( xi ) n i 1
1 误差约 ,它并不能和一些高级的数值积分算法比拟, n
但对多维情况,MC方法却很有吸引力。
7

1 1 1
0 0 0
1 n f ( x, y, z )dxdydz f ( xi , yi , zi ) n i 1
11
均匀分布随机变量X的取值具有”均匀性” 均匀性特点:均匀分布随机变量X落在(a,b)内 任意子区间的概率只与子区间的长度有关,而与 子区间的位置无关. 可假设有这种特性的随机变量服从均匀分布.
12
2. 正态分布 正态分布随机变量X的概率密度函数是
1 1 x 2 f ( x) exp[ ( ) ], x R 2 2
一般形式: xi 1 (axi c) mod m ui 1 xi 1 / m
1. c是非负整数.通过适当选取参数c可以改善 随机数的统计性质(独立性,均匀性).
2. 线性同余器可以达到的最长周期为 m 1 ,我们 可以通过适当的选择 m 和 a ,使无论选取怎样的 初值 x0 都可以达到最大周期(一般选取 m 为质数)
定理: 设随机变量Y的分布函数F(y)是连续函数, 而U是在(0,1)上均匀分布的随机变量, 令 X F 1 (U ) , 则Y与X有相同的分布.
28
证明: 由 F 1 (U ) 的定义和均匀分布的分布函数可得: P ( X x) P ( F 1 (U ) x) P (U F ( x )) F ( x )
我们可产生一系列随机数 1, 2 , 3 , 4 , 5 , 6 ,....... 可简单取3个随机数构成一个随机点,即
(1, 2 , 3 ), (4 , 5 , 6 ),.......
相应地,
1 b 1 n f ( x )dx f ( xi ) a ba n i 1 d b 1 1 n f ( x, y)dxdy f ( xi , yi ) c a (d c)(b a) n i 1
π的估计值
Wolf
Smith
1850
1855
0
0.60
5000
3204
2532
1218
3.15956
3.15665
Fox
Lazzarini
1884
1925
0.75
0.83
1030
3408
489
1808
3.15951
3.14159292
6
数值积分问题
选取(0, 1)中随机数序列x1, x2, x3, …… xn。则
据此,可得产生 X 的随机数的具体过程为:每产 生一个(0,1)区间上均匀分布随机数U ,若
P(n 1) U P(n)
则令 X 取值 xn .
26
例1:
离散型随机变量X有如下分布律: X 0 1 2 P(x) 0.3 0.3 0.4 设 U1 ,U 2 ,,U N 是(0,1)上均匀分布的随机数,令
一般地,

A
f ( x)d (measure of A) (average of f over n random points in A)
8
Monte Carlo数值积分的优点
与一般的数值积分方法比较,Monte Carlo方法 具有以下优点:
1. 一般的数值方法很难推广到高维积分的情形,而 Monte Carlo方法很容易推广到高维情形
相关文档
最新文档