文档详情

Matlab笔记蒙特卡罗方法018.docx

发布:2017-04-17约3.63千字共8页下载文档
文本预览下载声明
18. 蒙特卡罗方法 (一)概述 一、原理 蒙特卡罗(Monte Carlo)方法,是一种基于“随机数”的计算机随机模拟方法,通过大量随机试验,利用概率统计理论解决问题的一种数值方法。其理论依据是:大数定律、中心极限定理(估计误差)。常用来解决如下问题: 求某个事件的概率,基于“频率的极限是概率”; 2. 可以描述为“随机变量的函数的数学期望”的问题,用随机变量若干个具体观察值的函数的算术平均值代替。一般形式为求积分: X为自变量(随机变量),定义域为[a,b], f(x)为被积函数,为概率密度函数。蒙特卡罗法步骤为: (1) 依据概率分布不断生成N个随机数x, 依次记为x1, …, xN, 并计算f(xi); (2) 用f(xi)的算术平均值近似估计上述积分 类比:“积分”同“求和”,“dx”同“1/N”,“”同“服从分布的随机数”; (3) 停止条件:至足够大的N停止;或者误差小于某值停止。 3. 利用随机数模拟各种分布的随机现象,进而解决实际问题。 二、优缺点 优点:能够比较逼真地描述具有随机性质的事物的特点及物理实验过程;受几何条件限制小;收敛速度与问题的维数无关;误差容易确定。 缺点:收敛速度慢;误差具有概率性;进行模拟的前提是各输入变量是相互独立的。 三、应用 随机模拟实验,随机最优化问题,含有大量不确定因素的复杂决策系统进行风险模拟分析(金融产品定价、期权)。 (二)用蒙特卡罗法求事件概率 一、著名的“三门问题” 源自博弈论的一个数学游戏:参赛者面前有三扇关闭的门,其中一扇门的后面藏有一辆汽车,而两扇门的后面各藏有一只山羊。参赛者从三扇门中随机选取一扇,若选中后面有车的那扇门就可以赢得该汽车。当参赛者选定了一扇门,但尚未开启它的时候,节目主持人会从剩下的两扇门中打开一扇藏有山羊的门,然后问参赛者要不要更换自己的选择,选取另一扇仍然关着的门。 该问题涉及到的问题是:参赛者更换自己的选择是否会增加赢得汽车的概率? 解:这是全概率问题。记结果事件B=“赢得汽车”,造成结果的原因事件有两个: A1=“第一次选到汽车”,A2=“第一次选到山羊” 则P(A1)=1/3, P(A2)=2/3; P(B|A1)=0, P(B|A2)=1. ???用全概率公式, P(B)=P(A1)×P(B|A1)+P(A2)×P(B|A2)=2/3 而参赛者不更换选择,抽中汽车的概率为1/3. 可见,参赛者更换选择可以增加一倍的获奖几率。下面用蒙特卡罗方法来模拟验证上面的理论结果: 将问题“随机数”化,对羊编号为1,2;对汽车编号为3. 先从1,2,3中随机选取一个数,若开始选中1或2,则更换选择后选中3, 即赢得汽车;若开始选中3, 则更换选择后选中1或2,即得不到汽车。 这样的试验重复n次,记录开始选中1或2的次数m(即更换选择后赢得汽车的次数),从而可以确定更换选择后赢得汽车的频率m/n . 由伯努利大数定律,当试验次数n增大时,频率m/n将趋于更换选择后赢得汽车的概率。 代码:先编写SheepAndCar.m函数 function p=SheepAndCar(n) % n可以是正整数,也可以是正整数的向量 for i=1:length(n) x=randsample(3,n(i),true); % 从1,2,3中随机抽取n(i)个数, true表示可以重复 p(i)=sum(x~=3)/n(i); end 再执行代码:(分别模拟10次、100次、……、1000000次) p=SheepAndCar([10,100,1000,10000,100000,1000000]) 运行结果: p = 0.6000 0.7200 0.6910 0.6641 0.6671 0.6666 二、用蒲丰投针法求圆周率π 【蒲丰投针问题】:平面上画有间隔为d的等距平行线,向平面内任意投掷一枚长为h(hd)的针,求针与任一平行线相交的概率。 用Y表示针的中点与最近一条线的距离,用X表示针与此直线间的夹角,则(X, Y)为二维随机变量,其样本空间为平面上的矩形区域: 由于是任意投掷,(X, Y)在Ω上服从均匀分布。 记事件A=“针与平行线相交”,则A所对应的区域为 由几何概率知,事件A的概率为 若h, d已知,代入上式就可求出P(A). 反过来,由P(A)的值也可以求. P(A)可以通过蒙特卡罗方法随机模拟获得:在区域Ω随机均匀投点,落在区域A中的点的频率fA,随着投点次数的增大,就趋于概率P(A). 从而 代码:先编写BuffonMonteCarlo.m函数 function [p0,pm,piv] = BuffonMonteCarlo(d,h,N) %返回p0为理论概率,pm为基于蒙特卡罗法的模拟概率,piv为pi的模拟
显示全部
相似文档