实验数据处理方法DataAnalysis-ch.ppt
实验数据处理方法第二部分:Monte Carlo模拟,第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),Monte Carlo算法的一个重要组成部分:,描述所要模拟的物理系统的一些概率密度函数(PDF)描述整个系统在空间、能量、时间或多维相空间中的发展和演化;,Monte Carlo模拟的主要任务:,通过对这些概率密度函数的随机抽样来模拟物理系统的状态;,为描述系统的演化所必需的一些附加运算.,物理过程的描述从描述物理系统的pdf出发,随机抽取系统的可能状态。,第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),本章介绍从一个任意的pdf获取样本的抽样方法。,第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),8.1 等价的连续概率密度函数,8.1 等价的连续概率密度函数,随机变量:连续型、分离型,概率密度函数:连续分布、分离分布,利用函数,可将分离型的pdf用连续型的pdf 描述 用同样的方式来讨论分离型和连续型随机变量的抽样方法,8.1 等价的连续概率密度函数,已知分离型pdf:Pi 分离型随机变量X的取值为xi的概率,定义一个等价的连续型pdf:,利用与连续型随机变量相同的方式计算分离型随机变量的期望值和方差:,第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),8.2 pdf的变换,8.2 pdf的变换,1、若随机变量x和y是一一对应的:,2、若随机变量x和y不是一一对应的:,8.2 pdf的变换,3、推广到n个随机变量的情况:,Jacobian行列式,4、特例:如果y(x)是x的累积分布函数(cdf),即:y在0,1区间上均匀分布 不管f(x)取何种形式,累积分布函数总是在0,1区间上均匀分布,第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),8.3 直接抽样法(反函数法)(Sampling via Inversion of the cdf),8.3 直接抽样法(反函数法)(Sampling via Inversion of the cdf),原理(注意:pdf f(x)必须是归一化的):,设y=F(x)为随机变量x的累积分布函数 x和y是一一对应的,先随机抽取y,然后通过求F(x)的反函数F-1(y)得到随机变量x的值,随机变量y在区间0,1上均匀分布 利用0,1区间上均匀分布随机数产生器抽取,8.3 直接抽样法(反函数法)(Sampling via Inversion of the cdf),方法:U0,1:0,1区间上均匀分布的随机数,从U0,1抽取随机数;令F(x)=;解方程得x:,注:需要知道累积分布函数的解析表达式,且累积分布函数的反函数存在,分离型随机变量的抽样,直接抽样法适应于分离型的随机变量,8.3 直接抽样法(反函数法)(Sampling via Inversion of the cdf),方法:,计算yk=yk-1+pk,k=2,3,N,y1=p1从U0,1抽取随机数;求满足yk-1 yk 的K值;随机变量的第k个取值即为欲抽取的值。,8.3 直接抽样法(反函数法)(Sampling via Inversion of the cdf),例1、粒子衰变末态的随机抽样,设粒子a有三种衰变方式,其分支比如下,随机选取每次衰变的衰变方式(衰变道)直接抽样法,U0,1,8.3 直接抽样法(反函数法)(Sampling via Inversion of the cdf),例2、二项式分布的抽样,方法1:利用上面介绍的直接抽样法,需计算累积分布函数,当n很大时,求和计算困难;,方法2:利用二项式分布的定义,产生n个 iU0,1;统计满足条件 i p(表示成功)的 i的数目r,则r表示在n次实验中成功的次数r即为二项式分布的抽样值,8.3 直接抽样法(反函数法)(Sampling via Inversion of the cdf),例3、泊松分布的抽样,方法1:利用直接抽样法,但计算累积分布函数时非常复杂,方法2:利用泊松分布的定义:二项式分布的极限形式,选取足够大的n,使p=/n相当小,例如,p=0.1产生n个 iU0,1;统计满足条件 i p(表示成功)的 i的数目r,则r表示在n次实验中成功的次数r即为泊松分布的抽样值的近似值,n越大,近似程度越好,8.3 直接抽样法(反函数法)(Sampling via Inversion of the cdf),例4、连续型随机变量的直接抽样,1.求区间a,b上均匀分布的随机数x:,产生 U0,1;,2.指数分布,产生 U0,1;和(1-)都是 U0,1,第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),8.4 变换抽样法直接抽样法的一般形式,8.4 变换抽样法直接抽样法的一般形式,思路:,变换抽样法,8.4 变换抽样法直接抽样法的一般形式,变换抽样法:,找出y与x间的变换关系,y=y(x),f(x)与g(y)满足关系:由f(x)分布抽取x的值;随机变量y的取值:=y(),直接抽样法是变换抽样法的一个特殊形式,X满足U0,1,f(x)=1;y与x间的变换关系:y=G-1(x)y的累积分布函数的反函数,8.4 变换抽样法直接抽样法的一般形式,推广到n维随机向量的情况:,由联合概率密度函数抽取随机向量的值 yi的值:,8.4 变换抽样法直接抽样法的一般形式,例:高斯分布的抽样方法,进行变量变换:,由N(0,1)分布抽样得到y,如何抽取服从N(0,1)分布的随机变量?,8.4 变换抽样法直接抽样法的一般形式,1.利用中心极限定理,设x1,x2,xn是一组n个独立的随机变量,xi的平均值和方差分别为i和i,则当n时,变量,服从标准正态分布N(0,1),设x 是在0,1之间均匀分布的随机数,对n个x的取值xi,在n时,y服从N(0,1),在实际应用时,可取n=12,抽样方法:,1、产生12个U0,1的随机数i,2、,8.4 变换抽样法直接抽样法的一般形式,2.利用变换抽样法,y1和y2是两个相互独立的、服从标准正态分布的随机数,变换:,反变换:,抽样方法:,1)产生一对0,1区间均匀分布的随机数1和2;2),8.4 变换抽样法直接抽样法的一般形式,证明用此方法抽取的y1,y2满足上面的联合概率分布,雅可比行列式:,8.4 变换抽样法直接抽样法的一般形式,3.采用极坐标变换,x和y是两个相互独立的、服从标准正态分布的随机数,变换:,反变换:,则变量和的联合概率密度函数为,即在0,2 区间上均匀分布,服从=1的指数分布,8.4 变换抽样法直接抽样法的一般形式,抽样方法:,产生:=2 r,rU0,1产生:=-ln r,rU0,1 x=(2)1/2 cos,y=(2)1/2 sin,8.4 变换抽样法直接抽样法的一般形式,void test()c1=new TCanvas(c1,Histogram Drawing Options,200,10,700,900);c1-Divide(1,2);TH1F*h1=new TH1F(h1,h1,100,-5.0,5.0);TH1F*h2=new TH1F(h2,h2,100,-5.0,5.0);SetSeed(9,11),Const Pi=3.1415926;for(int i=0;i Fill(y1);h2-Fill(y2);c1-cd(1);h1-Draw();c1-cd(2);h2-Draw();,8.4 变换抽样法直接抽样法的一般形式,第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),8.5 舍选抽样法(acceptance-rejection sampling),8.5 舍选抽样法(acceptance-rejection sampling),直接抽样法的困难:,许多随机变量的累积分布函数无法用解析函数给出;有些随机变量的累积分布函数的反函数不存在或难以求出;即使反函数存在,但计算困难,舍选抽样法:,抽取随机变量x的一个随机序列xi,i=1,2,按一定的舍选规则从中选出一个子序列,使其满足给定的概率分布.,假定:,随机变量x的值域为a,b;x的概率密度函数:f(x)=P*(x)/Z,(其中Z为归一化因子)难以直接抽样;Q(x)=Q*(x)/ZQ 是另外一个较为简单的函数(ZQ为归一化因子)可用简单的方法进行抽样;在x的整个取值范围内:cQ*(x)P*(x),其中c为一常数,8.5 舍选抽样法(acceptance-rejection sampling),抽样方法:,1.产生两个随机数,从Q(x)分布抽取,a,b;由0,cQ*()区间上的均匀分布抽取u,u=cQ*(),U0,1.,2.接收或舍弃取样值 x.,如果 u P*(x),舍弃,返回到1,重复上述过程;否则,接受;,8.5 舍选抽样法(acceptance-rejection sampling),几何解释:,在二维图上,随机选取位于曲线cQ*(x)下的点x,u;选取位于曲线P*(x)下的那些点,则这些点将服从概率密度为f(x)的分布,8.5 舍选抽样法(acceptance-rejection sampling),常数c的选取,常数c应尽可能地小,因为抽样效率与c成反比;c=maxP*(x)/Q*(x),x a,b,特例:,如果取Q(x)=1,xa,b,即均匀分布,则,X的抽样:x=(b-a)r+a,r U0,1c可取为f(x)在a,b区间上的极大值,8.5 舍选抽样法(acceptance-rejection sampling),例1:标准正态分布的抽样,x-a,a,无法用直接抽样法,累积分布函数无解析表达式,Breit-wigner or Cauchy分布,8.5 舍选抽样法(acceptance-rejection sampling),由Q(x)抽取x 直接抽样法,抽取u,计算P*(x),如果u=P*(x),接受x,8.5 舍选抽样法(acceptance-rejection sampling),float gaussian_reject(double a)const float c=1.52;while(true)float eta=randac();float x=tan(eta*2.0*atan(a)+atan(-a);float q=c*1/3.1415926*1.0/(1+x*x);float ksi=randac();float u=ksi*q;float p=1/sqrt(2*3.1415926)*exp(-x*x/2.0);if(u=p)break;return x;,8.5 舍选抽样法(acceptance-rejection sampling),void test()SetSeed(9,11);c1=new TCanvas(c1,Histogram Drawing Options,200,10,700,900);c1-Divide(1,2);TH1F*h1=new TH1F(h1,h1,100,-5.0,5.0);for(int i=0;i Fill(x);c1-cd(2);h1-Draw();,8.5 舍选抽样法(acceptance-rejection sampling),例2:利用舍选法产生随机数C=cos,S=sin,其中为0,2区间内均匀分布的随机数,方法1:先产生0,2间均匀分布的随机数:=2 r,rU0,1,然后直接计算C和S 因需要计算三角函数,故此方法运算速度慢,方法2:利用舍选法可避免三角函数运算,令A和B为单位圆内直角三角形的两个边,则有,8.5 舍选抽样法(acceptance-rejection sampling),因此,只要产生单位圆内的随机坐标A和B,就可用代数运算求出C和S,算法为,产生两个0,1区间上均匀分布的随机数u1和u2;令v1=2u1-1,v2=u2,则v1U-1,1,v2U0,1;计算r2=v12+v22,如果r2 1,转到1,重新产生;令A=v1,B=v2,计算C和S,第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),8.6 复合分布的抽样方法(composition method),8.6 复合分布的抽样方法(composition method),1961年由Marsaglia提出的方法,设随机变量X的概率密度函数f(x)可写成一些PDF的线性叠加:,抽样方法:,利用离散型的随机变量的抽样方法抽取序号k;,由fk(x)抽取x,8.6 复合分布的抽样方法(composition method),例:用复合法产生双指数分布随机数,产生两个0,1区间均匀分布的随机数 r1和r2;如果r1 0.5,按f1(x)抽样;如果r1 0.5,按f2(x)抽样;f1(x)和f2(x)都可用直接抽样法,第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),8.7 混合抽样法(mixed method),8.7 混合抽样法(mixed method),混合法:,直接抽样法,舍选法,亦称乘抽样法,适用的抽样场合:,直接抽样法不可用、舍选抽样法效率低,概率密度函数难以积分无累积分布函数的解析表达式;累积分布函数的反函数的解析表达式不存在;概率密度函数存在尖峰(spiky);,8.7 混合抽样法(mixed method),假定:概率密度函数可写成下面的因子化形式,其中:,f(x)包含了p(x)的峰值部分且可用直接抽样法进行抽样g(x)是一个相对变化平缓的函数,包含了p(x)函数的大部分的数学复杂性;,8.7 混合抽样法(mixed method),抽样方法:,1.将f(x)归一化:,2.令,Mg为g(x)在区间a,b上的极大值,3.利用直接抽样法由 抽取x;,4.抽取0,1区间均匀分布的随机数r,如果,则接受x,否则,返回到3重新抽样,8.7 混合抽样法(mixed method),设概率密度函数可写成如下的形式:,推广的形式:,复合抽样法+混合抽样法=乘加抽样法,抽样方法:,1.采用复合抽样法,先确定p(x)的随机数应由哪一个 抽取;2.在按 抽样时,采用上面的混合方法,8.7 混合抽样法(mixed method),例:compton散射,微分截面:,如何抽取散射光子的能量?=乘加抽样法,8.7 混合抽样法(mixed method),8.7 混合抽样法(mixed method),抽样方法:r1,r2,r3是三个在0,1区间上均匀分布的随机数,1.确定由哪一个f函数来抽取:如果r11/(1+2),选择f1(),否则选f2();2.根据f1或f2抽取:直接抽样法,3.计算sin2:,4.计算g(),如果 接受,否则返回到第一步,第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),8.8 近似抽样法(列表法),8.8 近似抽样法(列表法),近似抽样法:,用近似的分布函数取代欲抽取的概率密度函数,一般是采用列表的形式将连续型的概率分布变成分离型的概率分布。,使用的场合:,概率密度函数的形式非常复杂,在模拟过程中进行计算需花费相当多的CPU时间;概率密度函数无解析形式,只能用数值或曲线的形式表示。,8.8 近似抽样法(列表法),基本方法:,设概率密度函数:f(x),xa,b,将区间a,b分成n个子区间,分点为,分点对应的函数值为:,对于每一个小区间,利用一简单的函数fa(x)来近似地表示原概率分布函数,并使fa(x)在该区间内的积分与f(x)在该区间内的积分相等,即俩者的概率相等。,利用f(x)计算每一个子区间的概率值 并计算f(x)的累积分布函数在xi处的值,并将F(xi)和xi存入数据表中;,8.8 近似抽样法(列表法),抽样方法:随机选择子区间:选取0,1区间内均匀分布的随机数r,找出满足 的子区间xi-1,xi;根据fa(x)的特点,确定欲抽取的随机数;,几点说明:,分点的选取:,f0,f1,.,fn应能充分反映f(x)的变化状况,即,在 f(x)变化迅速的区域分点密一点,变化缓慢的区域分点稀一点.,fa(x)的选取:,阶梯近似:线性近似二次曲线近似样条函数近似,8.8 近似抽样法(列表法),阶梯近似,将fa(x)取为阶梯函数,在每一个子区间中fa(x)都是均匀分布,8.8 近似抽样法(列表法),抽样方法:选取0,1区间均匀分布的随机数ri;找出满足下式的分点xj-1和xj:欲抽取的随机数为:,8.8 近似抽样法(列表法),线性近似,利用一系列的折线来近似原分布f(x),即将fa(x)取为,其中C为归一化因子,使得每一子区间内原分布和近似分布的积分概率相等,8.8 近似抽样法(列表法),抽样方法:,第八章 从概率分布函数的抽样(Sampling from Probability Distribution Functions),8.9 多维分布的抽样,8.9 多维分布的抽样,将一维分布的抽样方法推广到多维分布,设n维概率密度为,的取值域为n维长方体,的极大值为M,则 的随机数 的舍选法,舍选法用于多维抽样,8.9 多维分布的抽样,混合抽样法用于多维分布的抽样,设多维随机变量概率密度函数 可表示为,式中 为任意多维概率密度函数,其随机数为,H()0的极大值为M,则f()的随机数 可由下列方式抽取:,8.9 多维分布的抽样,条件密度法:,利用条件概率密度将多维模拟转化为一维模拟问题.,任意n维概率密度函数fn(x1,x2,xn)可表示为,fn(x1,x2,xn)=f(xn|x1,x2,xn-1)fn-1(x1,x2,xn-1),条件概率,x1,x2,xn-1联合概率密度,fn(x1,x2,xn)=f(xn|x1,x2,xn-1)f(xn-1|x1,x2,xn-2)f(x2|x1)f(x1),n个一维概率密度的乘积,8.9 多维分布的抽样,条件密度法:,fn(x1,x2,xn)=f(xn|x1,x2,xn-1)f(xn-1|x1,x2,xn-2)f(x2|x1)f(x1),抽样方法:,由f(x1)抽样得到x1的随机数1,将1代入f(x2|x1)中得到x2的一维分布f(x2|1);由f(x2|1)抽样得到x2的随机数2,,