欢迎来到天天文库
浏览记录
ID:48000812
大小:153.20 KB
页数:3页
时间:2020-01-11
《基于MATLAB的二重积分计算方法.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第15卷第2期高等数学研究Vol.15,No.22012年3月STUDIESINCOLLEGEMATHEMATICSMar.,2012基于MATLAB的二重积分计算方法王若鹏,夏赞勋,谢鹏燕,张鹏(北京石油化工学院数理系,北京102617)摘要运用MATLAB软件,通过对MATLAB内部函数的改造,就一般区域上二重积分的计算给出几种计算方法及相应的MATLAB命令,通过实例比较可显示所给方法的有效性.这些方法可加以推广后用以计算一般区域上的三重积分.关键词二重积分;MATLAB;数值积分中图分类号O172
2、.2文献标识码A文章编号1008-1399(2012)02-0061-03[1-2]考虑如下内积分限是函数的二重积分问题广、dblquad函数的改造以及quadl命令的程序处理等三种方法实现一般区域上二重积分的计算问题.I=f(x,y)dxdy=Dbd(x)1二重积分的计算方法dxf(x,y)dy.(1)∫a∫c(x)这里考虑1.1一元函数数值积分方法的推广f(x,y)=xy,a=1,b=2,当积分区域为一般区域时,MATLAB没有相c(x)=sinx,d(x)=cosx.应的内部函数,可借用一元函数数
3、值积分的方法进为叙述方便,不妨记行求解.数值解法计算定积分时有梯形公式、龙贝格d(x)公式和高斯公式等,这里只讨论梯形公式.g(x)=f(x,y)dy.∫c(x)对于二重积分(1),利用梯形法将区间[a,b]等MATLAB7.0提供的计算二重积分的方法有分为m份,记[3]符号解法和数值解法.符号解法是使用b-ahx=,MATLAB内部命令int计算两次一重积分,其结果m往往是符号,要计算积分值,必须使用vpa计算其数xi=a+ihx(i=1,2,…,m),值,在2009a版本中,也可以利用quad2d计算
4、二重积则有m-1分值,但是对稍微复杂的二重积分,这两个命令无法I≈hg(a)-g(b)+),x(2∑g(xi)计算其积分值.而数值解法是利用dblquad函数,但i=1其中要求内外积分限都是常函数,即只能计算矩形区域d(x)i上的二重积分.对于一般区域上的二重积分计算,文g(xi)=f(xi,y)dy.∫c(x)i[2,4-5]建议使用美国学者HowardWilson和然后再将区间[c(xi),d(xi)]进行n等分,记BryceGardner开发的数值积分工具箱中的函数c(xi)-d(xi)hy(i)=
5、,gquadzdggen.n事实上,通过对MATLAB中相关计算重积分的yij=c(xi)+jhy(i)函数加以改造,就能胜任内积分限为函数的二重积分(i=1,2,…,m;j=1,2,…,n),计算工作.文中通过对一元函数数值积分方法的推则有1G(xi)≈hy(i){[f(xi,c(xi))+收稿日期:2011-05-06;修改日期:2012-02-232基金项目:北京市URT计划项目子项目(2010J00067)n-1作者简介:王若鹏(1975-),男,副教授,主要从事优化理论与方法的f(xi,d(xi
6、))]+∑f(xi,yij)}.j=1教学与研究.Email:wangruopeng@bipt.edu.cn这一计算过程的MATLAB函数文件代码如下.夏赞勋(1989-),男,信息与计算科学专业2008级本科在读.Email:xiazanxun@bipt.edu.cnfunctionI=mytrapdblquad(fun,a,b,cfun,dfun,m,n)62高等数学研究2012年3月ifnargin<7原积分化为bd(x)n=100;I=dxf(x,y)dy=∫a∫c(x)endb1ifnargin
7、<6f(x,[d(x))-c(x)]u+c(x))×∫∫a0m=100;[d(x)-c(x)]dxdu.end其MATLAB程序代码如下.ifm<2|n<3functiony=mydblquad(a,b)error('Numberifintervalsinvalid\n');y=dblquad(@F,a,b,0,1)end其中函数F即为转化后的被积函数,可以使用内联mpt=m+1;hx=(b-a)/m;函数输入.x=a+(0:m).*hx;对于积分(2),其计算过程如下.fori=1:mptfunctio
8、nz=F(x,u)ylow=feval(cfun,x(i));c=sin(x);d=cos(x);yup=feval(dfun,x(i));z=(d-c).*ff(x,(d-c).*u+c);hy=(yup-ylow)/n;functionw=ff(x,y)y(i,:)=ylow+(0:n).*hy;w=x.*y;f(i,:)=feval(fun,x(i),y(i,:));调用y=mydblquad(1,2),所得结果同式(3
此文档下载收益归作者所有