第二章 蒙特卡洛方法 计算机模拟采用的方法来看,它大致可以分为两种类型: (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 σ