Monte Carlo(蒙特卡洛方法)

《Monte Carlo(蒙特卡洛方法)》由会员分享,可在线阅读,更多相关《Monte Carlo(蒙特卡洛方法)(86页珍藏版)》请在文档大全上搜索。
1、Monte Carlo Simulation Methods(蒙特卡罗模拟方法蒙特卡罗模拟方法) 一. 概述与思想 二. 随机数的生成. 三. 实例-港口模型 四. 作业引例:引例:电梯系统电梯系统 然而然而这种做法可能是难以接受的这种做法可能是难以接受的,因为在收集统计,因为在收集统计数据时要再三惊扰乘客,并且电梯运行模式的不断变数据时要再三惊扰乘客,并且电梯运行模式的不断变化也会使乘客感到迷惑化也会使乘客感到迷惑 我们可以我们可以提出若干供选择的电梯运行模式提出若干供选择的电梯运行模式,如设定,如设定停偶数层、奇数层的电梯或直达电梯停偶数层、奇数层的电梯或直达电梯理论上,对每种理论上,对每
2、种供选择的模式都能够做若干次试验供选择的模式都能够做若干次试验,以确定哪一种模式,以确定哪一种模式能为那些要到达特定楼层的乘客提供最好的服务。能为那些要到达特定楼层的乘客提供最好的服务。一 概述与思想 所以在某些情况下,所以在某些情况下,对对象的行为进行直接观测对对象的行为进行直接观测或重复试验可能是不可行的或重复试验可能是不可行的。 与此有关的与此有关的另一个问题是大城市交通控制系统可另一个问题是大城市交通控制系统可供选择的运行模式的检验供选择的运行模式的检验,为了做试验而不停地改变,为了做试验而不停地改变单行道的交通方向和配置交通信号将是不现实的单行道的交通方向和配置交通信号将是不现实的
3、在对象的行为不能做分析性的解释,或数据无法直在对象的行为不能做分析性的解释,或数据无法直接收集的情况下,建模者接收集的情况下,建模者可以用某种方式间接地模拟可以用某种方式间接地模拟其行为其行为,试验所研究的供选择的各种方案,以估计它,试验所研究的供选择的各种方案,以估计它们怎样影响对象的行为,然后收集数据来确定哪种方们怎样影响对象的行为,然后收集数据来确定哪种方案是最好的案是最好的 例如,为了得到一艘拟建造的潜艇受到的阻力,例如,为了得到一艘拟建造的潜艇受到的阻力,造一个原型是不可行的,我们可以按比例建一个模型,造一个原型是不可行的,我们可以按比例建一个模型,去模拟实际的潜艇的行为去模拟实际的
4、潜艇的行为 这里将研究另外一种形式的模拟这里将研究另外一种形式的模拟蒙特卡罗蒙特卡罗(MonteCarlo)模拟,模拟,一般是借助于计算机完成的一般是借助于计算机完成的 蒙特卡洛蒙特卡洛(Monte Carlo)方法,或称计算机随机方法,或称计算机随机模拟方法,是一种基于模拟方法,是一种基于“随机数随机数”的计算方法。的计算方法。 这一方法源于美国在第二次世界大战中研制原这一方法源于美国在第二次世界大战中研制原子弹的子弹的“曼哈顿计划曼哈顿计划”。该计划的主持人之一、。该计划的主持人之一、数学家冯数学家冯诺伊曼用驰名世界的赌城诺伊曼用驰名世界的赌城摩纳哥的摩纳哥的Monte Carlo来命名这
5、种方法,为它蒙上了一层来命名这种方法,为它蒙上了一层神秘色彩。神秘色彩。从Buffon(蒲丰)投针问题谈起 220, /2 0, sin,:sin.llaXAX随机投针可以理解成针的中心点与最近的平行线的距离X是均匀地分布在区间 上的r.v.,针与平行线的夹角 是均匀地分布在区间 上的r.v.,且X与 相互独立,于是针与平行线相交的充要条件为 即相交 2sin0022(sin)2lllpP Xdxdaa 于是有:2lap试验者时间(年)针长投针次数相交次数的估计值Wolf18500.80500025323.15956Smith18550.60320412183.15665Fox18840.75
6、10304893.15951Lazzarini19250.83340818083.141592921 1 确定行为的模拟确定行为的模拟例:曲线下的面积例:曲线下的面积 本节以曲线下的面本节以曲线下的面积为例说明蒙特卡罗积为例说明蒙特卡罗模拟在确定行为建模模拟在确定行为建模中的应用中的应用 下面的算法给出了用蒙特卡罗方法求曲线下面积下面的算法给出了用蒙特卡罗方法求曲线下面积的计算机模拟的计算格式的计算机模拟的计算格式 在给定区间上曲线在给定区间上曲线y=cosy=cosx下面积的真值是下面积的真值是2 2注意到即使对于注意到即使对于产生的相当多的点数,产生的相当多的点数,误差也是可观的误差也是可
7、观的对单变量函数,一般说对单变量函数,一般说来,来,蒙特卡罗方法无法与在数值分析中学到的积分方法相比蒙特卡罗方法无法与在数值分析中学到的积分方法相比,没没有误差界以及难以求出函数的上界有误差界以及难以求出函数的上界M M也是它的缺点也是它的缺点然而,蒙特卡然而,蒙特卡罗方法可以推广到多变量函数,在那里它变得更加实用罗方法可以推广到多变量函数,在那里它变得更加实用Monte Carlo数值积分的优点与一般的数值积分方法比较,Monte Carlo方法具有以下优点:1. Monte Carlo一般的数值方法很难推广到高维积分的情形,而方法很容易推广到高维情形2/1/22. ()() dO nO n
8、一般的数值积分方法的收敛阶为 ,而由中心极限定理可以保证 Monte Carlo 方法的收敛阶为 。此收敛阶与维数无关,且在高维时明显优于一般的数值方法。 蒙特卡罗方法是随机的,为使预测值与真值之差蒙特卡罗方法是随机的,为使预测值与真值之差变小变小需要做大量的试验需要做大量的试验在最终的估计中,在最终的估计中,要讨论要讨论保证预先给定的置信水平所要求的试验次数,保证预先给定的置信水平所要求的试验次数,需要需要统计学的背景知识,统计学的背景知识,然而作为一般准则,然而作为一般准则,结果的精结果的精度提高一倍度提高一倍( (即误差减少一半即误差减少一半) ),试验次数大约需要,试验次数大约需要增至
9、增至4 4倍倍做任何的蒙特卡罗模拟,都要用到做任何的蒙特卡罗模拟,都要用到随机数随机数2.2.同样抛同样抛100100次的结果也不近相同。次的结果也不近相同。蒙特卡罗模拟是一种随机模型蒙特卡罗模拟是一种随机模型1.1.抛抛100100次硬币得到次硬币得到5151个正面,并且接下来的个正面,并且接下来的1010次次( (即使不太可能刚巧即使不太可能刚巧1010次次) )全为正面的情况是可全为正面的情况是可能出现的,这样,用能出现的,这样,用110110次的结果进行估计实际次的结果进行估计实际上比用上比用100100次要差次要差 要记住,要记住,对于根据模拟结果的预测寄予太多的对于根据模拟结果的预
10、测寄予太多的信任是有危险的,信任是有危险的,特别是在模拟中包含的假设没有特别是在模拟中包含的假设没有清楚表明的时候清楚表明的时候还有,由于用了大量的数据和庞还有,由于用了大量的数据和庞大的计算,再加上非专业人员理解模拟模型和计算大的计算,再加上非专业人员理解模拟模型和计算机输出相对容易,所以常会导致对模拟结果的过分机输出相对容易,所以常会导致对模拟结果的过分相信相信二.随机数的生成1.蒙特卡罗模拟的关键是生成优良的随机数。关键是生成优良的随机数。2.在计算机实现中,我们是通过确定性的算法生成 随机数,所以这样生成的序列在本质上不是随机 的,只是很好的模仿了随机数的性质(如可以通过 统计检验)。
11、我们通常称之为伪随机数(pseudo-random numbers)。3.在模拟中,我们需要产生各种概率分布的随机数,而大多数概率分布的随机数产生均基于均匀分布均匀分布U(0,1)U(0,1)的随机数。的随机数。U(0,1)随机数的生成乘同余法:1101 mod , , /iiiiixaxmuaxxmxm其中 均为整数, 可以任意选取。 称为种子,a 是乘因子,m是模数0 x一个简单的例子1i+116 mod11, u/11 6,11iiixxxam()0 1 ,x 1,6,3,7,9,10,5,8,4当时 得到序列:,1,6,3.,2.003,1 ,1,3,9.3,2,2,1,3,9,5,4