您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 从概率分布函数的抽样
MonteCarlo模拟第三章从概率分布函数的抽样(SamplingfromProbabilityDistributionFunctions)3.5舍选抽样法(acceptance-rejectionsampling)3.5舍选抽样法(acceptance-rejectionsampling)直接抽样法的困难:•许多随机变量的累积分布函数无法用解析函数给出;•有些随机变量的累积分布函数的反函数不存在或难以求出;•即使反函数存在,但计算困难舍选抽样法(vonNeumann):抽取随机变量x的一个随机序列xi,i=1,2,…,按一定的舍选规则从中选出一个子序列,使其满足给定的概率分布.MonteCarlo模拟第三章从概率分布函数的抽样(SamplingfromProbabilityDistributionFunctions)3.5舍选抽样法(acceptance-rejectionsampling)1.简单舍选抽样法2.改进的舍选抽样法3.典型的例子1.简单舍选抽样法舍选法抽样步骤:1.产生[a,b]区间内均匀分布的随机数x:x=(b-a)r1+a,r1U[0,1];2.产生[0,c]区间内均匀分布的随机数y:y=cr2,r2U[0,1];3.当yf(x)时,接受x为所需的随机数,否则,返回到第一步重新抽取一对(x,y).VonNeumannrejectionmethodorHit-and-missmethod设随机变量x的取值区间为x[a,b],其概率密度函数f(x)有界,即cbxaxf|)(max抽取r1,r2U[0,1]x=a+(b-a)r1y=cr2yf(x)X=x1.简单舍选抽样法abxf(x)c),(111yxt),(222yxt几何解释:•在二维图上,随机选取位于矩形abef内的点[x,y];•选取位于曲线f(x)下的那些点,则这些点将服从概率密度为f(x)的分布ef1.简单舍选抽样法证明:按舍选抽样法抽出的随机数d的概率:abxf(x)c),(111yxt),(222yxtefx和y的概率密度函数分别为联合概率密度函数为cygabxgss1)(,1)(cabygxgyxgss)(1)()(),()()(),(),())(|()(0)(0dFdxxfdxdyyxgdxdyyxgxfydxpdabaxfdaxf即d的概率函数为f(x)d1.简单舍选抽样法抽样效率:对舍选抽样法:欲产生m个随机变量x的值需产生n对(x,y),显然,mn如果选出某特定分布的一个随机数平均地需要n个随机数r1U[0,1],则抽样效率定义为cabcabdxxfnmEba)(21)(2)(2abxf(x)c),(111yxt),(222yxtefdnE1MonteCarlo模拟第三章从概率分布函数的抽样(SamplingfromProbabilityDistributionFunctions)3.5舍选抽样法(acceptance-rejectionsampling)1.简单舍选抽样法2.改进的舍选抽样法3.典型的例子2.改进的舍选抽样法改进的舍选抽样法简单舍选抽样法的问题:如果f(x)曲线下的面积占矩形面积的比例很小,则抽样效率很低,这是因为随机数x和y是在区间[a,b]和[0,c]内均匀分布,所产生的大部分投点不会落在f(x)曲线下xcf(x)改进方法:构造一个新的概率密度函数g(x),使它的形状接近f(x),且有式中Cg为常数,而g(x)的抽样相对比较容易。],[),()(baxxfxgCgCgg(x)2.改进的舍选抽样法抽样方法:1.产生两个随机数•产生分布为g(x)的随机数x,x[a,b];•产生[0,Cgg(x)]区间上均匀分布的随机数y,y=Cgg(x),U[0,1].2.接收或舍弃取样值x.•如果yf(x),舍弃,返回到1,重复上述过程;•否则,接受;2.改进的舍选抽样法几何解释:•在二维图上,随机选取位于曲线Cgg(x)下的点[x,y];•选取位于曲线f(x)下的那些点,则这些点将服从概率密度为f(x)的分布xcf(x)Cgg(x)2.改进的舍选抽样法证明:按舍选抽样法抽出的随机数d的概率:dx和y的概率密度函数分别为联合概率密度函数为)(1)(),()(xgCygxgxggssggssCxgCxgygxgyxg1)()()()(),()()(),(),())(|()(0)(0dFdxxfdxdyyxgdxdyyxgxfydxpdabaxfdaxf即d的概率函数为f(x)xcf(x)Cgg(x)2.改进的舍选抽样法抽样效率:gbagbaCdxxgCdxxfE1)()(xcf(x)Cgg(x)常数Cg的选取•常数Cg应尽可能地小,因为抽样效率与Cg成反比;•Cg=max{f(x)/g(x)},x[a,b]MonteCarlo模拟第三章从概率分布函数的抽样(SamplingfromProbabilityDistributionFunctions)3.5舍选抽样法(acceptance-rejectionsampling)1.简单舍选抽样法2.改进的舍选抽样法3.典型的例子3.典型的例子2/221)(xexf2111)(xxg52.12)1(2max)(/)(max2/22eexxgxfCxg)arctan(arctanarctan21)()(11arctan21)(/)()(2axaxdxgxFxadxxgxgxgxagaa例1:标准正态分布的抽样,x[-a,a]无法用直接抽样法,累积分布函数无解析表达式Breit-wignerorCauchy分布3.典型的例子)arctan(arctan2tan]1,0[aaxUQuUxxgCQg]1,0[1152.1)(2由g(x)抽取x直接抽样法抽取u计算f(x),如果u=f(x),接受x3.典型的例子floatgaussian_reject(doublea){constfloatc=1.52;while(true){floateta=randac();floatx=tan(eta*2.0*atan(a)+atan(-a));floatq=c*1/3.1415926*1.0/(1+x*x);floatksi=randac();floatu=ksi*q;floatp=1/sqrt(2*3.1415926)*exp(-x*x/2.0);if(u=p)break;}returnx;}3.典型的例子voidtest(){SetSeed(9,11);c1=newTCanvas(c1,HistogramDrawingOptions,200,10,700,900);c1-Divide(1,2);TH1F*h1=newTH1F(h1,h1,100,-5.0,5.0);for(inti=0;i5000;i++){doublex=gaussian_reject(5.0);h1-Fill(x);}c1-cd(2);h1-Draw();}3.典型的例子3.典型的例子3.典型的例子2cos2sin2sin2sin2coscos22SCAB/222222222222sin,cos2sin,2cosBAABSBABACBABBAA例2:利用舍选法产生随机数C=cos,S=sin,其中为[0,2]区间内均匀分布的随机数方法1:先产生[0,2]间均匀分布的随机数:=2r,rU[0,1],然后直接计算C和S因需要计算三角函数,故此方法运算速度慢方法2:利用舍选法可避免三角函数运算令A和B为单位圆内直角三角形的两个边,则有3.典型的例子因此,只要产生单位圆内的随机坐标A和B,就可用代数运算求出C和S,算法为1.产生两个[0,1]区间上均匀分布的随机数u1和u2;2.令v1=2u1-1,v2=u2,则v1U[-1,1],v2U[0,1];3.计算r2=v12+v22,如果r21,转到1,重新产生;4.令A=v1,B=v2,计算C和S
本文标题:从概率分布函数的抽样
链接地址:https://www.777doc.com/doc-417736 .html