第三章象特卡洛方法的若干应用 象卡洛方法是利用随机变量的一个教值序列来得到特定 问题的泥似解的数讣犷方法。 蒙卡洛方法的应用可以大政分为丌类:第一类是所求问题 具有严格确完的数学形式,马一类是本身就是具有統计性员败的问 3.1蒙特卡洛方法在积分计算中的应用 一维定积分计算的平均值法(期望值佑计法)。 一维积分计箕 I=lf(x)dx 0≤x≤1,0≤f(x)≤1 在x的定义域[0,1]上垍勻地隨机取点,该均勻分布的随机变量 记为5。我们定义一个霞机变量n为 n=f(5) 则显嶽有 En}=Ef()}=1 7的期望值岢于积分值1。只耍抽取足够多的随机点,即取隨机 京数n足够大时,f()的平均值 f(5) 就是积分的一个无偏佔计值
第三章 蒙特卡洛方法的若干应用 蒙特卡洛方法是利用随机变量的一个数值序列来得到特定 问题的近似解的数值计算方法。 蒙特卡洛方法的应用可以大致分为两类:第一类是所求问题 具有严格确定的数学形式,另一类是本身就是具有统计性质的问 题。 3. 1 蒙特卡洛方法在积分计算中的应用 一、一维定积分计算的平均值法(期望值估计法)。 一维积分计算 0 ∫ = 1 0 I f (x)dx, ≤ x ≤ 1,0 ≤ f (x) ≤ 1. 在 x的定义域[0,1]上均匀地随机取点,该均匀分布的随机变量 记为ξ 。我们定义一个随机变量η1为 ( ) η1 = f ξ . 则显然有 E{ } = E{f ( )} = I η1 ξ . η1的期望值等于积分值I 。只要抽取足够多的随机点,即取随机 点数n足够大时, f (ξ )的平均值 ( ) 1 1 ∑= = n i n i f n I ξ 就是积分I 的一个无偏估计值
7的方。 vin)=L(x) 显}依赖于被积函数∫(x)在积分域上的方。当f(x)在x的定 义城内变化平担,即和的差处处都較小时,方也小;凤之, 则方校大
η1的方差。 V{ } [ ] f x I dx . 2 1 0 1 ( ) ∫ η = − 显然V{η1}依赖于被积函数 f ( x)在积分域上的方差。当 f (x)在 x的定 义域内变化平坦,即和I 的差处处都较小时,方差也小;反之, 则方差较大。 f(x) 0 1 x y 1 I f(x) 0 1 x y 1 I
从这里可以看出:恳量减小被积函數在积分城上的方,可以魂 小积分估计值的方些,加遠收敛。推而广之來说,就是耍澉少棋 拟量在拟范国內的方。 枫据这样的原则,当被积函数∫(x)在积分域内的方差毓大时 可以采用各种抽样执巧。如采用量要抽样法,将f(x)的方鑾吸收 到g(x)中赤,这禅模拟量一记录函数∫(x)=f(x)/g(x)在定义域内相 過平坦,则我们将(3.1.1)式的计算变为 1=/(M[(2g=广(xg(k 若选取n为服从分布密度函数g(x)的函数(x)的抽样。这里g(x)称 为傭脩分布寧度函数。我们;到 因此它的平均 1n=∑m=∑∫'(x) 给出了I的一个无儡计值。这时的方为 切)=C(x)-)于8(xk=C( f2(x) 8(x) 在舆际讣犷中,方還过下式得到计算绪果 ∑ 式中角塑括号()爽示对括号内所有可能的[0,1区间,换g(x)分 布的随机坐标数序列{}对应的数值求平均。方程右边第一项对 f(x)水均(,苇二项示求(()平均的平方了。上
从这里可以看出:尽量减小被积函数在积分域上的方差,可以减 小积分估计值的方差,加速收敛。推而广之来说,就是要减少模 拟量在模拟范围内的方差。 根据这样的原则,当被积函数 在积分域内的方差较大时, 可以采用各种抽样技巧。如采用重要抽样法,将 的方差吸收 到 中去,这样模拟量—记录函数 在定义域内相 当平坦,则我们将(3.1.1)式的计算变为 f (x) * f f (x) g(x) (x) = f (x) / g(x) ∫ ∫ ∫ = = = 1 0 1 0 * 1 0 ( ) ( ) ( ) ( ) ( ) ( ) g x dx f x g x dx g x f x I f x dx 若选取η′为服从分布密度函数 的函数 的抽样值。这里 称 为偏倚分布密度函数。我们得到 g(x) f (x) ∗ g(x) I = E{η′}. 因此它的平均值 ∑ ∑ = = = ′ = n i i n i n i f x n n I 1 * 1 ( ) 1 1 η . 给出了I 的一个无偏估计值。这时的方差为: { } [ ] ∫ ∫ ∫ = − ′ = − = − 1 0 2 2 1 0 2 1 0 2 * ( ) ( ) ( ) ( ) ( ) ( ) ( ) dx I g x f x I g x dx g x f x V η f x I g x dx . 在实际计算中,方差通过下式得到计算结果: 2 2 2 * * 1 1 1 1 ( ) ( ) n n i i i i f x f x n n σ = = = − ∑ ∑ . 式中角型括号 表示对括号内所有可能的[0,1]区间,按 分 布的随机坐标数序列{ 对应的数值求平均。方程右边第一项对 g(x) xi} { } *2( ) i f x 求平均( ) *2 f ,第二项表示求{ } * ( ) i f x 平均值的平方 2 __ * f 。上
式可以经推导到: 由此我们看出其误鑾平方与∫在[0,1区间的方鑾成正比,且 oa1/Vn。这与中心极限定理所得到的結果一政。 二、一维定积分计算的掷点法 计犷积分也可以笈樺来散∶ 在单正方形内均訇投点,每个点的坐标为(x1,y),共敵N 个投点。如景投点足不亭式ys(x),即点落在f(x)曲戴下,则记 录下投点次数(认为试验成功);凤之,则认为试失败。 用蒙卡洛的语言來讲,就是产生随机数5,2。如果5≤f(52), 则认为试验成动;如果5>八(52),则试验失败。若在N次试验中有 m次成功,则比值m/N就給出/的一个无儡佔计: 引入随机变量 水55)={1555) 0,51>f(2) 则 ((51252 也在N次试验下的一个的无偏计值为 N2(5-5) N 这是Ⅰ的一个似值。它的方塾为 {m}=E{2}-[E=1-12
式可以经推导得到: ( ) { } * 2 * 1 2 *2 V f f f n n σ = − = . 由此我们看出其误差平方与 * f 在[0,1]区间的方差成正比,并且 σ ∝ 1 n 。这与中心极限定理所得到的结果一致。 二、 一维定积分计算的掷点法 计算积分也可以这样来做: 在单位正方形内均匀投点,每个点的坐标为( ,共做 N 个投点。如果投点满足不等式 , ) i i x y ,即点落在 曲线下,则记 录下投点次数(认为试验成功);反之,则认为试验失败。 ( ) f (x) i i y ≤ f x 用蒙特卡洛的语言来讲,就是产生随机数 1 2 ξ ,ξ 。如果 , 则认为试验成功;如果 ( ) 1 2 ξ ≤ f ξ ( ) ξ 1 ξ 2 > f ,则试验失败。若在 N 次试验中有 m 次成功,则比值m / N 就给出I 的一个无偏估计值: N m I ≈ . 引入随机变量 ( ) > ≤ = 0, ( ) 1, ( ) , 1 2 1 2 1 2 ξ ξ ξ ξ η ξ ξ f f 则 { } ( ) , E η ξ 1 ξ 2 I = . 它在 N 次试验下的一个I 的无偏估计值为 ( 2 1 2 ) 1 1 , N N i i i m I N N η ξ ξ − = = = ∑ . 这是I 的一个近似值,它的方差为 { } { } [ { }] 2 2 2 V η = E η − E η = I − I
容易证明掷点沽的方岩比平法的方大 r切-r{)=1-12-()-=1-F-r(+2J(x=P [(x-(x)20 证明: n(x5k=)+水x5k=(5) 而在平均值法中|=E}=E{(},恰恰用了(51,52)对;的期翼值代 巧n(1252) 这里可以反应出减小方差,加怏收敛的又一个原则。这就是 戛尽量使用理论分析到的期望值来代拟佔计值。逭个環则 也同禅垽用于所有的蒙卡洛棋拟过程。 实上使用这个原则可以織小方、加快收筮的原因是显 的。因为一物隨机拟量总会有误孌的,如最以肴确的理论值来 代謦κ12),就必然食魂小方。所以在一切棋拟过程中,能使 用理论计算值的地方应当尽量使用。 以上觉仉介绍的这丌个微小方塾,加收敛的原则也正是 量抽禅油、分层抽样法、对偶变量法、相关抽禅法的基本出 三、多量定积分的计算 物理上的许多问题都念涉及多量定积分。例如,一个粒子衰 变到n体末的相空间积分,由于每个来虍粒子部有动量和能量 四个分量,考虍到每个粒子灏足能公式和所有粒子的总能
容易证明掷点法的方差比平均值法的方差大 { } { } [ ]2 1 1 1 2 2 2 1 0 0 0 V V η η − = I − − I f ( ) x − I dx = I − − I f (x)dx + 2I f (x)dx − ∫ ∫ ∫ 2 I ( )[1 ( )] 0 . 1 0 = − ≥ ∫ f x f x dx 证明: ( ) ( ) ( ) ( ) ( ) , , , ( ) 2 1 2 0 2 1 0 2 2 2 η ξ η ξ η ξ ξ ξ ξ x dx x dx x dx f f f = + = ∫ ∫ ∫ 而在平均值法中I = E{ } η1 = E{f (ξ)},恰恰用了 ( ) 1 2 η ξ ,ξ 对ξ 1的期望值代 替了 ( ) 1 2 η ξ ,ξ 。 这里可以反应出减小方差,加快收敛的又一个原则。这就是 要尽量使用理论分析得到的期望值来代替模拟估计值。这个原则 也同样适用于所有的蒙特卡洛模拟过程。 实际上使用这个原则可以减小方差、加快收敛的原因是显然 的。因为一切随机模拟量总会有误差的,如果以精确的理论值来 代替 ( , ) 1 2 η ξ ξ ,就必然会减小方差。所以在一切模拟过程中,能使 用理论计算值的地方应当尽量使用。 以上我们介绍的这两个减小方差,加速收敛的原则,也正是 重要抽样法、分层抽样法、对偶变量法、相关抽样法等的基本出 发点。 三、 多重定积分的计算 物理上的许多问题都会涉及多重定积分。例如,一个粒子衰 变到n体末态的相空间积分,由于每个末态粒子都有动量和能量 四个分量,考虑到每个粒子满足质能公式和所有粒子的总能、动
量守恒,则总的相空间积分量数为3-4。这样的物理问题佳徒都 做数值积分 前面讲的一维定积分计犷的平均值法和揶点法郤可以雜而 广之,应用于多量定积分的计算。 对于s维多量积分,我们也可以用前面讲迷的“归一化”方 法,使得积分变量x∈[0,1,(=1,s),被积函数在积分范国内满足 0≤f( x)≤1。然后其散积分 在奥际兮卡洛积分讣箕中,在积分的超立方内不同区域的积 分贯可能强烈地变化。如我仉在积分的超立方体內均訇抽 样,积分的贡献可能主要来自少数仅仅只有几个象特卡洛投痕的 小区域,这就会导政很大的统计误。 当在积分域内∫(x1,x2,x的方很大时,就会广生这个效 疝。为了少这些对误塾的负觥,们将隨机投点更多地投在 f(x1,x2,x,)取值大的区间。这就是说,采用堂要抽样的蒙特卡 洛积分才法。 具体操作步是 (1)选一个抽样比简单的概率分布密度函数g(x1 外定义 f(x1,x2…x,) g(r, 良得∫(x,x2x)在积分域内的方些鞍小,则
量守恒,则总的相空间积分重数为3n − 4 ) 。这样的物理问题往往都 需要做数值积分。 ⋅dxs ( , ,⋅⋅ 1 2 x x 前面讲的一维定积分计算的平均值法和掷点法都可以推而 广之,应用于多重定积分的计算。 对于 s 维多重积分,我们也可以用前面讲述的“归一化”方 法,使得积分变量 xi ∈[0,1],(i = 1,...,s ,被积函数在积分范围内满足 0 ≤ f (x1, x2 ,..., xs ) ≤ 1。然后再做积分 ∫∫ ∫ = ⋅⋅⋅ ⋅⋅ 1 0 1 0 1 0 1 2 1 2 ... ( , , , ) I f x x xs dx dx . 在实际蒙特卡洛积分计算中,在积分的超立方体内不同区域的积 分贡献可能强烈地变化。如果我们在积分的超立方体内均匀抽 样,积分的贡献可能主要来自少数仅仅只有几个蒙特卡洛投点的 小区域,这就会导致很大的统计误差。 当在积分域内 的方差很大时,就会产生这个效 应。为了减少这些对误差的贡献,我们将随机投点更多地投在 ( , ,..., ) 1 2 s f x x x ( , ,..., ) 1 2 s f x x x 取值大的区间。这就是说,采用重要抽样的蒙特卡 洛积分方法。 具体操作步骤是: (1)选一个抽样比较简单的概率分布密度函数 , 并定义 ( , , , ) 1 2 s g x x ⋅⋅⋅ x ⋅⋅⋅ = ⋅ ≠ ⋅⋅⋅ ⋅⋅⋅ ⋅⋅⋅ = 0, ( , , , ) 0 , , ) 0 ( , , , ) ( , , , ) ( , , , ) 1 2 1 2 1 2 1 2 * s s s s s g x x x g x g x x x f x x x f x x x 使得 ( 1, 2 , , )在积分域内的方差较小,则、 * s f x x ⋅⋅⋅ x
=E(x,x…x)=∫-广(x,x…;x)(x,x…x2…d 按照傭倚密度函数8(x,x2…x)在0≤x,51,(=1)间中抛取N个子样 (x1,x12;…,xn),i=1,2,…N,则记录函数∫(x1x2…x)的平均值为 (x i12 它給出了Ⅰ的一个无佑计值,外可以作为的近似寶。 如果在S维体积内散叠堂积分/=「J(x,x2…x2…血时, 如果在积分域Ω内∫(x12x2…,x)的方差并不大,为了简化抽样,就 0,其它 蚊时记录函教为 f∫(x1,x2x,) =f(x12x2…x) g(r, 在S维体积Ω内抽取随机样本(x1x12;x)是客易的,抽得N个 样本之 ∑f( D- 就給出了的近似寶。 从前面介绍的减小方塾的第二个原则可以看出:在采用象卡 洛方法计多量积分时,如果能够将其中的某几量积分解析地求 出时,应当恳量地良用解析方法。这样龍减小方差,加遠收敛 为了在积吩的痛錐体积内的投点更加均訇,我们可以将积分 空间分成许多相同体积的子空间,在每个子空间中部投以相同数 目的隨机点,从而嫩少象卡洛积分误。这就是采用前面第2.4
{ } . ∫ ∫ ∫ = ⋅⋅⋅ = ⋅⋅⋅ ⋅⋅⋅ ⋅⋅⋅ 1 0 1 0 1 2 1 2 1 2 * 1 0 1 2 * ( , , , ) ... ( , , , ) ( , , , ) s s s s I E f x x x f x x x g x x x dx dx dx 按照偏倚密度函数g(x1 , x2 ,⋅⋅⋅, xs )在0 ≤ ≤ 1 i x ,(i = 1,...,s)空间中抽取 N 个子样 (xi1 , xi2 ,⋅⋅⋅, xis ),i = 1,2,⋅⋅⋅, N ,则记录函数 , )的平均值为 * s ( , , ⋅⋅ x 1 2 f x x ⋅ ∑= = ⋅⋅⋅ N i N i i is f x x x N I 1 1 2 * ( , , , ) 1 . 它给出了I 的一个无偏估计值,并可以作为I 的近似值。 如果在 s 维体积Ω内做多重积分 时, 如果在积分域 ∫ ∫ Ω = ⋅⋅⋅ ⋅⋅⋅ s s I f x x x dx dx dx 1 2 1 2 ... ( , , , ) Ω内 的方差并不大,为了简化抽样,就 取 , ,..., ) 1 2 s f (x x x Ω ⋅⋅⋅ ∈ Ω ⋅⋅⋅ = 0,其它 1/ ,( , , , ) ( , , , ) 1 2 1 2 s s x x x g x x x 这时记录函数为 ( , , , ) ( , , , ) ( , , , ) ( , , , ) 1 2 1 2 1 2 1 2 * s s s s f x x x g x x x f x x x f x x x = Ω ⋅⋅⋅ ⋅⋅⋅ ⋅⋅⋅ ⋅⋅⋅ = . 在 s 维体积Ω内抽取随机样本(x , x , , x ) i1 i2 is ⋅⋅⋅ 是容易的,若抽得 N 个 样本之后, ∑= ⋅⋅⋅ Ω= N i N i i is f x x x N I 1 1 2 ( , , , ) . 就给出了I 的近似值。 从前面介绍的减小方差的第二个原则可以看出:在采用蒙特卡 洛方法计算多重积分时,如果能够将其中的某几重积分解析地求 出时,应当尽量地使用解析方法。这样便能减小方差,加速收敛。 为了使在积分的高维体积内的投点更加均匀,我们可以将积分 空间分成许多相同体积的子空间,在每个子空间中都投以相同数 目的随机点,从而减少蒙特卡洛积分误差。这就是采用前面第 2.4
节中介绍的“分层抽禅方法”这神积分方法也叫分层蒙管卡 洛积分油。 蒙卡洛方法用于计算定积分时的兮点 (1)蒙铲卡洛方法计算定积分的收敛遠度与积分的数无关。 (2)蒙特卡洛方法求定积分的误仅仅与方和子禅容量n 有美,而与子样中的元所在的癢合空间Ω的组成无美。 (3)被求定积分的维教变化,除了引起抽祥及计算时间有变化 外,对计結果的度没有影响 优点 (1)剎用该方法处理多堂积分问题时,维数商,其优越性 越明显。 (2)利用蒙特卡洛计算定积分问题时曼积分城的限劑較小。只 耍积分间Ω可以用教形式籀迷出其国。不论它的形状 如何复杂,们都可以用该方法给出该积分的佑计篁。因而 象兮卡洛方法是解决友杂几何空间定积分的有效方法
节中介绍的“分层抽样方法”。这种积分方法也叫做分层蒙特卡 洛积分法。 蒙特卡洛方法用于计算定积分时的特点: (1)蒙特卡洛方法计算定积分的收敛速度与积分的重数无关。 (2)蒙特卡洛方法求定积分的误差仅仅与方差V{f }和子样容量 n 有关,而与子样中的元素所在的集合空间Ω的组成无关。 (3)被求定积分的维数变化,除了引起抽样及计算时间有变化 外,对计算结果的精度没有影响。 优点: (1) 利用该方法处理多重积分问题时,维数越高,其优越性 越明显。 (2)利用蒙特卡洛计算定积分问题时受积分域的限制较小。只 要积分空间 可以用数学形式描述出其范围,不论它的形状 如何复杂,我们都可以用该方法给出该积分的估计值。因而 蒙特卡洛方法是解决复杂几何空间定积分的有效方法。 Ω