标题 | 蒙特卡洛方法在积分求解中的应用 |
范文 | 卢嘉澍 【摘要】 本文基于蒙特卡洛方法的定义,给出使用其进行近似积分的一般步骤,并以均匀分布为例讲解了具体操作步骤.积分算例表明,这种方法概念简单、编程容易,可应用于工程实际问题中重要的数值积分计算. 【关键词】 积分计算;蒙特卡洛法;区间估计 一、引 言 蒙特卡洛法,也称统计模拟方法,是一种计算机化的数学方法.20世纪40年代中叶出现了电子计算机,使得用数学方法模拟大量试验成为可能.另外,随着科学技术不断发展,出现了越来越多的复杂问题,用通常的解析方法或数值方法都难解决.蒙特卡洛法(包括求积分、微分以及线性、非线性方程组等)就是在這些情况下,作为一种可行的,且是不可缺少的计算方法被提出和迅速发展起来的.以概率论为理论基础,其可靠性与收敛性也能得到很好地说明.在通常积分的求解中,常用数值积分公式对积分进行求解.然而数值求积公式的精度将受到积分维数的影响,同时,对于无穷积分,将其近似地看作定积分本身也会丧失一定的精度. 二、算法思想 对于积分若能选取连续型随机变量X,其概率密度函数p(x)满足如下条件: 1.p(x)>0,x∈ R n. 2.p(x)及其上侧分位数已知. 则便可对上述积分作统计模拟并进行误差估计.特别地,若取概率分布为D上的均匀分布,则其概率密度 g(x)= 1 m(D) . 其中m(D)为积分区域D的测度.则原积分可转化为 即相当于求随机变量X在函数 下的数学期望,这就将积分问题转化为期望估计问题,至此便可运用数理统计相关理论,如点估计、区间估计对其进行求解. 三、公式推导 考虑一般情形,对于所求期望E(h(x)),我们运用数理统计的相关理论对其进行区间估计.首先,假设 为一束均匀分布族,把上式代入积分表达式,可得 根据此式,可以得到n重积分的估计式 根据上式即可使用基于均匀分布的样本对所求积分进行数值估计. 四、实 例 (1)考虑一维情形.根据随机分布g(x)随机选取样本(x1,x2,…,xn), 则可以给出积分 的估计式 同时,也可以给出基于区间估计的误差,置信度为1-α的误差为 其中Kα为同置信度有关的常数,并满足|Kα|<1.故误差满足 我们可以得到,积分值的估计量θ ^ →∫baf(x)dx,误差的大小不随维数而显著改变,故这种估计方法是合理的.若取f(x)=ex,考虑其在[0,1]上的积分.选取n=10 000,生成10 000个[0,1]内的随机数,再根据上式进行求解.使用MATLAB编程求解其在[0,1]内积分的近似值,运行代码如下: f=@(x)exp(x);xx=rand(1,10000);S=sum(f(xx))/ 10000 输出结果 S=1.718220782967407 对于任意区间[a,b]的均匀分布随机数,总可以通过[0,1]内随机数进行线性映射得到 r′k=(b-a)rk+a. 综上所述,使用蒙特卡罗法进行积分计算的一般步骤为: (1)根据概率密度函数,确定一组基于密度函数的容量为n的样本(x1,x2,…,xn). (2)根据每层积分上下限的表达式,确定每一层相应积分样本的上下限.特别的,若积分为矩形区域上的积分,则样本上下限即为相应层积分区间的上下限[ai,bi]. (3)使用公式 对原积分进行数值估计. 五、结 语 使用蒙特卡洛方法进行积分计算,理论上可以通过选取合适的随机分布来提高蒙特卡洛方法的精度. 由于蒙特卡洛方法思想简单,易于编程实现,且一般的程序语言如C++,MATLAB,Mathematica都有生成各类常用分布随机数的命令,更加方便了程序设计.并且,其精度不会随着积分维数增大而显著增长,对于计算一些复杂的高维积分有明显的优势.因此,可以推断,蒙特卡洛方法将作为一种数值积分工具而得到广泛应用. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。