简介
很多地方,仿真 与 蒙特卡洛 不做区分,但实际上他们是有区别的
- 仿真是指利用系统设计独立的U(0,1)分布的均匀数,在计算机上进行可控的模拟实验
- Mento Carlo指的是利用仿真所获得的数据,去估计积分(或求和)的方法
定积分的求解
求$I=\int_0^{+\infty} x^{\alpha-1}e^{-x} dx$
解法
step1:构造问题的解
如果$X\sim f(x)=e^{-x}$,那么, $EX^{\alpha-1}$就是问题的解
step2:计算问题的解
生成需要的随机数,用样本均值$\dfrac{\sum X_i^{\alpha-1}}{n}$来估计$EX^{\alpha-1}$
其原理类似点估计
step3:估计仿真的误差
上面说了,原理类似点估计,那么便可以根据类似的原理,计算需要多少次仿真模拟才能达到给定的误差。
如果进行$n_1$次小规模的仿真模拟后,样本标准差是$s_1$,方差是$s_1^2$
目标是进行$n_2$次仿真模拟,使得标准差达到$s$(注意,这是$\bar X$的标准差)
求解方法:
$Es_1^2 = DX$
$D\bar X_1=\dfrac{1}{n_1}DX$
$D\bar X_2 =\dfrac{1}{n_2}DX$
如果想让$\bar X_2$达到规定的标准差$s$,需要$n_2=\dfrac{s_1^2}{s^2}$
寻找迭代速度更快的模拟法
随机变量并不唯一:
$I=\int_0^{+\infty} x^{\alpha-1}e^{-x} dx=\int_0^{+\infty} x^{\alpha-2} x e^{-x} dx$
如果$X\sim f(x)=x e^{-x}$,那么, $EX^{\alpha-2}$也是问题的解
不同的随机变量,需要的仿真次数是不一样的。
练习题1
用1000次蒙特卡洛计算$\int_{-\infty}^{+\infty} exp(-x^2)\mid cos x\mid dx$, 如果已经产生了1000次模拟的结果,求95%置信区间。
练习题2
单位正方形区域$[0,1]^2$随机选择两个点,D是这两个点的距离
求:$P(D>1.4)$
提示,这个概率值非常小,为了提高计算效率,可以把问题分解:
step1:排除不可能的情况,如果点在某个圆内,不可能发生
step2:在余下的情况下做仿真。
step3:用条件概率解出最后结果。