文档详情

数值积分的Matlab实现研究解析.ppt

发布:2016-10-20约2.57千字共13页下载文档
文本预览下载声明
数值积分的Matlab实现研究 一、数值积分的Matlab指令 说明: 计算步骤如下: 注: * (一).一元函数数值积分指令 开型积分,精度较高,支持无穷区间积分,提供’AbsTol’等选项 自适应Gass-Kronrod算法 quadgk(fun,xmin, xmax) quadgk 闭型积分,精度一般 自适应Lobattont算法 quadl(fun,xmin, xmax,tol) quadl 闭型积分,精度一般 自适应simpson算法 quad(fun,xmin, xmax,tol) quad 特点 采用的算法 指令格式 指令名称 1、fun可以是匿名函数,字符串形式函数,内嵌函数,M文件的函数句柄等 2、函数表达式要遵循”数组运算” 3、xmin,xmax分别为积分变量的上下限 4、tol为要求的计算结果绝对误差,缺省值为1e-6 例题: 1.在Matlab编辑窗口中编写如下M文件,并存盘 2:在Matlab命令窗口中键入下列命令: 结果: 参考文献:张德丰.Matlab数值分析与应用[M],国防工业出版社,2007. 1、被积函数可以用字符形式表示 在命令窗口依次键入下列命令 其中:tic,toc是秒表计时命令,tic表示秒表计时开始,toc表示秒表计时结束,运行花费时间输出格式为“elapsed_time=”, 单位为秒。 2、被积函数用内嵌函数表示 (二) 、二元函数数值积分指令 1.dblquad指令 dblquad指令是Matlab系统提供的可求解矩形区域上二重 (闭型)积分 格式: dblquad(fun,xmin,xmax,ymin,ymax,tol,method) 其中:method是积分方法的选择,缺省方法是@quad,可以选择@quadl等 例题: 可在命令窗口键入如下指令: 2、quad2d指令 格式:quad2d(fun,ymin,ymax,xflowfun,xhighfun) 说明: 1.quad2d是matlab系统从R2009a版本起提供在一般区域上的二重积分指令; 2.xlowfun,xhighfun分别表示函数形式的积分上下限; 3.指令所采用的算法是将一般的积分区域映射到矩形区域,然后利用自适应Lobatton算法进行计算. 例题:计算 可用如下指令: (三) 、三元及以上函数数值积分指令 1.triplequad指令 triplequad是matlab系统提供的可求解长方体区域上三重积分 格式: triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol,method) 算法:根据method的选择,缺省方法@ quad 可用如下指令: 2.quadndg指令 quadndg指令是积分工具箱INT中的指令,用于计算n重超长方体区域上的n元函数的数值积分 格式: quadndg(fun,xlowdim,xhighdim,tol) 说用: 1.xmindim,xmaxdim分别表示积分下限和上限的n维常量; 2.采用Gauss积分方法,在瑕点处采用Gauss-Chebyshev方法 可用指令 二、一般数值积分的讨论与研究 由于数值积分非常复杂,如振荡积分,无界区域的积分,无界函数的积分,高维积分等,目前matlab系统还没有直接提供一般区域上的三元及三元以上函数积分的指令,这需要人们从问题出发,利用matlab系统现有的指令,探索求解一般区域的积分问题. 以具体例题进行讨论: 例1 其中D由直线y=x,抛物线y=1+x^2以及轴所围成的区域. 分析: 1.由matlab可以作出积分区域的图形,可见上述问题为广义二重积分问题,积分区域为无界区域,可转化为累次积分. 2.该累次积分如何计算? 由于matlab系统二重积分没有指持无界区域的积分,但一元函数的quadgk指令支持无界区域的积分,为此可以利用两个 quadgk指令和arrayfun指令进行组合处理二元函数无界区域 上的数值积分 3.要求广义二重积分是收敛的. 积分指令如下: quadgk(@(x)arrayfun(@(x)quadgk(@(y)exp(-x-y). …*(x.^2+y.^2),x,1+x.^2),x),0,inf) 运行结果:0.6427 例2.计算三重积分 其中积分区域由xoy坐标面与旋转抛物面z=16-x^2-y^2所围成的立体区域. 由题意可知,旋转抛物面在xoy平面的投影为一圆,其方程满足:x^2+y^2=16,上述积分转化为累次积分的积分限分别为: 于是,累次积分的表示式为: 如何计算该三重积分? 分析: 利用matlab系统提供的一元函数及二元函
显示全部
相似文档