第二章 蒙特卡洛方法
计算机模拟采用的方法来看,它大致可以分为两种类型:
(1) 随机模拟方法或统计试验方法,又称蒙特卡洛(Monte
Carlo)方法。它是通过不断产生随机数序列来模拟过
程。自然界中有的过程本身就是随机的过程,物理现
象中如粒子的衰变过程、粒子在介质中的输运过程...
等。当然蒙特卡洛方法也可以借助慨率模型来解决不
直接具有随机性的确定性问题。
(2) 确定性模拟方法。它是通过数值求解一个个的粒子运
动方程来模拟整个系统的行为。在统计物理中称为分
子动力学(Molecular Dynamics)方法。关于分子动
力学方法我们将在第六章中介绍。此外, 近年来还发
展了神经元网络方法和原胞自动机方法。
从蒙特卡洛模拟的应用来看,该类型的应用可以分为三种
形式:
(1) 直接蒙特卡洛模拟。它采用随机数序列来模拟复杂
随机过程的效应。
(2) 蒙特卡洛积分。这是利用随机数序列计算积分的方
法。积分维数越高,该方法的积分效率就越高。
(3) Metropolis蒙特卡洛模拟。这种模拟是以所谓“马
尔科夫”(Markov)鏈的形式产生系统的分布序列。
该方法可以使我们能够研究经典和量子多粒子系
统的问题。
2.1蒙特卡洛方法的基础知识
一、 基本思想
对求解问题本身就具有概率和统计性的情况,例如中子在介
质中的传播,核衰变过程等,我们可以使用直接蒙特卡洛模拟
方法。该方法是按照实际问题所遵循的概率统计规律,用电子
计算机进行直接的抽样试验,然后计算其统计参数。直接蒙特
卡洛模拟法最充分体现出蒙特卡洛方法无可比拟的特殊性和优
越性,因而在物理学的各种各样问题中得到广泛的应用。该方
法也就是通常所说的“计算机实验”。
蒙特卡洛方法也可以人为地构造出一个合适的概率模型,依
照该模型进行大量的统计实验,使它的某些统计参量正好是待
求问题的解。这也就是所谓的间接蒙特卡洛方法。下面我们举
两个最简单的例子来说明间接蒙特卡洛方法应用的内涵。
巴夫昂(Buffon)投针实验。
该试验方案是:在平滑桌面上划一组相距为s的平行线,
向此桌面随意地投掷长度l s=的细针,那末从针与平行线相交的
概率就可以得到π的数值。
数学统计理论的简单地计算:
设针与平行线的垂直方向的夹角为α,那么针在与平行线垂
直的方向上投影的长度为αcos?l。对于确定的α夹角,细针与平
行线相交的概率为投影长度与平行线间距之比,即
α
α
cos
cos
=
?
s
l
。
由于
α
是在[]π,0区间均匀分布的,所以αcos的平均值为
π
αα
π
π
2
cos
1
0
=
∫
d .
假如在N次投针中,有M次和平行线相交。当N充分大时,
相交的频数NM就近似为细针与平行线相交的概率。因此,我
们得到
M
N2
≈π
.
然而,上述投针法得到试验结果的效率和精度都很差。
经过n次投针后得到π值的精度。
设π/2=p
np
,则针与平行线相交的次数应满足二项式分布,
其期望值为,方差应为)1( pnp ?。因而
π/2
值的方差为
,标准误差为
n/)pp 1( ?
( )
n
p?1p
。将π/2=p的标准误差改写为
π
的标准误差n/37.2。这意味着试验所得的
π
值的不确定性的范
围如下:
对100次投针为,0.2374
对10,000次投针为,0.0237
对1,000,000次投针为,0.0024。
显然用这种方法比用其它方法计算π值所引起的不确定范围要
大得多。
例: 定积分计算
.
∫
=
1
0
)( dxxfI
0()fx 1≤ ≤
这时我们可以随机地向正方形内投点,最后统计落在曲线下的
点数M,当总的掷点数N充分大时,
NM
就近似等于积分值I。
蒙特卡洛方法的基本思想:
当问题可以抽象为某个确定的数学问题时,应当首先建立一
个恰当的概率模型,即确定某个随机事件A或随机变量X,使
得待求的解等于随机事件出现的概率或随机变量的数学期望
值。然后进行模拟实验,即重复多次地模拟随机事件A或随机
变量X。最后对随机实验结果进行统计平均,求出A出现的频
数或X的平均值作为问题的近似解。这种方法也叫做间接蒙特
卡洛模拟。
二、 随机变量和随机变量的分布
() []duuuuPduug +<′<=
.
()ug
u+
称为u的概率分布密度函数,它表示随机变量u’取u到
之间值的概率。 du
()ug 分布函数定义为:
G
.
() ()dxxgu
u
∫
∞?
=
则 .
() ()duudGug /=
注意:G是一个在区间取值的单调递增函数。通常()u
[1,0 ] ( )ug是
归一化的分布密度函数,因而该函数对所有的值范围的积分
值应当为1。
u
三、 随机变量的独立性
假如我们考虑两个随机变量u’和v’的分布,则必须引进这
两个变量的联合分布密度函数
( )vuh ,
,此时带来的数学问题就更
为复杂。
在这种特殊情况下,u’和v’是彼此独立的随
机变量。
() ()(vqupvuh ?=, )
对于两个以上的变量来说,随机变量独立性的概念就更复杂
了。
如: r和s 是两个均匀分布在[ ]1,0区间的相互独立的随机变
量,由此我们可以构造三个新的变量
() .1mod
,
,
srz
sy
rx
+=
=
=
此时也都是均匀分布在区间
,,xyz
[ ]1,0的随机变量,并且所有的
和组合都是独立的(括号内任一个变量值的选取
并不对括号中另一个变量的取值有影响)。但是( )中,任
意两个变量的值可以确定出第三个变量的值。此时它们之间存
在明显的相关性。
()yx, ()zy,, (zx, )
,,xyz
四、 期望值、方差和协方差
一个函数的数学期望值是定义为该函数的平均值 ()uf ′
{} () () ( ) ( )duugufudGuffE
∫∫
== .
{} ()duuf
ab
fE
b
a
∫
?
=
1
.
类似地,可以定义变量u′的期望值为u的平均值
{ }()( )duuuguudGuE
∫∫
==′ .
一个函数或变量的方差:
V{} {}(){}{}[]dGfEffEfEf
2
2
∫
?=?= .
方差的平方根叫做标准误差。由于标准误差与其真值有相同
的量纲,因而它比方差更具有物理意义。
如果将求期望值和求方差的运算作为算符,我们可以证明出
这些算符作用在随机变量的线性组合式上的一些简单规则。假
如x和y是随机变量,c是一个常数,则
{}{ } { }yExcEycxE +=+ .
{}{}{ } { }( ) { }( ){ }xExyEycEyVxVcycx ??++=+ 2
2
V .
期望值算符是一个线性算符,而方差算符是非线性算符。
五、 大数法则和中心极限定理
概率论中的大数法则和中心极限定理是蒙特卡洛方法的基础。
大数法则反映了大量随机数之和的性质。
如果函数在[区间,以均匀的概率分布密度随机地取n
个数,对每个计算出函数值
h ]ba,
i
u
i
u ( )
i
uh
。大数法则告诉我们这些
函数值之和除以n所得的值将收敛于函数的期望值,即
h
() ()
1
11
lim lim
n
b
in
ann
i
hu I hudu I
nb
→∞ →∞
=
≡=
?
∑
∫
≡
.
大数法则保证了在抽取足够多的随机样本后,计算得到的积
分的蒙特卡洛估计值将收敛于该积分的正确结果。若要对收敛
的程度进行研究,并做出各种误差估计,则要用到中心极限定
理。
中心极限定理告诉我们:在有足够大,但又有限的抽样数n
的情况下,蒙特卡洛估计值是如何分布的。
该定理指出:无论随机变量的分布如何,它的若干个独立随
机变量抽样值之和总是满足正则分布(即高斯分布)。例如我们
有一个随机变量
η
,它满足分布密度函数()f x。如果我们将个
满足分布密度函数
n
()f x的独立随机数相加:
12
...
nn
R η ηη= +++,
则
n
R满足高斯分布。高斯分布可以由给定的期望值μ和方差完
全确定下来,通常用
2
σ
( )
2
,σμN来表示
() ()
2
22
1
,exp
2
Nx/μ σμ
σπ
σ
? ?
=??
? ?
.
中心极限定理可以给出蒙特卡洛估计值的偏差。如果上面公式
右边积分的期望值为,公式左边用n次抽样的蒙特卡洛估计
值为,标准误差为
I
n
I σ,则当n充分大时,对任意的(0> )λλ,有
( ) ( ) 2
/2
1
lim Pr 1
2
t
n
n
ff
ob I I e dt
nn
λ
λ
σσ
λ λα
π
?
?→∞
??
? ≤?< = =?
??
??
∫
.
这说明:该积分的期望值与蒙特卡洛估计值之差在范围
( )
n
f
II
n
σ
λ?<
内的概率为α?1,α称为显著水平,α?1称为置信水平。
σ
为
蒙特卡洛估计值的标准误差,{ } nf /V
2
=σ。α与λ的关系可以有
上面积分公式求得。也有专门的数学用表可查。例如取置信水
平1 %99=?α,可以查得3=λ。这可以解释为:不等式3?<
n
II
n
σ
成立的概率为。同样1%99 %95=?α时,2=λ。
从上面的分析看到,蒙特卡洛方法的误差与和n有关。为
了减小误差,就应当选取最优的随机变量,使其方差最小。对
同一个问题,往往会有多个可供选择的随机变量,这时就应当
择优而用之。在方差固定时,增加模拟次数可以有效地减小误
差。如试验次数增加100倍,精度提高10倍。当然这样做就增
加了计算的机时,提高了费用。所以在考虑蒙特卡洛方法的精
确度时,不能只是简单地减少方差和增加模拟次数,还要同时
兼顾计算费用,即机时耗费。通常以方差和费用的乘积作为衡
量方法优劣的标准。
2
σ