蒙特卡罗模拟方法报告人:杨林吴颖科目:项目风险管理任课教师:尹志军蒙特卡罗模拟方法一、蒙特卡罗方法概述二、蒙特卡罗方法模型三、蒙特卡罗方法的优缺点及其适用范围四、相关案例分析及软件操作五、问题及相关答案MonteCarlo方法的发展历史早在17世纪,人们就知道用事件发生的“频率”来决定事件的“概率”。从方法特征的角度来说可以一直追溯到18世纪后半叶的蒲丰(Buffon)随机投针试验,即著名的蒲丰问题。1707-17881777年,古稀之年的蒲丰在家中请来好些客人玩投针游戏(针长是线距之半),他事先没有给客人讲与π有关的事。客人们虽然不知道主人的用意,但是都参加了游戏。他们共投针2212次,其中704次相交。蒲丰说,2212/704=3.142,这就是π值。这着实让人们惊喜不已。例.蒲丰氏问题设针投到地面上的位置可以用一组参数(x,θ)来描述,x为针中心的坐标,θ为针与平行线的夹角,如图所示。任意投针,就是意味着x与θ都是任意取的,但x的范围限于[0,a],夹角θ的范围限于[0,π]。在此情况下,针与平行线相交的数学条件是针在平行线间的位置sinlx其他当,0sin,1),(lxxsNiiiNxsNs1),(1aladxddxdfxfxsPl2)()(),(sin0021NsalaPl22一些人进行了实验,其结果列于下表:实验者年份投计次数π的实验值沃尔弗(Wolf)185050003.1596斯密思(Smith)185532043.1553福克斯(Fox)189411203.1419拉查里尼(Lazzarini)190134083.141592920世纪四十年代,由于电子计算机的出现,利用电子计算机可以实现大量的随机抽样的试验,使得用随机试验方法解决实际问题才有了可能。其中作为当时的代表性工作便是在第二次世界大战期间,为解决原子弹研制工作中,裂变物质的中子随机扩散问题,美国数学家冯.诺伊曼(VonNeumann)和乌拉姆(Ulam)等提出蒙特卡罗模拟方法。由于当时工作是保密的,就给这种方法起了一个代号叫蒙特卡罗,即摩纳哥的一个赌城的名字。用赌城的名字作为随机模拟的名称,既反映了该方法的部分内涵,又易记忆,因而很快就得到人们的普遍接受。蒙特卡罗方法的基本思想蒙特卡罗方法又称计算机随机模拟方法。它是以概率统计理论为基础的一种方法。由蒲丰试验可以看出,当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率、数学期望有关的量时,通过某种试验的方法,得出该事件发生的频率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。这就是蒙特卡罗方法的基本思想。因此,可以通俗地说,蒙特卡罗方法是用随机试验的方法计算积分,即将所要计算的积分看作服从某种分布密度函数f(r)的随机变量g(r)的数学期望通过某种试验,得到N个观察值r1,r2,…,rN(用概率语言来说,从分布密度函数f(r)中抽取N个子样r1,r2,…,rN,),将相应的N个随机变量的值g(r1),g(r2),…,g(rN)的算术平均值作为积分的估计值(近似值)。NiiNrgNg1)(10)()(drrfrgg计算机模拟试验过程计算机模拟试验过程,就是将试验过程(如投针问题)化为数学问题,在计算机上实现。模拟程序l=1;d=2;m=0;n=10000fork=1:n;x=unifrnd(0,d/2);y=unifrnd(0,pi);ifx0.5*1*sin(y)m=m+1elseendendp=m/npi_m=1/p①建立概率统计模型②收集模型中风险变量的数据,确定风险因数的分布函数③根据风险分析的精度要求,确定模拟次数⑥样本值⑦统计分析,估计均值,标准差NNN⑤根据随机数在各风险变量的概率分布中随机抽样,代入第一步中建立的数学模型NN个④建立对随机变量的抽样方法,产生随机数。例子某投资项目每年所得盈利额A由投资额P、劳动生产率L、和原料及能源价格Q三个因素。收集P,L,Q数据,确定分布函数模拟次数N;根据分布函数,产生随机数抽取P,L,Q一组随机数,带入模型产生A值统计分析,估计均值,标准差根据历史数据,预测未来。122AaPbLcQd122AaPbLcQd(),(),()fPfLfQNNNN个模型建立的两点说明MonteCarlo方法在求解一个问题是,总是需要根据问题的要求构造一个用于求解的概率统计模型,常见的模型把问题的解化为一个随机变量的某个参数的估计问题。要估计的参数通常设定为的数学期望(亦平均值,即)。按统计学惯例,可用的样本的平均值来估计,即XXX()EXX1,2,(...)nXXX11nkkXXn这时就必须采用主观概率,即由专家做出主观估计得到的概率。另一方面,在对估测目标的资料与数据不足的情况下,不可能得知风险变量的真实分布时,根据当时或以前所收集到的类似信息和历史资料,通过专家分析或利用德尔菲法还是能够比较准确地估计上述各风险因素并用各种概率分布进行描述的。Crystalball软件对各种概率分布进行拟合以选取最合适的分布。收集模型中风险变量的数据,确定风险因数的分布函数抽样次数与结果精度解的均值与方差的计算公式:2x是随机变量X的方差,而称为估计量方差。通常蒙特卡罗模拟中的样本量n很大,由统计学的中心极限定理知渐进正态分布,即:()VarX2121lim()2xtxxXpxedtnxXn21(),()xEXVarXn从而()1xXpn式中α位小概率,1-α称为置信度:是标准正态分布中与α对应的临界值,可有统计分布表查得。()1xXpn/xn由得统计学上称为与置信水平α对应的置信区间://xxXnXn我们就把记做是误差得到人们习惯的结果误差表示:X对于指定的误差ε,模拟所需抽样次数n可由导出:/xn2xn随机数随机数的定义用MonteCarlo方法模拟某过程时,需要产生各种概率分布的随机变量。最简单、最基本、最重要的随机变量是在[0,1]上均匀分布的随机变量。由该分布抽取的简单子样称为随机数序列,其中每一个体称为随机数。随机数属于一种特殊的由已知分布的随机抽样问题。随机数是随机抽样的基本工具。[0,1]上均匀分布(单位均匀分布),其分布密度函数为:分布函数为:特征:独立性、均匀性1,01()0,xfx其他0,0(),011,1xFxxxx随机数的产生方法随机数表物理方法计算机方法随机数表随机数表是由0,1,2,…,9十个数字组成,每个数字以0.1的概率出现,数字之间相互独立。方法:如果要得到n位有效数字的随机数,只需将表中每n个相邻的随机数字合并在一起,且在最高位的前边加上小数点即可。例如:某随机数表第一行数字为7634258910…,要想得到三位有效数字的随机数依次为:0.763,0.425,0.891物理方法基本原理:利用某些物理现象,在计算机上增加些特殊设备,可以在计算机上直接产生随机数。缺点:无法重复实现费用昂贵计算机方法在计算机上产生随机数最实用、最常见的方法是数学方法,即用如下递推公式:产生随机数序列,对于给定的初始值,确定,n=1,2…存在的问题:1,不满足相互独立的要求2,不可避免的出现重复问题所以成为伪随机数问题的解决:1.选取好的递推公式2.不是本质问题1()nnTn1n产生伪随机数的乘同余方法乘同余方法是由Lehmer在1951年提出来的,它的一般形式是:对于任一初始值x1,伪随机数序列由下面递推公式确定:1.(mod)iixaxM12,1,2,ixiMiXa为乘子,为种子(初值);M成为模数。上式表示是被M整除后的余数,叫做与对模M的同余。1ix.iax.iax1x•利用乘同余法产生伪随机数的步骤如下:(1)取种子、乘子、和模数M;(2)由式(1)获得一系列,...;(3)由式(2)得到一系列,…。这就是所要产生的伪随机数的序列1xa2x121x乘同余方法在计算机上的使用为了便于在计算机上使用,通常取:M=2s其中s为计算机中二进制数的最大可能有效位数x1=奇数a=52k+1其中k为使52k+1在计算机上所能容纳的最大整数,即a为计算机上所能容纳的5的最大奇次幂。一般地,s=32时,a=513;s=48,a=515等。伪随机数序列的最大容量λ(M)=2s-2。乘同余方法是使用的最多、最广的方法,在计算机上被广泛地使用。用MATLAB产生随机数语言:连续均匀分布的函数表达式为R=unifrnd(A,B)演示:forn=1:100;k=unifrnd(0,1)end随机抽样及其特点由巳知分布的随机抽样指的是由己知分布的总体中抽取简单子样。随机数序列是由单位均匀分布的总体中抽取的简单子样,属于一种特殊的由已知分布的随机抽样问题。下表所叙述的由任意已知分布中抽取简单子样,是在假设随机数为已知量的前提下,使用严格的数学方法产生的。直接抽样方法对于任意给定的分布函数F(x),直接抽样方法如下:其中,ξ1,ξ2,…,ξN为随机数序列。为方便起见,将上式简化为:若不加特殊说明,今后将总用这种类似的简化形式表示,ξ总表示随机数。NntXntFn,,2,1,inf)(tXtFF)(inf离散型分布的直接抽样方法对于任意离散型分布:其中x1,x2,…为离散型分布函数的跳跃点,P1,P2,…为相应的概率,根据前述直接抽样法,有离散型分布的直接抽样方法如下:该结果表明,为了实现由任意离散型分布的随机抽样,直接抽样方法是非常理想的。xxiiPxF)(I1ii1I1iiPP,=-=当IFxX例1.二项分布的抽样二项分布为离散型分布,其概率函数为:其中,P为概率。对该分布的直接抽样方法如下:nNnnNnPPCPnxP)1()(n0ii1n0iiPP,=-=当nXF例2.掷骰子点数的抽样掷骰子点数X=n的概率为:选取随机数ξ,如则在等概率的情况下,可使用如下更简单的方法:其中[]表示取整数。61)(nXP661nnnXF1]6[FX连续型分布的直接抽样方法对于连续型分布,如果分布函数F(x)的反函数F-1(x)存在,则直接抽样方法是:)(1FXF例3.在[a,b]上均匀分布的抽样在[a,b]上均匀分布的分布函数为:则bxbxaabaxaxxF当当当10)()(abaXF由任意已知分布中抽取简单子样的方法还包括,挑选抽样方法,复合抽样方法,复合挑选抽样方法,替换抽样方法。圆内均匀分布抽样要用到挑选抽样方法,指数分布函数抽样要用到复合抽样方法,正态分布的抽样和β分布的抽样要用到替换抽样方法等。每种方法各有其优缺点和使用范围。常用概率分布的抽样公式abar1216iirlnr,01,1caabacarrbacabbabcrrba1()abar12[()]()fabarfmr112brasmrs分布名称抽样公式注[a,b]均匀分布指数分布正态分布三角分布a,b,c为三角分布的参数分布r,s为函数参数三角分布三角形概率分布是一种应用较广连续型概率分布,它是一种3点估计:特别适用于对那些风险变量缺乏历史统计资料和数据,但可以经过咨询专家意见,得出各参数变量的最乐观值(a),最可能出现的中间值(b)以及最悲观值(m),这3个估计值(a,b,m)构成一个三角形分布。实际上,Matlab软件为我们提供了一种简单快捷的产生各种常用分布随机数的方法。其功能