上善若水ssrs 发表于 2010-2-11 19:14

蒙特卡罗仿真

蒙特卡罗仿真

蒙特卡罗(Monte Carlo)法亦称为随机仿真(random simulation)方法,有时也称作随机抽样(random sampling)技术或统计试验(statistical testing)方法。蒙特卡罗方法是一种与一般数值计算方法有本质区别的计算方法,属于试验数学的一个分支,起源于早期的用几率近似概率的数学思想,它利用随机数学进行统计试验,以求得的统计特征值(如均值、概率等)作为待解问题的数值解。这一方法源于美国在第二次世界大战中研制原子弹的“曼哈顿计划”,该计划的主持人之一数学家冯•诺依曼把他和乌拉姆所从事的与研制原子弹有关的秘密工作——对裂变物质的中子随机扩散进行直接模拟,并以摩纳哥国的世界闻名赌城蒙特卡罗作为秘密代号来称呼。用赌城名比喻随机仿真,风趣又贴切,很快得到广泛接受,此后,人们便把这种计算机随机仿真方法称为蒙特卡罗方法,该方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件发生的“频率”来决定事件的“概率”,而在19世纪人们用投针试验的方法来确定圆周率π。随着现代计算机技术的飞速发展,用计算机仿真随机过程,实现多次仿真试验并统计计算结果,进而可获得所求问题的近似结果。蒙特卡罗方法已经在原子弹工程的科学研究中发挥了极其重要的作用,并正在日益广泛地应用于物理、工程、经济、金融的各个方面。
它的基本思想是:为了求解数学、物理、工程技术以及生产管理等方面的问题,首先建立一个概率模型或随机过程,使它的参数等于问题的解;然后通过对模型或过程的观察或抽样试验来计算所求随机参数的统计特征,最后给出所求解的近似值,解的精度可用估计值的标准误差来表示。蒙特卡罗方法以概率统计理论为其主要理论基础,以随机抽样(随机变量的抽样)为其主要手段。它可以解决各种类型的问题,但总的来说,视其是否涉及随机过程的性态和结果,这些问题可分为两类:第一类是确定性的数学问题,如计算多重积分、解线形代数方程组等;第二类是随机性问题,如原子核物理问题、运筹学中的库存问题、随机服务系统中的排队问题、动物的生态竞争和传染病的蔓延问题等。
例如:想计算一个正方形中的不规则图形的面积如图5-1所示。正方形面积很容易求出
As=s2
正方形的面积是边长s的一个函数,计算不规则图形的面积就比较困难。但很明显,不规则图形是正方形的一部分,因此
Ai=μAs=μs2
其中0≤μ≤1。现在,只要能够求出μ的值,就可直接计算出不规则图形的面积。
______________________________________________-
假设将此图形挂在墙上,然后随机投掷飞镖。那μ的值就可以看作是落入不规则图形内的飞镖数与落入正方形内(含不规则图形)的总飞镖数的比值。实际上,根据大数定理,在随机情况下,如果投掷的飞镖数足够多,落入不规则图形内的飞镖数与落入正方形内的总飞镖数的比值就越接近于μ,这就是蒙特卡罗方法的本质。
实施蒙特卡罗法有三个主要步骤:
(1)构造或描述概率过程。对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程;对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解,即要将不具有随机性质的问题转化为随机性质的问题。
(2)实现从已知概率分布抽样。构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。随机数就是具有这种均匀分布的随机变量,随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生,这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过经过多种统计检验表明,它与真正的随机数或随机数序列具有相似的性质,因此可把它作为真正的随机数来使用。从已知分布随机抽样有多种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。由此可见,随机数是我们实现蒙特卡罗模拟的基本工具。
(3)建立各种估计量。一般来说,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计量。建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。
与其他的数值计算方法相比,蒙特卡罗方法有这样几个优点:
(1)收敛速度与问题维数无关,换句话说,要达到同一精度,用蒙特卡罗方法选取的点数与维数无关,计算时间仅与维数成正比例。但一般数值计算方法,比如在计算多、重积分时,达到同样的误差,点数与维数的幂次成正比例,即计算量要随维数的幂次方而增加。这一特性决定了蒙特卡罗法对**问题的适用性。
(2)受问题的条件**的影响小。
(3)程序结构简单,在计算机上实现蒙特卡罗计算时程序结构清晰简单,便于编制和调试。
(4)对于仿真像粒子输运等物理问题具有其他数值计算方法不能替代的作用。
蒙特卡罗的弱点是收敛速度慢,误差大。这一情况在解粒子输运问题中仍然存在。除此以外,对于大系统蒙特卡罗通常不适用,但其他数值方法往往很适应,能算出较好的结果。因此,已有人将数值方法与蒙特卡罗方法联合起来使用,克服这种局限性,取得了一定的效果。

ytbwd 发表于 2010-2-11 22:50

好难啊。!。。。。。。!!!。。。。。。。。。。

李左 发表于 2010-2-19 18:44

没看懂,还得加油啊。。。。。。。。。。。。。。。。。。。。。

chenbinhit 发表于 2010-2-19 18:49

厉害!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

bluebean 发表于 2010-2-19 20:42

厉害!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

数学者 发表于 2010-3-7 20:02

受用了~

peng3409 发表于 2010-5-29 21:41

学习拉,很常用的一个算法

mvmmvmmvm 发表于 2010-6-11 23:10

有什么好书,大家推荐一下哈····:)

jinruomei 发表于 2010-7-18 14:20

xiexie~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`

loooog12 发表于 2010-7-27 12:27

路过。。。
页: [1] 2 3
查看完整版本: 蒙特卡罗仿真