第七章 蒙特卡罗方法在积分计算中的应用
1,蒙特卡罗方法求积分
2,重要抽样
3,俄国轮盘赌和分裂
4,半解析方法
5,系统抽样
6,分层抽样
第七章 蒙特卡罗方法在积分计算中的应用
计算多重积分是蒙特卡罗方法的重要应用
领域之一。本章着重介绍计算定积分的蒙特卡
罗方法的各种基本技巧,而这些技巧在粒子输
运问题中也是适用的。
1,蒙特卡罗方法求积分
蒙特卡罗方法求积分的一般规则如下:任何一个
积分, 都可看作某个随机变量的期望值, 因此, 可以
用这个随机变量的平均值来近似它 。
设欲求积分
其中, P= P(x1,x2,…, xs) 表示 s 维空间的点, Vs表
示积分区域 。 取 Vs上任一联合概率密度函数 f (P),令

即 θ是随机变量 g(P) 的数学期望, P的分布密度函数为
f (P) 。 现从 f (P) 中抽取随机向量 P 的 N 个样本:
Pi,i= 1,2,…, N,则
就是 θ的近似估计 。
?? sV dG PP )(?
)()()( PPP fGg ?
? ?)()()( PPPP gEdfg
sV
?? ??
?
?
?
N
i
iN gNg
1
)(1? P
2,重要抽样
1) 偏倚抽样和权重因子
取 Vs上任一联合概率密度函数 f1(P),令
则有
现从 f1(P) 中抽样 N 个点,Pi,i= 1,2,…, N,则
就是 θ的又一个无偏估计 。
)()()(
)()()(
1
1
PPP
PPP
ffW
Wgg
?
??
? ?)()()( 111 PPPP gEdfg
sV
?? ??
?
?
?
N
i
iN gNg
1
11 )(
1? P
2) 重要抽样和零方差技巧
要使 最小, 就是使泛函 I[f1] 极小 。
利用变分原理, 可以得到最优的 f1(P) 为
? ?
? ? 212
1
22
2
1
2
1
22
1
2
)(
)()(
)()()(
1
??
???
????
????
?
?
fId
f
fg
dfggE
s
s
V
Vg
P
P
PP
PPPP
2
1g?
?
?
sV
dfg
fgf
PPP
PPP
)(|)(|
)(|)(|)(
1
特别地, 当 g(P)≥0 时, 有
这时
即 g1的方差为零 。 实际上, 这时有
不管那种情况, 我们称从最优分布 fl(P)的抽样为重要
抽样, 称函数 | g(P) | 为重要函数 。
021 ?g?
?
)()(
)()(
)()()(
1
PP
PPP
PPP fg
dfg
fgf
sV
??
?
??? ?
sV
dfgg PPPP )()()( 111
3,俄国轮盘赌和分裂
1) 分裂
设整数 n≥1,令

于是计算 θ的问题, 可化为计算 n 个 θi 的和来得到, 而
每个 gi(P) 为原来 θ的估计 g(P) 的 1/ n, 这就是分裂技
巧 。
??
?
sV
ii
i
dfg
ngg
PPP
PP
)()(
)()(
?
??
?
??
n
i
iV
s
dfg
1
)()( ?? PPP
2) 俄国轮盘赌
令 0 < q< 1,

于是 θ变为一个两点分布的随机变量 ζ的期望值,
ζ的特性为,
这样就可以通过模拟这个概率模型来得到 θ,这就是
俄国轮盘赌 。
?? sVq dfgq PPP )()(1?
0)1( ????? qq q??
qP
qP q
???
??
1)0(
)(
?
??
3) 重要区域和不重要区域
我们往往称对积分 θ贡献大的积分区域为重要区
域, 或感兴趣的区域;称对积分 θ贡献小的区域为不
重要区域, 或不感兴趣的区域 。
考虑二重积分
令 R是 V2上 x 的积分区域, 表为 R= R1+R2,其中 R1是
重要区域, R2是不重要区域, 两者互不相交 。 又命 Q
为 V2上相应于 y 的积分区域 。 则
???
2
),(),(
V
d x d yyxfyxg?
? ? ???????
??
R Q
dxxfdyxyfyxg
xfxyfyxf
)()(),(
)()(),(
12
12
?
通常蒙特卡罗方法, 由 f (x,y)抽样 (x,y)的步骤是:
从 fl(x) 中抽取 xi,再由 f2(y|xi) 中抽样确定 yi,然后用
作为 θ的一个无偏估计 。
现在, 改变抽样方案如下,
(1) 当 x∈ R1时,定义一个整数 n(xi)≥1,对一个 xi,抽取
n(xi)个 yij,j= 1,2,…, n(xi)。以平均值
代替上述 θ估计式中的 g(yi,xi) 。
?
?
?
N
i
iiN yxgNg
1
),(1?
?
?
?
)(
1
1 ),()(
1 ixn
j
iji
i
i yxgxng
(2) 当 x∈ R2时,定义一个函数 q(xi),0< q(xi) < 1,
以抽样值
代替上述 θ估计式中的 g(yi,xi) 。这里 ξ是随机数。
显然,这种抽样估计技巧,就是对 x∈ R1时,利
用分裂技巧,而对 x∈ R2时,利用俄国轮盘赌,而使
估计的期望值不变。由于对重要区域多抽样,对不重
要区域少观察,因此能使估计的有效性增高。
??
?
?
??
)(0
)()(),(
2
i
iiii
i xq
xqxqyxgg
?
?
4,半解析(数值)方法
考虑二重积分

则 θx为 θ的无偏估计 。
? ?
??
?
?
??
?
??
?
R Q
V
dxxfdyxyfyxg
d x d yyxfyxg
)()(),(
),(),(
12
2
?
?? Qx dyxyfyxg )(),( 2?
θx 的方差为
而由 f (x,y)抽样 (x,y),用 g (x,y)作为 θ的估计, 其方差

? ?? dxxfx )()( 122 ???
2
1
2
1
2
2
2
22
)()()(
),())(),((2
),()),((
),()(
),()),((
2
2
2
2
????
???
?
??
??
????
???
??
??
??
??
??
??
??
??
dxxfdxxf
d x d yyxfyxg
d x d yyxfyxg
d x d yyxf
d x d yyxfyxg
xx
V
xx
V
x
V
x
V
g
5,系统抽样
我们知道, 由 f (x,y)抽样 (x,y)的步骤是,
从 fl(x) 中抽取 xi,
再由 f2(y|xi) 中抽样确定 yi,
现在改变 xi 的抽样方法如下,
i
y
i
i dyxyf
22 )( ??? ??
i
x i dxxf
11 )( ??? ??
Nidxxfix ?? ?? )(1
yi 的抽样方法不变 。
其方差为
与通常蒙特卡罗方法相比, 方差减少了约
? ? dxxfN x )()(1 12??
?? dxxfN xg N )(1 122? ??
?
?
?
N
i
iiN yxgNg
1
),(1?
6,分层抽样
考虑积分
在 ( 0,1) 间插入 J- 1个点
0= α0< α1< … < αJ-1< αJ= 1

?
?
?
?
?
?
?
? ??
?
?
?
j
j
j
j
dxxfxg
xpxf
xf
dxxfp
jj
jjj
j
j
?
?
?
?
?
??
1
1
)()(
0
)(
)(
)(
1
其它
?? 10 )()( dxxfxg?
则有
现在, 用蒙特卡罗方法计算 θj, 对每个 θj 利用 fj(x)中
的 nj 个样本 xij, 那么有
? ?
? ? ?
?
?
?
???
?
?
J
j
n
i
ij
j
j
c
N
j
xgnpg
1 1
)(1?
?
?
?
J
j
jjp
1
??