7 g z8 e. N' N; C& x5 | 4 `' ?' o e2 R; e3 L
在解决实际问题的时候应用蒙特卡罗方法主要有两部分工作:8 K" @. b3 s) Y( ]4 N4 g
用蒙特卡罗方法模拟某一过程时,需要产生各种概率分布的随机变量。 - B l3 s, t; w 用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。 . i E3 f0 |4 n Q* | 3 K$ s- B7 d0 V4 p计算步骤, I" h6 _3 t1 @7 Z; l( m; t
; a' L4 c, n' e m $ w: F- B* g1 C& D" D; X7 y8 D& M 使用蒙特卡罗方法进行分子模拟计算是按照以下步骤进行的:& P+ l" I4 o; g1 [* I
① 使用随机数发生器产生一个随机的分子构型。 + I s- e6 F. g1 [, E8 ~ w* L& h
②对此分子构型的其中粒子坐标做无规则的改变,产生一个新的分子构型。 ' s1 R$ g9 p" h% s ③计算新的分子构型的能量。 5 j; _' _+ X# E
④比较新的分子构型于改变前的分子构型的能量变化,判断是否接受该构型。 $ P& t# K) y7 d1 x0 g
若新的分子构型能量低于原分子构型的能量,则接受新的构型,使用这个构型重复再做下一次迭代。 ' Q; X* [' I6 n# `( B- S3 X' N
若新的分子构型能量高于原分子构型的能量,则计算玻尔兹曼常数,同时产生一个随机数。 # V6 c$ U; L* c0 }
若这个随机数大于所计算出的玻尔兹曼因子,则放弃这个构型,重新计算。 ' Z8 e/ b/ C, O1 d( M 若这个随机数小于所计算出的玻尔兹曼因子,则接受这个构型,使用这个构型重复再做下一次迭代。 & V7 n5 b# f3 E' j
⑤如此进行迭代计算,直至最后搜索出低于所给能量条件的分子构型结束。 ; k# K' y( o9 K2 c& u 2 b+ ^6 K, C) r( a6 X
在数学中的应用* n' E7 w/ B6 @; l4 C7 T# ?/ P3 M) ?! S
2 G* t5 O( B* @$ | 通常蒙特·卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特·卡罗方法是一种有效的求出数值解的方法。一般蒙特·卡罗方法在数学中最常见的应用就是蒙特·卡罗积分。 , x9 p* x" T! n8 S5 G4 g2 v- G 积分 ; j B1 v# I/ J, _8 u 非权重蒙特卡罗积分,也称确定性抽样,是对被积函数变量区间进行随机均匀抽样,然后对被抽样点的函数值求平均,从而可以得到函数积分的近似值。此种方法的正确性是基于概率论的中心极限定理。当抽样点数为m时,使用此种方法所得近似解的统计误差恒为,不随积分维数的改变而改变。因此当积分维度较高时,蒙特卡罗方法相对于其他数值解法更优。作者: xieyu1232001 时间: 2009-7-18 22:37
基本思想3 @$ _$ h. T7 l/ e1 l7 {0 v
1 z8 P. S6 a# H0 v; g( N" a& D
1 Q3 h2 @7 M6 M+ |8 t 当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。 有一个例子可以使你比较直观地了解蒙特卡罗方法:假设我们要计算一个不规则图形的面积,那么图形的不规则程度和分析性计算(比如,积分)的复杂程度是成正比的。蒙特卡罗方法是怎么计算的呢?假想你有一袋豆子,把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。在这里我们要假定豆子都在一个平面上,相互之间没有重叠。 / b8 ^( ~: u9 d ~' [ ) C+ b3 _# t2 L$ B7 i
工作过程 ) A) }# R/ v: g; M% V% E7 p) q6 B7 T* |' Q! u7 {* \5 n( ^- N
# t% o' }2 o- P: ^ 在解决实际问题的时候应用蒙特卡罗方法主要有两部分工作: 2 W1 ] V8 W& J6 t+ A1 h$ H 用蒙特卡罗方法模拟某一过程时,需要产生各种概率分布的随机变量。 * a5 F+ X2 j' Z" G% r 用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。 0 @, K2 n; b6 g- B0 b& r
- g+ W3 A* k' [; n% a& e0 q( k计算步骤 C3 b1 l$ q# b3 N. [, Q- t
' F. V, s8 B( ?8 y 6 c+ b) r, ~- n' Y' C 使用蒙特卡罗方法进行分子模拟计算是按照以下步骤进行的:& E. E# z) h5 i/ Q! R
① 使用随机数发生器产生一个随机的分子构型。 ) @/ j8 B& r6 v( m$ i( n1 D* D% V ②对此分子构型的其中粒子坐标做无规则的改变,产生一个新的分子构型。 4 X Z9 ~# J2 E( \4 v: f$ L
③计算新的分子构型的能量。 ; F0 O: K& M | i# r ④比较新的分子构型于改变前的分子构型的能量变化,判断是否接受该构型。 5 `' E3 l, j' X- s
若新的分子构型能量低于原分子构型的能量,则接受新的构型,使用这个构型重复再做下一次迭代。 4 V, w3 e% B7 E 若新的分子构型能量高于原分子构型的能量,则计算玻尔兹曼常数,同时产生一个随机数。 ! `2 J7 l4 K2 ^1 w4 {7 Q6 E V 若这个随机数大于所计算出的玻尔兹曼因子,则放弃这个构型,重新计算。 0 w* O6 ~. J0 C- w/ A 若这个随机数小于所计算出的玻尔兹曼因子,则接受这个构型,使用这个构型重复再做下一次迭代。 ) k% }8 `8 D, v' a( d& ] ⑤如此进行迭代计算,直至最后搜索出低于所给能量条件的分子构型结束。$ ^8 h0 \; @* K% W( U' v% b