数学建模社区-数学中国

标题: 关于蒙特卡洛方法 [打印本页]

作者: wqjxyf    时间: 2009-7-10 00:14
标题: 关于蒙特卡洛方法
什麽是蒙特卡洛方法
作者: ychexingwuji    时间: 2009-7-10 07:13
我也不懂 你去百度搜一下有很多结果
作者: loveyoddo    时间: 2009-7-10 14:10
(参考百度:http://baike.baidu.com/view/7775.htm)
% {/ B4 L1 q( E" V  i, ^蒙特卡罗(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第二次世界大战中研制原子弹的“曼哈顿计划”。该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩
作者: ykl126    时间: 2009-7-11 16:56
有见解啊,楼上的。
作者: duguyixiaono1    时间: 2009-7-18 22:13
三个月前听说这个算法~~~~
作者: xieyu1232001    时间: 2009-7-18 22:37
基本思想& d6 S6 O) ?" ]# b0 G
1 _. q6 l0 ^* o, s
  * g. P& a  P' P1 b/ ]
  当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。 有一个例子可以使你比较直观地了解蒙特卡罗方法:假设我们要计算一个不规则图形的面积,那么图形的不规则程度和分析性计算(比如,积分)的复杂程度是成正比的。蒙特卡罗方法是怎么计算的呢?假想你有一袋豆子,把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。在这里我们要假定豆子都在一个平面上,相互之间没有重叠。, q+ Q- e% }, Y  m5 B
  / d4 T1 j. X0 X& l! o7 R& C
工作过程
, w) |- t( w0 J) i; `7 z  d" n& l2 @# G: y* Y
  ! @0 p+ O6 W6 N& i$ ^
  在解决实际问题的时候应用蒙特卡罗方法主要有两部分工作:5 t  Q1 d+ E1 g& h( |
  用蒙特卡罗方法模拟某一过程时,需要产生各种概率分布的随机变量。
  s; R: H9 U3 @8 O+ M: w# z* ?/ U  用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。 5 S  ?; E8 V9 H# w1 `" w( j
  ' E1 {3 J* b- f: @8 p8 A& h3 `; I
计算步骤: o5 X) M& K: G# I

4 i" B. e; `+ u( h) |" ^. k  
4 P. J5 g! Z( y3 I  M  使用蒙特卡罗方法进行分子模拟计算是按照以下步骤进行的:% q4 l8 Y0 F& U9 u2 _6 M3 i: P0 Z
  ① 使用随机数发生器产生一个随机的分子构型。 ( F: Q: u0 c/ t& Z
  ②对此分子构型的其中粒子坐标做无规则的改变,产生一个新的分子构型。
9 E* w5 Q6 ~  D' G% W8 F+ u  l/ i  ③计算新的分子构型的能量。 ) D4 g4 b' k! y# Z' \  h
  ④比较新的分子构型于改变前的分子构型的能量变化,判断是否接受该构型。 5 y, ^+ h8 z; Z7 ]3 C! G
  若新的分子构型能量低于原分子构型的能量,则接受新的构型,使用这个构型重复再做下一次迭代。
) P- K* p8 Q! K0 k  若新的分子构型能量高于原分子构型的能量,则计算玻尔兹曼常数,同时产生一个随机数。 4 n: W* Q, b, P
  若这个随机数大于所计算出的玻尔兹曼因子,则放弃这个构型,重新计算。 * |( {% r3 _/ _. w0 f
  若这个随机数小于所计算出的玻尔兹曼因子,则接受这个构型,使用这个构型重复再做下一次迭代。
7 J* G' X4 [/ j0 E+ m" s* `  ⑤如此进行迭代计算,直至最后搜索出低于所给能量条件的分子构型结束。) a% m  a+ k" ?2 U. I
  & U) Z! e; o$ @7 T& ]5 _# a
在数学中的应用, q3 D4 z/ v2 d0 i2 c& ?
$ B% R  \% N  u7 U. u5 }, j/ h
  通常蒙特·卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特·卡罗方法是一种有效的求出数值解的方法。一般蒙特·卡罗方法在数学中最常见的应用就是蒙特·卡罗积分。* t2 ^: |4 N( z7 R3 ?# O0 C
  积分0 n4 Y6 m% Z2 I! T) r0 n+ Q
  非权重蒙特卡罗积分,也称确定性抽样,是对被积函数变量区间进行随机均匀抽样,然后对被抽样点的函数值求平均,从而可以得到函数积分的近似值。此种方法的正确性是基于概率论的中心极限定理。当抽样点数为m时,使用此种方法所得近似解的统计误差恒为,不随积分维数的改变而改变。因此当积分维度较高时,蒙特卡罗方法相对于其他数值解法更优。
作者: xieyu1232001    时间: 2009-7-18 22:37
基本思想
, \/ G  `+ I; f8 e+ ~5 l2 T! b+ l* ^9 v( _+ J6 l% W3 p' X
  
0 @; F% K: P* W5 O  当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。 有一个例子可以使你比较直观地了解蒙特卡罗方法:假设我们要计算一个不规则图形的面积,那么图形的不规则程度和分析性计算(比如,积分)的复杂程度是成正比的。蒙特卡罗方法是怎么计算的呢?假想你有一袋豆子,把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。在这里我们要假定豆子都在一个平面上,相互之间没有重叠。- M. E+ r% z7 N9 y9 T
  ) |/ I/ l, q" `# C2 }3 a
工作过程2 m2 ]% i+ r( ~' B  `# v6 ^- k

% _7 d) J" J/ ]! _" |$ d$ P  
9 d: }! a( @. {* z  在解决实际问题的时候应用蒙特卡罗方法主要有两部分工作:
( {& q$ K& H4 V# v1 j  用蒙特卡罗方法模拟某一过程时,需要产生各种概率分布的随机变量。 8 m. v! ]8 N& n) H
  用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。 5 s1 a$ o6 {& Q+ O2 O0 Q! ], c2 H% j
  
# m  _/ |0 {3 M* H' W计算步骤
* \' L+ f: a2 j8 A9 i
  n& }& S5 j& @% P7 V+ r' W- Z9 W. g  
* i6 Z6 y. G( J$ [3 x  使用蒙特卡罗方法进行分子模拟计算是按照以下步骤进行的:
, u  R3 H0 e0 l  ① 使用随机数发生器产生一个随机的分子构型。 4 z- R; ~4 X( `
  ②对此分子构型的其中粒子坐标做无规则的改变,产生一个新的分子构型。
2 e$ D$ R- K- O8 ^, J* {0 [  ③计算新的分子构型的能量。
6 w6 f/ G/ [# _& N7 L* S  ④比较新的分子构型于改变前的分子构型的能量变化,判断是否接受该构型。
! r0 A! B. h$ D  若新的分子构型能量低于原分子构型的能量,则接受新的构型,使用这个构型重复再做下一次迭代。 6 q- k; U* h3 G7 w7 i, _$ a6 a9 [
  若新的分子构型能量高于原分子构型的能量,则计算玻尔兹曼常数,同时产生一个随机数。
' ^4 p! R& Z8 r" E  若这个随机数大于所计算出的玻尔兹曼因子,则放弃这个构型,重新计算。 , j2 M* l# m+ G, i8 Q
  若这个随机数小于所计算出的玻尔兹曼因子,则接受这个构型,使用这个构型重复再做下一次迭代。 ! M) C( P. ]: C! V. Z" z
  ⑤如此进行迭代计算,直至最后搜索出低于所给能量条件的分子构型结束。
( B5 U. C& U8 }- D, ]. y    Z  t5 f$ N: F
在数学中的应用
" v) E' m5 r; t1 _1 [: u" y
8 C  _8 d9 I4 X5 G2 g  通常蒙特·卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特·卡罗方法是一种有效的求出数值解的方法。一般蒙特·卡罗方法在数学中最常见的应用就是蒙特·卡罗积分。
  G3 |# h7 j! _! K' v5 _  积分; {4 P; L6 ]9 ~  T
  非权重蒙特卡罗积分,也称确定性抽样,是对被积函数变量区间进行随机均匀抽样,然后对被抽样点的函数值求平均,从而可以得到函数积分的近似值。此种方法的正确性是基于概率论的中心极限定理。当抽样点数为m时,使用此种方法所得近似解的统计误差恒为,不随积分维数的改变而改变。因此当积分维度较高时,蒙特卡罗方法相对于其他数值解法更优。
作者: gsj5201314    时间: 2009-7-19 15:12
学习了!
作者: asdfjkwxwx    时间: 2009-7-19 19:02
能不能有个实例演示一下算法?
作者: sunnym    时间: 2009-7-26 10:34
一种随机方法吧 =百度一下
作者: cherry_s1218    时间: 2009-8-29 21:09
模拟仿真的
作者: ryansering    时间: 2009-9-3 20:41
百度之就好了
作者: 飘散云间    时间: 2010-8-30 15:14
一种随机仿真方法~~csdn上有完整代码
作者: yeppy    时间: 2010-9-4 10:17
还是迷糊啊
作者: 星星天铃鸟    时间: 2012-2-2 17:08
ddddddddddddddddddddddddddddddddd
作者: chensyyang    时间: 2013-8-31 17:36
同求例子~~光看文字看不懂啊~~




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5