第六讲 蒙特卡洛方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•求得分布函数为
F ( x) f ( x)dx ex dx 1 ex
x x
直接抽样法
• 设 为[0,1]区间上均匀分布的随机数,令 F (x) 解得: 应为分布函数在[0,1]均匀分布
x 1
ln(1 )
• 注意到 故有
(1 )
斯密思(Smith)
福克斯(Fox) 拉查里尼 (Lazzarini)
1855
1894 1901
3204
1120 3408
3.1553
3.1419 3.1415929
例:投点试验
S circle t hit S square t shot
精度不高!!
=3.14173
例:求解定积分
• 定积分计算
伪随机数
• 实际应用的随机数通常都是通过某些数学公式计 算而产生的伪随机数。
n k T ( n , n 1 , , n k 1 ), n 1,2,
• 这样的伪随机数从数学意义上讲已经一点不是随 机的了。 • 只要伪随机数能够通过随机数的一系列的统计检 验(证明其均匀性和独立性),我们就可以把它 当作真随机数而放心地使用。这样我们就可以很 经济地、重复地产生出随机数。
和 同样服从[0,1]的均匀分布,
x 1
第六讲 蒙特卡洛方法
计算机模拟方法分类
• (1)蒙特卡洛(Monte Carlo)方法,又称随机模拟方法 或统计试验方法。它是通过一个合适的概率模型不 断产生随机数序列来模拟过程。自然界中有的过程 本身就是随机的过程,物理现象中如粒子的衰变过 程、粒子在介质中的输运过程...等。当然蒙特卡洛 方法也可以借助慨率模型来解决不直接具有随机性 的确定性问题。
• 随机向正方形内掷点, 总掷点N,落于曲线下 方的为M,N足够大时, I=M/N
MC思想总结
• 当问题可以抽象为某个确定的数学问题时, 应当首先建立一个恰当的概率模型,即确 定某个随机事件A或随机变量X,使得待求 的解等于随机事件出现的概率或随机变量 的数学期望值。然后进行模拟实验,即重 复多次地模拟随机事件A或随机变量X。最 后对随机实验结果进行统计平均,求出A出 现的频数或X的平均值作为问题的近似解。 (间接MC)
2) 受几何条件限制小
在计算s维空间中的任一区域Ds上的积分 g g ( x1 , x2 ,, xs )dx1dx2 dxs
Ds
时,无论区域Ds的形状多么特殊,只要能给出描述Ds 的几何特征的条件,就可以从Ds中均匀产生N个点 ( ( x1(i ) , x 2i ) ,, x s(i ) ) ,得到积分的近似值。 Ds N ( gN g ( x1(i ) , x 2i ) ,, x s(i ) ) N i 1 其中Ds为区域Ds的体积。这是数值方法难以作到的。 另外,在具有随机性质的问题中,如考虑的系统 形状很复杂,难以用一般数值方法求解,而使用蒙特 卡罗方法,不会有原则上的困难。
f(X)是X的分布密度函数。则
N P X N E( X ) x 1 2
lim
N
x
x
e
t 2 / 2
dt
平均值
当N充分大时,有如下的近似式 2 t 2 / 2 P X N E ( X ) 0 e dt 1 N 2 其中α称为置信度,1-α称为置信水平。 这表明,不等式 X N E ( X )
关于蒙特卡罗方法的误差需说明两点:第一,蒙特 卡罗方法的误差为概率误差,这与其他数值计算方法 是有区别的。第二,误差中的均方差σ是未知的,必须 使用其估计值
ˆ 1 N 1 X i2 ( N i 1
N
X i )2
i 1
N
ˆ 来代替,在计算所求量的同时,可计算出 。
MC方法随机理论的基础
• 由于MC是在计算机上的随机模拟试验。因 此,如何产生随机数,如何进行给定分布 的随机数抽样,是直接和间接MC方法的关 键。 • 随机数包含:真随机数列, 伪随机数列
真随机数
• 真随机数数列是不可预计的,因而也不可能重复 产生两个相同的真随机数数列。 • 真随机数只能用某些随机物理过程来产生。例如: 放射性衰变、电子设备的热噪音、宇宙射线的触 发时间等等。 • 如果采用随机物理过程来产生蒙特卡洛计算用的 随机数,理论上不存在什么问题。但在实际应用 时,要做出速度很快(例如每秒产生上百个浮点 数),而又准确的随机数物理过程产生器是非常 困难的。
xi 1 a xi (mod M )
i 1
xi 1 , M
i 1,2,
• 其中x1 ,a,M为正整数。 • 得到的伪随机数均匀性好,重复周期长,编程 指令少等优点,被广泛采用。
已知分布的随机抽样
• 指的是由己知分布的总体中抽取简单子样。 • 伪随机数 是由单位均匀分布的总体中抽取 的简单子样,属于一种特殊的由已知分布 的随机抽样问题。
• 如已知某变量x满足正态分布(高斯分布), 要求抽样变量序列x1,x2,x3,…xN,使之满足给 定的分布。
直接抽样法
• 当随机变量的分布函数已知或可以通过分 布密度函数积分得到,且比较简单。这时 可采用直接随机抽样法 • 如试按以下分布密度函数,对随机变量进 行抽样。
e x x 0 0 f ( x) else 0
例:布冯(Buffon)投针实验
• 在平滑桌面上划一组相距为s的平行线,向 此桌面随意地投掷长度l=s的细针,那末从 针与平行线相交的概率就可以得到π的数值。
针与线Βιβλιοθήκη Baidu交概率
s
N次投针,M次相交,当N足够大时:
2
M N
求Pi转化为求一随机过程的参数。
•
一些人进行了实验,其结果列于下 表:
实验者 沃尔弗(Wolf) 年份 1850 投计次数 5000 π的实验值 3.1596
• (2) 确定性模拟方法。它是通过数值求解一个个的 粒子运动方程来模拟整个系统的行为。如分子动力 学(Molecular Dynamics)方法以及原胞自动机方 法等等。
Why Monte Carlo(MC)?
MC方法的起源
• 起源于思想起源于von Neumann(冯.诺依 曼)等人在研究原子弹时对裂变材料的中 子扩散问题的探讨。
1) 能够比较逼真地描述具有随机性质 的事物的特点及物理实验过程
从这个意义上讲,蒙特卡罗方法可以部分代替物 理实验,甚至可以得到物理实验难以得到的结果。用 蒙特卡罗方法解决实际问题,可以直接从实际问题本 身出发,而不从方程或数学表达式出发。它有直观、 形象的特点。
如:求连续掷两颗骰子,点数之和大于6 且第一次掷出的点数大于第二次掷出点数的概率。
MC方法概述
• 为了得到具有一定精确度的近似解,所需随机试 验的次数是很多的,通过人工方法作大量的试验 相当困难,甚至是不可能的。因此,蒙特卡罗方 法的基本思想虽然早已被人们提出,却很少被使 用。本世纪四十年代以来,由于电子计算机的出 现,使得人们可以通过电子计算机来模拟随机试 验过程,把巨大数目的随机试验交由计算机完成, 使得蒙特卡罗方法得以广泛地应用,在现代化的 科学技术中发挥应有的作用。
• 目前,已经广泛的应用于社会科学,材料, 物理,系统工程,科学管理,生物遗传等 领域。可以说,有随机工程事件的领域, 就可以应用Monte Carlo模拟。
MC的基本思想
• 直接蒙特卡洛模拟方法。求解问题本身就 具有概率和统计性的情况,该方法是按照 实际问题所遵循的概率统计规律,用计算 机进行直接的抽样试验,然后计算其感兴 趣的统计参数(计算机实验)。 • 间接蒙特卡洛模拟方法。人为地构造出一 个合适的概率模型,依照该模型进行大量 的统计实验,使它的某些统计参量正好是 待求问题的解。
1) 收敛速度慢
如前所述,蒙特卡罗方法的收敛速度为 O( N 1 / 2 ) 一般不容易得到精确度较高的近似结果。对于维数少 (三维以下)的问题,不如其他方法好。
2) 误差具有概率性
由于蒙特卡罗方法的误差是在一定置信水平下估 计的,所以它的误差具有概率性,而不是一般意义下 的误差。
随机数的产生
MC方法随机理论的基础
MC方法的随机理论基础
g(u)均匀分布
MC方法随机理论的基础
• 大数法则
MC方法随机理论的基础
中心极限定理
该定理指出,如果随机变量序列X1 ,X2,…,XN独立 同分布,且具有有限非零的方差σ2 ,即
0 2 ( x E ( X )) 2 f ( x)dx
• 误差控制
• 中心极限定理告诉我们,蒙特卡洛方法的误差与 随机数的均方差和抽样模拟次数n有关。 • 为了减小误差,就应当选取最优的随机变量,使 其方差最小。 • 在方差固定时,增加模拟次数可以有效地减小误 差。如试验次数增加100倍,精度提高10倍。当 然这样做就增加了计算的机时,提高了费用。 • 所以在考虑蒙特卡洛方法的精确度时,不能只是 简单地减少方差和增加模拟次数,还要同时兼顾 计算费用,即机时耗费。通常以方差和费用的乘 积作为衡量方法优劣的标准。
N
近似地以概率
O( N 1 / 2 ) 1-α成立,且误差收敛速度的阶为 。 通常,蒙特卡罗方法的误差ε定义为
N 上式中 与置信度α是一一对应的,根据问题的要 求确定出置信水平后,查标准正态分布表,就可以确 定出 。
下面给出几个常用的α与的数值: α 0.5 0.6745 0.05 1.96 0.003 3
蒙特卡罗方法的特点
优点 能够比较逼真地描述具有随机 性质的事物的特点及物理实 验过程。 受几何条件限制小。 收敛速度与问题的维数无关。 具有同时计算多个方案与多个 未知量的能力。 误差容易确定。 程序结构简单,易于实现。 缺点 收敛速度慢。 误差具有概率性。 在粒子输运问题中, 计算结果与系统大 小有关。
• 例 如 , 取 2r=4, 并 取 x02=41036836,[x02/10r]=410368, x0=410368(mod104),则x1=0368
x0=6406,
则 而
乘同余法
• 乘同余方法是由Lehmer在1951年提出来的, 它的一般形式是:对于任一初始值x1,伪随机 数序列由下面递推公式确定:
4) 具有同时计算多个方案与多个未知 量的能力
a.同时计算多种方案。对于那些需要计算多个方案的 问题,使用蒙特卡罗方法有时不需要像常规方法那样 逐个计算,而可以同时计算所有的方案,其全部计算 量几乎与计算一个方案的计算量相当。 b.例如,对于均匀介质的平板,要计算若干种厚度的 打靶穿透概率时,只需计算最厚的一种情况,其他厚 度的穿透概率在计算最厚一种情况时稍加处理便可同 时得到。
• 产生均匀伪随机数的方法有平均取中法、乘同余 法。
平均取中法
• 该方法首先给出一个2r位的数,取它的中间 的 r 位数码作为第一个伪随机数;然后将第 一个伪随机数平方构成一个新的2r 位数, 再取中间的r 位数作为第二个伪随机数…。 如此循环便得到一个伪随机数序列。类似 上述方法,利用十进制公式表示2r 位数的 递推公式。
5) 误差容易确定
对于一般计算方法,要给出计算结果与真值的误 差并不是一件容易的事情,而蒙特卡罗方法则不然。 根据蒙特卡罗方法的误差公式,可以在计算所求量的 同时计算出误差。对于很复杂的蒙特卡罗方法计算问 题,也是容易确定的。
6) 程序结构简单,易于实现
在计算机上进行蒙特卡罗方法计算时,程序结构 简单,分块性强,易于实现。
3) 收敛速度与问题的维数无关
a.由误差定义可知,在给定置信水平情况下,蒙特卡 1 / 2 ) ,与问题本身的维数无 罗方法的收敛速度为 O( N 关。 b.使用蒙特卡罗方法时,抽取的子样总数N与维数s无 关。维数的增加,除了增加相应的计算量外,不影响 问题的误差。这决定了蒙特卡罗方法对多维问题的适 应性。 c.而一般数值方法,比如计算定积分时,计算时间随 维数的幂次方而增加,而且需占用相当数量的计算机 内存,这些都是一般数值方法计算高维积分时难以克 服的问题。