用monte carlo计算定积分(蒙特卡洛算法求积分)
用monte carlo计算定积分(蒙特卡洛算法求积分),本文通过数据整理汇集了用monte carlo计算定积分(蒙特卡洛算法求积分)相关信息,下面一起看看。
蒙特卡罗方法是一类随机算法的统称。随着20世纪电子计算机的出现,蒙特卡罗方法在许多领域显示了其优越的能力。在机器学习和自然语言处理技术中,经常用到的MCMC也是由此发展而来。本文通过应用最常见的蒙特卡罗方法——求解定积分,展示了这类算法的核心思想。
无意识统计学家定律。这是本文后面将用到的一个定理。作为初步知识,先介绍一下。我们来看看维基百科给出的解释。在概率论和统计学中,无意识统计定律(有时缩写为lotus)是一种理论,用于计算一个函数g(X)' role=' presentation ' g(X)g(X)一个随机变量x' role=' presentation' xx的概率分布,但不明确知道g(X)' role=' presentation ' g(X)g(X)的分布。该定律的形式取决于人们陈述随机变量X' role='presentation' XX的概率分布的形式。
如果是一个离散分布,并且知道它的PMF函数X ' role=' presentation ' X ' X(但不知道g(X)' role=' presentation ' g(X)g(X)),那么g(X)' role=' presentation ' g(X)g(X)的期望值是e[g(X)]=XG(X)FX ' role=' presentation ' e[g(X)]=XG(X)如果是连续分布并且已知其PDF函数\u X ' role=' presentation ' X \u X(但不知道\u g(X)' role=' presentation ' g(X)g(X)),那么g(X)' role=' presentation ' g(X)g(X)的期望值是e[g(X)]=g(X)FX(X)DX ' role=' presentation ' e[g(X)]=.这时,函数g(x)' role=' presentation ' g(x)g(x)的数学期望可以用LOTUS公式计算出来。莲花的公式如下
X' role='presentation' XX是离散分布当E[G(X)]=XG(X)FX(X)' role=' presentation ' E[G(X)]=XG(X)=XG(X)=G(X)FX ' role=' presentation ' E[G(X)]=G(X)FX(X)DXE[G(X)]
这种方法也常用于求' role=' presentation' 值。现在我们用它来求函数的定积分。如下图所示,有一个函数f(x)' role=' presentation ' f(x)f(x)。如果你求它从a' role='presentation' aa到b' role='presentation' bb的定积分,你其实会求曲线下的面积。这时我们可以用一个面积很容易计算的矩形来覆盖函数的积分区间(假设其面积为area' role=' presentation' area)。然后将点随机投在矩形框中,其中函数f(x)' role=' presentation ' f(x)f(x)下面的点为绿色,其他点为红色。那么绿点的个数占所有点(红绿)个数的比例为r' role='presentation' rr,函数f(x)' role=' presentation ' f(x)f(x)从a' role='presentation' aa到b' role='presentation' bb的定积分可以估计为面积
注意,蒙特卡罗方法得到的值不是精确值,而是近似值。而且,当抛撒点数越来越多时,近似值越来越接近真实值。
下面重点介绍蒙特卡罗法求定积分的第二种方法——期望法,有时也叫平均值法。
任取一组相互独立、同分布的随机变量{ Xi } ' role=' presentation { Xi } { Xi },Xi' role='presentation' XiXi在[a,b]' role='presentation' [a,b][a,b]上服从分布律fX' role='presentation' fXfX,也就是说fX' role='presentation' fXfX是随机变量X' role='presentation' XX的PDF(或PMF),令g(x)=g(x)fX(x)' role=' presentation ' g(x)=g(x)fX(x)g(x)=g(x)fX(x),则g(Xi)' role=' presentation ' g(Xi)g(Xi)也是一组独立同分布的随机变量,而且(因为g(x)' role=' presentation ' g(x)g(x)是关于x' role='presentation' xx的函数,所以根据莲花可得)
E[g(Xi)]=abg(x)fX(x)dx=abg(x)dx=I ' role=' presentation ' E[g(Xi)]=bag(x)fX(x)dx=bag(x)dx=IE[g(Xi)]=abg(x)fX(x)dx=abg(x)dx=I由强大数定理Pr(limN1NI=1Ng(Xi)=I)=1 ' role=' presentation ' Pr(limN1NI=1Ng(Xi)=I)=1Pr(limN1NI=1Ng(Xi)=I)=1若选I=1NI=1Ng(Xi)' role=' presentation ' I=1NI=1Ng(Xi)I=1NI=1Ng(Xi)则'角色='演示文稿' I依概率一收敛到一'角色='演示'二。平均值法就用'角色='演示文稿' I作为我角色='演示文稿二的近似值。
假设要计算的积分有如下形式
I=abg(x)dx ' role=' presentation ' I=bag(x)dxI=abg(x)dx其中被积函数' g(x)'角色='演示' g(x)g(x)在区间[a,b]' role='presentation' [a,b][a,b]内可积。任意选择一个有简便办法可以进行抽样的概率密度函数' fX ' role=' presentation ' fX(x)fX(x),使其满足下列条件当g(x)0 ' role=' presentation ' g(x)0g(x)0时,fX(x)0 ' role=' presentation ' fX(x)0fX(x)0(axb ' role=' presentation ' axbaxb)abfX(x)dx=1 ' role=' presentation 'bafX(x)dx=1abfX(x)dx=1如果记
' g(x)={ g(x)FX(x),fX(x)00,FX(x)=0 ' role=' presentation ' g(x)=g(x)fx(x),0,fx(x)0fx(x)=0g(x)={g(x)fx(x),fx(x)00,fx(x)=0那么原积分式可以写成I=abg(x)fX(x)dx ' role=' presentation ' I=bag(x)fX(x)dxI=abg(x)fX(x)dx因而求积分的步骤是产生服从分布律fX' role='presentation' fXfX的随机变量xi(i=1,2,,n)' role=' presentation ' xi(i=1,2,,n)xi(i=1,2,,n);计算均值I=1NI=1Ng(Xi)' role=' presentation ' I=1NI=1Ng(Xi)I=1NI=1Ng(Xi)并用它作为我角色='演示文稿二的近似值,即II ' role='presentation' II II如果'角色='演示文稿'为有限值,那么fX' role='presentation' fXfX可取作为均匀分布
FX(x)={ 1b a,axb0,否则角色='演示文稿' fx(x)=1ba,0,axbotherwisefx(x)={1ba,axb0,otherwise此时原来的积分式变为I=(b a)abg(x)1b adx ' role=' presentation ' I=(b a)bag(x)1b adx=(b a)abg(x)1b adx具体步骤如下产生[a,b]' role='presentation' [a,b][a,b]上的均匀分布随机变量xi(i=1,2,,n)' role=' presentation ' xi(i=1,2,,n)xi(i=1,2,,n);计算均值I=b aNI=1Ng(Xi)' role=' presentation ' I=b aNI=1Ng(Xi)I=b aNI=1Ng(Xi)并用它作为我角色='演示文稿二的近似值,即II ' role='presentation' II II下面是来自参考文献【1】的一个例子。注意积分的几何意义就是[甲,乙]区间内曲线下方的面积。
当我们在[a,b]之间随机选取一个点x' role='presentation' xx,其对应函数值为f(x)' role=' presentation ' f(x)f(x),然后我们可以用f(x)(ba)' role=' presentation ' f(x)所以我们认为当一系列点xi' role='presentation' xixi被随机选取在[a,b]' role=' presentation' [a,b] (xi' role='presentation' xixi满足均匀分布)之间时,那么估计面积被平均为积分的一个较好的近似可以想象,如果这样的采样点越来越多,这个积分的估计会越来越接近。按照上面的思路,我们的积分公式是I=(ba)1NI=0N1F(Xi)=1NI=0N1F(Xi)1BA ' role=' presentation ' I=(ba)1NI=0N1F(Xi)=1N1F(Xi)1Bai=(ba=1NI=0N1F(Xi)1BA注意,1ba' role=' presentation' 1ba1ba是均匀分布的PMF。这和我们之前推导的蒙特卡罗积分公式是一致的。这个网站是个人知识管理的网络存储空间。所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请一键举报。
更多用monte carlo计算定积分(蒙特卡洛算法求积分)相关信息请关注本站,本文仅仅做为展示!