在数学 中,蒙特卡罗积分 (Monte Carlo integration)是一种使用随机数 进行数值积分 的技术。它是一种特殊的蒙特卡罗方法 ,可对定积分 进行数值计算。其他算法通常在规则网格上评估被积函数,而[ 1] 蒙特卡洛随机选择被积函数评估的点。 [ 2] 该方法对于高维积分特别有用。 [ 3]
蒙特卡罗积分示意图。在该示例中,D 是和正方形内切的圆,域E则是正方形。因为正方形的面积 (值是4) 很容易计算,所以圆的面积 (π*1.02 ) 可以通过圆内的点 (40个红点) 与总点数 (50个点) 的比率(0.8) 来估计,得出圆面积的近似值 4*0.8 = 3.2 ≈ π。
进行蒙特卡罗积分的方法有多种,例如均匀采样 、分层采样 、重要性采样 、顺序蒙特卡罗 (也称为粒子滤波器)和平均场粒子方法。
在数值积分中,梯形法则 等方法使用确定性方法 。另一方面,蒙特卡罗积分采用非确定性方法:每种实现都提供不同的结果。在蒙特卡罗中,最终结果是带有各自误差线的正确值的近似值,并且正确值很可能在这些误差线内。
考虑函数
I
=
∫
Ω
f
(
x
¯
)
d
x
¯
{\displaystyle I=\int _{\Omega }f({\overline {\mathbf {x} }})\,d{\overline {\mathbf {x} }}}
其中 Ω 是
R
m
{\displaystyle \mathbb {R} ^{m}}
的一个子集,它的体积是:
V
=
∫
Ω
d
x
¯
{\displaystyle V=\int _{\Omega }d{\overline {\mathbf {x} }}}
朴素的蒙特卡罗方法是在Ω上均匀采样点: [ 4] 给定N 个均匀样本,
x
¯
1
,
⋯
,
x
¯
N
∈
Ω
,
{\displaystyle {\overline {\mathbf {x} }}_{1},\cdots ,{\overline {\mathbf {x} }}_{N}\in \Omega ,}
I 可以被近似为:
I
≈
Q
N
≡
V
1
N
∑
i
=
1
N
f
(
x
¯
i
)
=
V
⟨
f
⟩
.
{\displaystyle I\approx Q_{N}\equiv V{\frac {1}{N}}\sum _{i=1}^{N}f({\overline {\mathbf {x} }}_{i})=V\langle f\rangle .}
这是因为大数定律 确保以下结论成立:
lim
N
→
∞
Q
N
=
I
.
{\displaystyle \lim _{N\to \infty }Q_{N}=I.}
我们使用I 给出QN 的I 估计, QN 的误差线(error bars)可以使用方差的无偏估计 通过样本方差 来估计。
V
a
r
(
f
)
≡
σ
N
2
=
1
N
−
1
∑
i
=
1
N
(
f
(
x
¯
i
)
−
⟨
f
⟩
)
2
.
{\displaystyle \mathrm {Var} (f)\equiv \sigma _{N}^{2}={\frac {1}{N-1}}\sum _{i=1}^{N}\left(f({\overline {\mathbf {x} }}_{i})-\langle f\rangle \right)^{2}.}
由此可得:
V
a
r
(
Q
N
)
=
V
2
N
2
∑
i
=
1
N
V
a
r
(
f
)
=
V
2
V
a
r
(
f
)
N
=
V
2
σ
N
2
N
.
{\displaystyle \mathrm {Var} (Q_{N})={\frac {V^{2}}{N^{2}}}\sum _{i=1}^{N}\mathrm {Var} (f)=V^{2}{\frac {\mathrm {Var} (f)}{N}}=V^{2}{\frac {\sigma _{N}^{2}}{N}}.}
只要以下序列
{
σ
1
2
,
σ
2
2
,
σ
3
2
,
…
}
{\displaystyle \left\{\sigma _{1}^{2},\sigma _{2}^{2},\sigma _{3}^{2},\ldots \right\}}
是有界的,该方差就会逐渐减小到零,即 1/N 。 那么,QN 的误差估计就是:
δ
Q
N
≈
V
a
r
(
Q
N
)
=
V
σ
N
N
,
{\displaystyle \delta Q_{N}\approx {\sqrt {\mathrm {Var} (Q_{N})}}=V{\frac {\sigma _{N}}{\sqrt {N}}},}
我们看到,QN 的误差是自身的
1
N
{\displaystyle {\tfrac {1}{\sqrt {N}}}}
,这是平均值的标准误差 乘以
V
{\displaystyle V}
。该结果不依赖于积分的维数,这是蒙特卡洛积分相对于大多数指数依赖维数的确定性方法所具有的优势。 值得注意的是,与确定性方法不同,误差的估计不是严格的误差界限;随机抽样可能无法揭示被积函数的所有重要特征,从而导致误差的低估。
虽然朴素蒙特卡罗适用于简单的示例,但对确定性算法的改进只能通过使用特定于问题的采样分布的算法来实现。通过适当的样本分布,可以利用以下事实:几乎所有高维被积函数都是非常局部化的,并且只有小子空间对积分有显着贡献。 [ 5] 蒙特卡罗文献的很大一部分致力于开发改进误差估计的策略。特别是,分层采样(将区域划分为子域)和重要性采样(从非均匀分布中采样)是此类技术的两个示例。
请记住,以下的程序需要真正的随机数生成器。
int i , throws = 99999 , insideCircle = 0 ;
double randX , randY , pi ;
srand ( time ( NULL ));
for ( i = 0 ; i < throws ; ++ i ) {
randX = rand () / ( double ) RAND_MAX ;
randY = rand () / ( double ) RAND_MAX ;
if ( randX * randX + randY * randY < 1 ) ++ insideCircle ;
}
pi = 4.0 * insideCircle / throws ;
from numpy import random
import numpy as np
throws = 2000
inside_circle = 0
i = 0
radius = 1
while i < throws :
# Choose random X and Y centered around 0,0
x = random . uniform ( - radius , radius )
y = random . uniform ( - radius , radius )
# If the point is inside circle, increase variable
if x ** 2 + y ** 2 <= radius ** 2 :
inside_circle += 1
i += 1
# Calculate area and print; should be closer to Pi with increasing number of throws
area = ((( 2 * radius ) ** 2 ) * inside_circle ) / throws
print ( area )
Caflisch, R. E. Monte Carlo and quasi-Monte Carlo methods. Acta Numerica . 1998, 7 : 1–49. Bibcode:1998AcNum...7....1C . S2CID 5708790 . doi:10.1017/S0962492900002804 .
Weinzierl, S. Introduction to Monte Carlo methods. 2000. arXiv:hep-ph/0006269 .
Press, W. H.; Farrar, G. R. Recursive Stratified Sampling for Multidimensional Monte Carlo Integration. Computers in Physics. 1990, 4 (2): 190. Bibcode:1990ComPh...4..190P . doi:10.1063/1.4822899 .
Lepage, G. P. A New Algorithm for Adaptive Multidimensional Integration. Journal of Computational Physics . 1978, 27 (2): 192–203. Bibcode:1978JCoPh..27..192L . doi:10.1016/0021-9991(78)90004-9 .
Lepage, G. P. VEGAS: An Adaptive Multi-dimensional Integration Program. Cornell Preprint CLNS 80-447. 1980.
Hammersley, J. M.; Handscomb, D. C. Monte Carlo Methods . Methuen. 1964. ISBN 978-0-416-52340-9 .
Kroese, D. P. ; Taimre, T.; Botev, Z. I. Handbook of Monte Carlo Methods. John Wiley & Sons. 2011.
Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP. Numerical Recipes: The Art of Scientific Computing 3rd. New York: Cambridge University Press. 2007. ISBN 978-0-521-88068-8 .
MacKay, David . chapter 4.4 Typicality & chapter 29.1 (PDF) . Information Theory, Inference and Learning Algorithms . Cambridge University Press. 2003 [2024-03-15 ] . ISBN 978-0-521-64298-9 . MR 2012999 . (原始内容存档 于2016-02-17).
Newman, MEJ; Barkema, GT. Monte Carlo Methods in Statistical Physics . Clarendon Press. 1999.
Robert, CP; Casella, G. Monte Carlo Statistical Methods 2nd. Springer. 2004. ISBN 978-1-4419-1939-7 .