动力学蒙特卡罗模拟的方法简介共30页文档

合集下载

蒙特卡洛(Monte Carlo)模拟法

蒙特卡洛(Monte Carlo)模拟法

当科学家们使用计算机来试图预测复杂的趋势和事件时, 他们通常应用一类需要长串的随机数的复杂计算。

设计这种用来预测复杂趋势和事件的数字模型越来越依赖于一种称为蒙特卡罗模似的统计手段, 而这种模拟进一步又要取决于可靠的无穷尽的随机数目来源。

蒙特卡罗模拟因摩纳哥著名的赌场而得名。

它能够帮助人们从数学上表述物理、化学、工程、经济学以及环境动力学中一些非常复杂的相互作用。

数学家们称这种表述为“模式”, 而当一种模式足够精确时, 他能产生与实际操作中对同一条件相同的反应。

但蒙特卡罗模拟有一个危险的缺陷: 如果必须输入一个模式中的随机数并不像设想的那样是随机数, 而却构成一些微妙的非随机模式, 那么整个的模拟(及其预测结果)都可能是错的。

最近, 由美国佐治亚大学的费伦博格博士作出的一分报告证明了最普遍用以产生随机数串的计算机程序中有5个在用于一个简单的模拟磁性晶体中原子行为的数学模型时出现错误。

科学家们发现, 出现这些错误的根源在于这5个程序产生的数串其实并不随机, 它们实际上隐藏了一些相互关系和样式, 这一点只是在这种微小的非随机性歪曲了晶体模型的已知特性时才表露出来。

贝尔实验室的里德博士告诫人们记住伟大的诺伊曼的忠告:“任何人如果相信计算机能够产生出真正的随机的数序组都是疯子。

”蒙特卡罗方法(MC)蒙特卡罗(Monte Carlo)方法:蒙特卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法,属于计算数学的一个分支,它是在本世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。

传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法由于能够真实地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。

这也是我们采用该方法的原因。

蒙特卡罗方法的基本原理及思想如下:当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。

蒙特卡洛模拟法

蒙特卡洛模拟法

第二章蒙特卡洛方法计算机模拟采用的方法来看,它大致可以分为两种类型:(1) 随机模拟方法或统计试验方法,又称蒙特卡洛(MonteCarlo)方法。

它是通过不断产生随机数序列来模拟过程。

自然界中有的过程本身就是随机的过程,物理现象中如粒子的衰变过程、粒子在介质中的输运过程...等。

当然蒙特卡洛方法也可以借助慨率模型来解决不直接具有随机性的确定性问题。

(2) 确定性模拟方法。

它是通过数值求解一个个的粒子运动方程来模拟整个系统的行为。

在统计物理中称为分子动力学(Molecular Dynamics)方法。

关于分子动力学方法我们将在第六章中介绍。

此外, 近年来还发展了神经元网络方法和原胞自动机方法。

从蒙特卡洛模拟的应用来看,该类型的应用可以分为三种形式:(1)直接蒙特卡洛模拟。

它采用随机数序列来模拟复杂随机过程的效应。

(2)蒙特卡洛积分。

这是利用随机数序列计算积分的方法。

积分维数越高,该方法的积分效率就越高。

(3)Metropolis蒙特卡洛模拟。

这种模拟是以所谓“马尔科夫”(Markov)鏈的形式产生系统的分布序列。

该方法可以使我们能够研究经典和量子多粒子系统的问题。

2.1蒙特卡洛方法的基础知识一、 基本思想对求解问题本身就具有概率和统计性的情况,例如中子在介质中的传播,核衰变过程等,我们可以使用直接蒙特卡洛模拟方法。

该方法是按照实际问题所遵循的概率统计规律,用电子计算机进行直接的抽样试验,然后计算其统计参数。

直接蒙特卡洛模拟法最充分体现出蒙特卡洛方法无可比拟的特殊性和优越性,因而在物理学的各种各样问题中得到广泛的应用。

该方法也就是通常所说的“计算机实验”。

蒙特卡洛方法也可以人为地构造出一个合适的概率模型,依照该模型进行大量的统计实验,使它的某些统计参量正好是待求问题的解。

这也就是所谓的间接蒙特卡洛方法。

下面我们举两个最简单的例子来说明间接蒙特卡洛方法应用的内涵。

巴夫昂(Buffon)投针实验。

该试验方案是:在平滑桌面上划一组相距为s 的平行线,向此桌面随意地投掷长度l s =的细针,那末从针与平行线相交的概率就可以得到π的数值。

蒙特卡洛法简介

蒙特卡洛法简介
它蒙上了一层神秘色彩。
第3页/共40页
发展
• 本世纪40年代电子计算机的出现,特别是近年来高速电子计算机的出现,使得用数学方法在计算机上大量、 快速地模拟这样的试验成为可能。
第4页/共40页
实质
• Monte Carlo 方法也称为统计模拟方法,是二十世纪四十年代 中期由于科学技术的发展和电子计算机的发明,而被提出的一 种以概率统计理论为指导的一类非常重要的数值计算方法。是 指使用随机数(或更常见的伪随机数)来解决很多计算问题的 方法。与它对应的是确定性算法。
end
第34页/共40页
一个例子 ----
• 解模 我们运行程序得出逸出铅墙的中子的可能性约为1.5%。 • 应用 有了这个数字,我们可以报告安全部门,如果数字不能达到安全要求,我们则要加厚铅墙。
第35页/共40页
Monte Carlo 模拟二叉树期权定价
• 二叉树定价模型是从构造好的二叉树中随机选择一条路径样本,从二叉 树的末端开始倒推计算出衍生证券的价格,但是采用了Monte Carlo后, 是顺着二叉树往后计算的。 基本方法: 在第一个节点(根节点),随机产生一个0到1间的随机数,如果这个数 小于p,就选择当前的上升分支,反之选择下降分支。这样就产生了一个 新节点,继续上面的过程,直到二叉树的末端。一条路径产生了,衍生证 券的最终价值就可以计算出来了(可以看作是全部可能终值集合中的一个 随机样本),这样完成了第一次模拟。
第15页/共40页
Monte Carlo 方法处理的问题
• Monte Carlo 方法处理的问题可以分两类 • 确定性的数学问题 多重积分、求逆矩阵、解线性代数方程组、解积分方程、解某些偏微分方程边值问 题和计算代数方程组、计算微分算子的特征值等等 • 随机性问题

蒙特卡罗方法

蒙特卡罗方法

)
其中 c0 2.515517, c1 0.802853,c2 0.010328;
d1 1.432788; d2 0.189269; d3 0.001308
§2 随机数的产生和随机变量的抽样
随机变量的抽样
连续型随机变量的抽样:
3.正态随机变量的抽样方法
(2)基于中心极限定理的方法
N i 1
Xi )2
§1 蒙特卡洛方法该概述---减小误差
减小方差的各种技巧:
显然当给定置信度α(λα)后,误差ε由σ和N决定。要减小ε:
(1)增大试验次数N。在σ固定的情况下,要把精 度提高一个数量级,试验次数N需增加两个数量级。 因此,单纯增大N不是一个有效的办法。

N
(2)减小估计的均方差σ,比如降低一半,那误差就减小一半,这 相当于N增大四倍的效果。
理论依据: 大数定理:均匀分布的算术平均收敛于真值 中心极限定理:置信水平下的统计误差
两个例子: Buffen投针实验求π 射击问题(打靶游戏)
§1 蒙特卡罗方法概述---基本思想
Buffon 投针问题:平面上画很多平行线,间距为 a.向此平面投掷长为l (l < a) 的
针,此针与任一平行线相交的概率 p。
数r,计算满足条件:p(i-1) r p(i)的i值,所
对应的i即为离散型随机变量的一个样本值。
§2 随机数的产生和随机变量的抽样
随机变量的抽样
离散型随机变量的抽样:
2.泊松分布的抽样方法
若N是服从泊松分布的离散型随机变量,其取值为n的概
率为
P(N n) e n (n 0,1, 2,...)
3.计算机方法
根据数论方法,通过数学递推公式运算来实现。 这种方法得到的随机数其实是一种伪随机数。

Monte-Carlo模拟

Monte-Carlo模拟
蒙特卡罗方法 (Monte Carlo Simulation)
曼哈顿计划 Buffon投针实验 大数定律
基本思想:当所求问题是某种随机事件出现的 概率,或者是某个随机变量的期望值时,通过 某种“试验”的方法,以这种事件出现的频率 估计该随机事件的概率,或者得到这个随机变 量的某些数字特征,并将其作为问题的解。
3) 建立各种估计量:一般说来,构造了 概率模型并能从中抽样(即实现模拟实 验)后,我们就要确定一个随机变量, 作为所求的问题的解。即针对模拟实验 的结果考察其统计特性(样本均值、方 差、置信区间等),建立各种估计量, 从中得到问题的解。
明确问题,建立模型收集和整理数据资料 编制程序,模拟运行分析模拟输出结果
逆变换法的具体步骤:
•确定随机变量X的概率分布函数F(x);
例:指数分布的Biblioteka 布函数为:1 e x , x 0, F ( x) x 0. 0,
F ( x) 1 e , x 0
解得
可取
1 x ln(1 ), 1 x ln .
模拟的优点:简单、快速、适应性强
能相对容易地近似很复杂的随机系统,问题 的几何形状的复杂性对其影响不大;
可以在广泛的条件下估计候选方案的性能; 建模者可以在不同层次的水平上进行控制;
模拟的缺点: 建立和运行模拟模型可能相当昂贵; 模拟模型的随机性使得结论受到限制
2、随机数和随机变量的生成 2.1 均匀分布随机数的生成
n=input('输入模拟次数:'); count=0; for i=1:n, rt1=rand; %模拟随机变量t1(火车从A站出发的时刻) if rt1<0.7 T1=0; elseif rt1>=0.7 & rt1<0.9 T1=5; else T1=10; end T2=30+randn*2; %模拟随机变量t2(火车的运行时间) %模拟随机变量t3(他到达B站的时刻) rt3=rand; if rt3<0.3 T3=28; elseif rt3>=0.3 & rt3<0.7 T3=30; elseif rt3>=0.7 & rt3<0.9 T3=32; else T3=34; end if T3 < T1 + T2, count=count+1; end end%for prob=count/n

蒙特卡罗方法PPT课件

蒙特卡罗方法PPT课件

第1页/共83页
蒙特卡 罗方法
直接方法
可以分解为各个独立 过程的随机性事件
统计方法 数值求解多维定积分
第2页/共83页
5.1 基本思想和一般过程
• Buffon投针实验
• 1768年,法国数学家Comte de Buffon利用投针实验估计 值
L
d
p 2L
d
第3页/共83页
• 长度为 l的针随机地落在相距为d>l 的一组水平线之间, 求针与线相交的概率?
分布的随机数的抽样,进行大量的计算随机模拟实验,从中获得随机变量 的大量试验值。各种概率模型具有不同的概率分布,因此产生已知概率分 布的随机变量,是实现Monte Carlo方法的关键步骤。最简单、最基本、 最重要的一个概率分布是(0,1)上的均匀分布 (或称矩形分布)。随机数就 是具有这种均匀分布的随机变量。对于其他复杂概率模型的概率分布可以 用数学方法在此基础上产生。因此,随机数是Monte Carlo模拟的基本工 具。
方法就叫做简单抽样法或非权重随机抽样法。
• 随机抽样法的真正优势表现在对较高维积分的近似求解,诸如在多体动力
学和统计力学中所遇到的问题。蒙待卡罗方法对较高维体系的积分误差仍

,而这时梯形定则给出的误差变为1/m2/D,这里D为维数。
1m
第21页/共83页
5.3.1 简单抽样 • 将其推广到多维的情况
模拟这个概率过程。对于本来不是随机性质的确定性问题,比如计算定积 分、解线性方程组及偏微分方程边值问题等,要用蒙特卡罗方法求解,就 必须事先构造一个人为的概率过程,它的某些参量正好是所要求的问题的 解。
第10页/共83页
5.1 基本思想和一般过程 • (2) 实现从已知概率分布的抽样 • 有了明确的概率过程后,为了实现过程的数字模拟,必须实现从已知概率

蒙特卡罗方法完整教程(WORD文档内附有源码)

蒙特卡罗方法完整教程(WORD文档内附有源码)

Monte Carlo 方法法§1 概述Monte Carlo 法不同于确定性数值方法,它是用来解决数学和物理问题的非确定性的(概率统计的或随机的)数值方法。

Monte Carlo 方法(MCM ),也称为统计试验方法,是理论物理学两大主要学科的合并:即随机过程的概率统计理论(用于处理布朗运动或随机游动实验)和位势理论,主要是研究均匀介质的稳定状态。

它是用一系列随机数来近似解决问题的一种方法,是通过寻找一个概率统计的相似体并用实验取样过程来获得该相似体的近似解的处理数学问题的一种手段。

运用该近似方法所获得的问题的解in spirit 更接近于物理实验结果,而不是经典数值计算结果。

普遍认为我们当前所应用的MC 技术,其发展约可追溯至1944年,尽管在早些时候仍有许多未解决的实例。

MCM 的发展归功于核武器早期工作期间Los Alamos (美国国家实验室中子散射研究中心)的一批科学家。

Los Alamos 小组的基础工作刺激了一次巨大的学科文化的迸发,并鼓励了MCM 在各种问题中的应用[2]-[4]。

“Monte Carlo ”的名称取自于Monaco (摩纳哥)内以赌博娱乐而闻名的一座城市。

Monte Carlo 方法的应用有两种途径:仿真和取样。

仿真是指提供实际随机现象的数学上的模仿的方法。

一个典型的例子就是对中子进入反应堆屏障的运动进行仿真,用随机游动来模仿中子的锯齿形路径。

取样是指通过研究少量的随机的子集来演绎大量元素的特性的方法。

例如,)(x f 在b x a <<上的平均值可以通过间歇性随机选取的有限个数的点的平均值来进行估计。

这就是数值积分的Monte Carlo 方法。

MCM 已被成功地用于求解微分方程和积分方程,求解本征值,矩阵转置,以及尤其用于计算多重积分。

任何本质上属随机组员的过程或系统的仿真都需要一种产生或获得随机数的方法。

这种仿真的例子在中子随机碰撞,数值统计,队列模型,战略游戏,以及其它竞赛活动中都会出现。

Monte-Carlo(蒙特卡洛方法)解析

Monte-Carlo(蒙特卡洛方法)解析
2. 线性同余器可以达到的最长周期为 m 1 ,我们 可以通过适当的选择 m 和 a ,使无论选取怎样的 初值 x0 都可以达到最大周期(一般选取 m 为质数)
常用的线性同余生成器
Modulus m 2^31-1
=2147483647
2147483399 2147483563
Multiplier a 16807
在 n 次中出现的频率。假如我们取 fn ( A) 作为 p P(A) 的估计,即 pˆ fn ( A) 。
然后取 ˆ
2l afn ( A)
作为
的估计。根据大数定律,当 n 时,

fn ( A) a.s.
p.
从而有ˆ 2l P 。这样可以用随机试验的方法求得 的估计。历史上 afn ( A)
(2) 计算 X F -1(U ) ,则 X 为来自 F(x) 分布的随机数.
例 1 :设 X ~ U (a,b) ,则其分布函数为
0
F
(
x)
x b
a a
1,
xa a xb
xb
F -1( y) a (b a) y , 0 y 1
生成 U (0,1) 随机数 U,则 a (b - a)U 是来自
算法实现
许多程序语言中都自带生成随机数的方法, 如 c 中的 random() 函数, Matlab中的rand()函数等。 但这些生成器生成的随机数效果很不一样, 比如 c 中的函数生成的随机数性质就比较差, 如果用 c , 最好自己再编一个程序。Matlab 中的 rand() 函数, 经过了很多优化。可以产生性质很好的随 机数, 可以直接利用。
U (a,b) 的随机数。
例 2:
设 X ~ exp( ) 服从指数分布,则 X 的分布函数为:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档