
的值
的值。这个例子很好的体现了Monte Carlo(MC)方法的精神:利用随机分布的特性,大数次抽样得到准确的估计。换句话说,就是我猜,我猜地又多又均匀就基本上成功了!
二、估计定积分的值
,只要抽样足够多,就可以估计出在这个区间内
的平均值,记做
这样一来,曲线下面积就等效成一个以这个平均值为高的矩形面积:
三、重要性抽样(Importance sampling)
还是有一些重要的区域的,为了使采样更有效率,一般我们可以采用重要性抽样来计算积分:
是任意满足正定
且归一化
条件的概率分布,且
是从这个分布采样的随机数。重要性抽样其实仅仅就是做了个恒等变形,把原来要均匀采样的概率分布(其实就是
)替换成任意概率分布,并把要平均的函数除以这个分布。重要性抽样是统计和物理中常见的方法,可以很好的对重点区域采样而快速估计积分。
从分布
中采样的话,(这里为了符号简便,现在暂时将第
次采样记做带括号的上标
)
的系综平均
是正则系综分布函数,
是正则配分函数。
四、Metropolis Monte Carlo算法 (Markov Chain Monte Carlo, MCMC)
采样?这里介绍Metropolis MC算法,也叫Metropolis-Hastings算法,它类似于随机瞎走(Random walk)的方式产生一列数,这些数的总体分布服从
。这里,我们以平衡态统计力学中的最常见的Boltzmann分布为例说明。
,它的概率应该是
,这里
是这个构型的能量。我们想要产生服从玻尔兹曼分布的一系列
,可以设想如果我基于原来的一个构型
怎么产生下一个构型
呢?
的概率
不应该随时间改变,于是有
表示基于
随机产生
的转移概率(Transition probability),求和是对于所有可能的其他构型
。从上面关系可以得到只要满足下面细致平衡(detailed balance)条件,就可以产生出服从玻尔兹曼分布的序列:
-
从起始构型
,计算能量
;
-
随机移动一些构型坐标得到一个trial构型
,并计算该构型的能量
;
-
决定是否接受这个移动:
(1)如果
,那么100%接受这个移动,正式的下一步构型就是
了;
(2)如果
,那么产生一个0到1之间的随机数R, 并跟转移概率
比较,如果
那就接受这个移动
,否则就拒绝这个移动
;
-
回到第二步,直到累积N个构型。
被称为马尔科夫链(Markov Chain),因为产生的新构型只跟当前构型有关,对前面的构型没有任何的记忆效应,所以这个方法又叫马尔科夫链蒙特卡洛(MCMC)。而且,从任何初始构型出发,最终都会达到平衡而且服从就是玻尔兹曼分布,即通过配比转移概率
达到对某构型的采样概率为
且不随“时间”改变。【注意:MC里序列是没有物理上时间先后关系的,所有说MC“时间序列”都是指随机产生的顺序。】

