资源描述:
《多重积分的MATLAB实现.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Mg分析实验二实验二多重积分目的和要求1.学习MATLAB软件中与二重积分和三重积分相关的命令与编程2.利用MATLAB软件计算二重积分和三重积分预备知识1.符号积分利用int命令进行二重积分、三重积分计算。格式:int(int(f,y,y1(x),y2(x)),x,a,b)int(int(int(f,z,z1(x,y),z2(x,y)),y,y1(x),y2(x)),x,a,b)2.数值积分二重数值积分的指令:dblquad(fun,xmin,xmax,ymin,ymax)三重(闭型)数值积分指
2、令:triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax)或用三个quadl函数实验内容1.二重积分的计算22例1计算二重积分∫∫(x+y−x)dxdy,其中D是由直线y=2,y=x及y=2xD所围成的闭区域.2y22解该二重积分可以化为二次积分∫dy∫y(x+y−x)dx,输入命令02int(int(x^2+y^2-x,x,y/2,y),y,0,2)得结果ans=13/6.2ππsinx例2计算积分I=∫πdy∫y−πdx.x解输入命令int(int(sin(
3、x)/x,x,y-pi,pi),y,pi,2*pi)得结果ans=2.Mg分析实验二若不借助于计算机计算,需要交换积分次序.例3求∫∫sin(π(x2+y2))dxdy.x2+y2≤1解积分区域用不等式可以表示成−1≤x≤1,−1−x2≤y≤1−x2,二重积分可11−x2化为二次积分∫dx∫sin(π(x2+y2)dy,输入命令−1−1−x2int(int(sin(pi*(x^2+y^2)),y,-sqrt(1-x^2),sqrt(1-x^2)),x,-1,1)由输出结果可以看出,结果中仍带有in
4、t,表明matlab求不出这一积分的值.采用极坐标2π1可化为二次积分∫da∫rsin(πr2)dr,输入命令00int(int(r*sin(pi*r^2),r,0,1),a,0,2*pi)可得结果为ans=2.注:二重积分也可以先进行符号运算,再得到数值解。y例4∫∫xdxdy,其中R={(x,y)
5、0≤x≤1,1≤y≤2}。Rsymsxy;%定义两个符号变量a=int(int(x^y,x,0,1),y,1,2)%积分a=log(3)-log(2)b=simple(a)%化简b=log(3/2)
6、c=vpa(b,4)%得到近似解c=0.4055例5(P3651.(1))>>fun=inline('x.^3+3.*x.^2.*y+y.^3','x','y');>>dblquad(fun,0,1,0,1)ans=1.0000例6(P3651.(2))>>fun=inline('sin(x+y)','x','y');>>dblquad(fun,0,pi/2,0,pi/2)ans=2.0000例7(P3651.(3))>>fun=inline('(x+y).*exp(x+y)','x','y');
7、>>dblquad(fun,0,1,2,4)ans=Mg分析实验二315.95762.三重积分的计算11−x1−x−ydz例8计算三重积分I=∫0dx∫0dy∫03(1+x+y+z)解输入命令int(int(int(1/(1+x+y+z)^3,z,0,1-x-y),y,0,1-x),x,0,1)得结果ans=-5/16+1/2*log(2).222例9计算三重积分∫∫∫xyzdxdydz,Ω为球面x+y+z=1及三个坐标面所围成Ω的在第一卦限内的区域.22211−x1−x−y解该三重积分可化为累次
8、积分∫0dx∫0dy∫0xyzdz.输入命令int(int(int(x*y*z,z,0,sqrt(1-x^2-y^2)),y,0,sqrt(1-x^2)),x,0,1)得结果ans=1/48.22例10(P3831.(1))∫∫∫xyzdxdydz,其中V由曲面z=xy与平面y=x,x=1,Vz=0所围成。>>quadl(@(x)arrayfun(@(xx)quadl(@(y)arrayfun(@(yy)quadl(@(z)…xx.*yy.*z,xx*yy,2*xx*yy),y),xx,2*xx)
9、,x),1,2)ans=179.2969>>quadl(@(x)arrayfun(@(xx)quadl(@(y)arrayfun(@(yy)quadl(@(z)…xx.*yy.*z,xx*yy,2*xx*yy),y),xx,2*xx),x),1,2)ans=179.2969注:1课本上的三重积分都可以用这种方法计算:将三重积分化成三次积分然后用三次quadl即可,其用法为:quadl(@(x)arrayfun(@(xx)quadl(@(y)arrayfun(@(yy)quadl(被