第八章蒙特卡罗方法研究报告
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(R) (R)dR
(R) | (R) |2
† (R ) (R )dR
(R) 1 H(R) (R )
用MC方法计算上述积分 优化 i 使 E[ i] 最小
简单应用:计算He的电子结构
两种极端情况: f1 (x)
f2 (x)
(a)
x
只需一个点,就可求得积分 的精确值
(b)
x0
x
即使在积分区间上取很多点, Leabharlann 难以求得积分的精确值第八章
蒙特卡罗方法
Monte-Carlo, Monaco
1.1 引 言
什么是Monte Carlo方法
Monte Car1o(MC)方法又称随机模拟 或统计试验方法。
源于:Metropolis提出的美国在第二 次世界大战中研制原子弹的“曼哈顿计 划”;研究与原子弹有关的中子输运过程。
该计划的主持人之一、数学家John von Neumann用驰名世界的赌城—摩纳哥 的Monte Carlo—来命名这种方法。
Metropolis 算法:
一种很普遍的产生具有任意形状的给定概率分布随机变量的方法。
算法的实现: 可以用各种不同的方法落实.其中最简单者: 假想有一个随机行走者在R空间中运动,这个随机行走过程
相继各步的终点产生出一个点的序列:R0,R1, ;随机行走 的路程越长,它连接的点就越接近所要求的分布.
这一随机行走在位形空间中进行的规则如下:
也可以理解为:
f (x)
f (x)
x
x
——重要抽样的MC方法
例:用重要抽样MC方法计算积分
I
1 dx 0 1 x2
解:选择分布函数
(x) 1(42x)
3
y(x)
x
(x')dx'
4x
x2
0
3
x(y) 2 43y
1.3.3 Metropolis 算法
对积分区间的重要抽样要求我们获得x(y),而这只对极少数的分 布 (x)能够解析地做到。
试验方法,得到这一概率,并用它作为问题的解。
Monte Carlo模拟的步骤:
1,根据欲研究的物理系统的性质,建立能够描述该系统特性 的理论模型,导出该模型的某些特征量的概率密度函数;
2,从概率密度函数出发进行随机抽样,得到特征量的一些模 拟结果;
3,对模拟结果进行分析总结,预言物理系统的某些特性。
随机数 在具有单位矩形分布的总体中抽取简单的子样, x1, x2, …, xN,
称为随机数序列,其中每一个个体称为随机数。
伪随机数 计算机是用数论的方法来产生随机数的。用计算机生成的随机
数从表面上看是随机的,但实际上由于凡是计算机产生随机数都要 依赖于某种算法,这种“随机数”仍然是确定的,故称伪随机数。
If you are a very poor dart player, it is easy to imagine throwing darts randomly at the above figure, and it should be apparent that of the total number of darts that hit within the square(N), the number of darts that hit the yellow part (n)is proportional to the area of that part:.
n: • N : ••
积分I的一个估计值为
I' n N
x 1
Monte Carlo方法的基本思想 例3, 打靶游戏
以r表示投掷者的飞镖到靶心的距离,分布函 数f (r)表示该投掷者的飞镖分布,g(r)表示击 中r处应得的分数。则投掷者的得分为:
g0 g(r)f(r)dr
用概率论的语言说,<g>就是随机变量g(r)的数学期望值,即 <g>=Eg(r).
例:用Metropolis抽样MC方法计算积分
I
1 dx 0 1 x2
解:选择分布函数
(x) 1(42x)
3
1.4 蒙特卡罗方法的特点
1,收敛速度与问题的维度无关,适宜于多维问题。
d维积分
MC方法的误差
I 1 N
复化梯形求积公式的误差
I
1 N 2/d
分水岭:d=4 多体问题:d=3N
2,可计算任意形状积分区域上的积分
I 0 1f(x )d x 0 1 f( (x x ) ) (x )d x, 0 1 (x )d x 1
x
做替换 y(x)0(x')dx'
因而
d y (x), y(x0 )0, y(x 1 ) 1
d x
则
1
1 f(y)
I0 f(x)dx0(y)dy
I' f(yi) 1 N f(yi)
(yi) Ni1 (yi)
1. 5 蒙特卡罗方法应用举例
量子变分MC方法
HiN 1 2 h m 2i i2U ext(ri) ijV(ri,rj)
H n ( R ) E n n ( R ) ,R ( r 1 , r 2 , L r N )
E(i
)
| H| |
E [ i ] 0 j
E[ i ]
† (R )H (R )dR † (R ) (R )dR
现在,假设这个投掷者投掷了N次,飞镖点分布依次是r1, r2,…,rN,则,自然认为N次投掷得分的平均值
1 N
gN ' N i1 g(ri )
相当好地代表了这个运动员的成绩。换句话说,gN’是积分 <g>的一个估计值。
Monte Carlo方法的基本思想: 将所要求解的问题转化为某事件出现的概率,再通过某种模拟
均匀伪随机数产生方法 线性同余法:从一个‘种子’ 出发生长出一个随机数序列
xi1(axib)m odc
a、b、c:幻数。一般取
a 7 5 1 6 8 0 7 ,b 0 ,c 2 3 1 1 2 1 4 7 4 8 3 6 4 7
Forntran内部函数 RAN(I) 输入:整型变量或数组元素, 足够大的奇数 输出:[0, 1)间的随机数
1.2 伪随机数的产生
随机的重要性:
Non-random sequence will skew the approximation. Very advanced Monte Carlo Method computations could run for months before arriving at an approximation. If the method is not sufficiently random, it will certainly get a bad approximation and waste lots of $$$.
1.3 蒙特卡罗方法计算积分
1.3.1 简单抽样的蒙特卡罗方法
1
I 0 f (x)dx
把 I 看成f (x)在[0,1]上的平均,则
1 N
I'
fi
N i1
f(xi )
求平均的做法:均匀地在[0,1]中随机选取N个点{xi},考虑f (x) 在 这些点上的函数值。
误差:根据统计力学中的大数定律和中心极限定理
(I)2 1[ N
fi2
fi
2]
I 1 N
例:用简单抽样MC方法计算积分
I 1 dx
0 1 x2
两种极端情况: f1 (x)
f2 (x)
(a)
x
只需一个点,就可求得积分 的精确值
(b)
x
即使在积分区间上取很多点, 也难以求得积分的精确值
1.3.2 重要抽样的蒙特卡罗方法
引入分布函数,将积分变形为
Monte Carlo方法的应用: 1,非确定性过程的模拟 2,复杂程度高,不能进行模型分析的确定性系统模拟 3,维数较高,不易离散化的确定性系统模拟
例如:对中子输运过程的模拟 多体问题的模拟 多重积分的计算 其他:道琼斯指数预测 石油矿井勘探 癌症的放射疗法
Monte Carlo方法的基本思想 例1,圆周率的计算:
narea of yellowpart
N area of the square 4
4n N
Monte Carlo方法的基本思想 例2,简单积分
y 1
1
I 0 f (x)dx
对边长为1的正方形里随机投点, O
点落在曲线y=f (x)的下面 对积分有贡献 点落在曲线y=f (x)的上面 对积分无贡献
设行走者处于序列中Rn点上.为了产生Rn+1点,行走者迈出试探性的 一步到一个新点Rt这个新点可以用任何方便的方法选取,例如可以在 Rn点周围的一个边长 很小的多维立方体中均匀地随机选取.然后 按照比值
r (Rt) (Rn)
来决定是“接受”还是“拒绝”这一试验步.如果r大于l,那么接受 这一步(取Rn+1=Rt);而如果r小于1,则以概率r 接受这步.这时我们 把r和一个在[0,1]区间上均匀分布的随机数 比较,若 <r就接受 这一步.如果这一试验步不被接受,就舍弃它.而取Rn+1=Rn;这样 产生出Rn+1之后,可以从Rn+1出发迈出一个试验步按照同样的过程产 生Rn+2,‘任意’点R0都可以用作随机行走的起点.