背景
随机模拟也可以叫做蒙特卡罗模拟(Monte Carlo Simulation)。这个方法的发展始于20世纪40年代,和原子 弹制造的曼哈顿计划密切相关,当时的几个大牛,包括乌拉姆、冯.诺依曼、费米、费曼、Nicholas Metropolis, 在美国洛斯阿拉莫斯国家实验室研究裂变物质的中子连锁反应的时候,开始使用统计模拟的方法 并在最早的计算机上进行编程实现。
均匀分布
随机模拟中有一个重要的问题就是给定一个概率分布p(x),我们如何在计算机中生成它的样本。一般而言均匀分 布 Uniform(0,1)的样本是相对容易生成的。 通过线性同余发生器可以生成伪随机数,我们用确定性算法生成 [0,1]之间的伪随机数序列后,这些序列的各种统计指标和均匀分布 Uniform(0,1) 的理论计算结果非常接近。 这样的伪随机序列就有比较好的统计性质,可以被当成真实的随机数使用。例如可以如下方式生成:
xn+1=(axn+c) mod m
正太分布
利用获得的均匀分布样本,Box-Muller变换可以生成满足正太分布的样本。
Box-Muller 变换
如果随机变量 U1,U2 独立且 U1,U2∼Uniform(0,1) ,
Z0=−2lnU1−−−−−−−√cos(2πU2)
Z1=−2lnU