兴源范文网 > 作文大全 >

MATLAB在二重积分计算中的应用

| 浏览次数:


打开文本图片集

【摘 要】重积分计算是高等数学教学中的重要内容,如何计算重积分显得尤其重要。重积分计算主要思想是如何把重积分化为累次积分,如何决定积分次序。由于有些积分的被积函数和积分区域比较复杂,计算起来比较困难,甚至有些重积分无法计算。然而MATLAB软件在高等数学重积分计算中有很大的优势,通过MATLAB软件求解重积分不仅可以提高学生学习的积极性,而且可以提高学生学习的兴趣和效率。本文研究的主要内容是如何运用MATLAB内部函数计算二重积分。

【关键词】MATLAB 二重积分 高等数学

【中图分类号】O13 【文献标识码】A 【文章编号】1674-4810(2015)27-0057-02

随着科学技术及计算机的飞速发展,各类数学软件的不断涌现,这使在解决一些复杂的问题变得非常简单。MATLAB已成为许多课程的基本教学工具,是大学生、硕士生和博士生必须掌握的基本技能;在设计研究单位和工业部门,MATLAB已成为必备的标准软件。MATLAB软件“面向对象”的特点愈加突出,数据类型愈加丰富,操作界面愈加完善,运算速度越来越快,功能越来越强大。MATLAB在高等数学教学中起着非常重要的作用。MATLAB具有简单易学、代码短小高效、计算功能强大以及可扩展性等优点。基于MATLAB的高等数学教学可以提高学生课堂的参与性,激发学生学习的兴趣,有利于教学质量的提高。MATLAB已经成为国际控制界公认的标准计算软件,国内已经有很多工科院校把MATLAB引入课堂,作为数学公共课教学改革的核心内容。本文主要研究如何利用int函数、dblquad函数和quad2d函数求高等数学中的二重积分。

一 符号表达式和函数表达式

MATLAB有强大的符号运算和数值计算功能,两者的根本区别是:符号计算需要定义符号表达式,而数值计算需要定义函数表达式。对于一般的程序设计软件实现数值计算还可以,但是实现符号计算并不是一件容易的事。MATLAB的数学工具箱可以完成几乎所有的符号运算和数值计算功能,MATLAB可以用syms函数和单引号产生符号表达式,同时也可以利用M-函数文件、内联函数和匿名函数得到函数表达式。

例1:定义多变量符号表达式f=x2siny

syms函数调用格式:syms xy;f=x^2*sin(y)

单引号调用格式:f="x^2*sin(y)"

例2,定义多变量函数表达式fun=x2*sin(y)

方法一:M函数文件方法

编写M文件:function fun=f(x,y)

fun=x^2*sin(y)

方法二:inline函数方法

fun=inline(" x.^2.*sin(y)")

方法三:匿名函数方法

fun=@(x,y)x.^2.*sin(y)

二 二重积分的计算方法

MATLAB提供了两种方法计算二重积分即符号计算和数值计算。符号计算是求矩形区域上的二重积分,利用MATLAB内部命令int计算两次一重积分,调用格式为int(int(f,A,B),C,D),其中f是符号表达式,变量的取值范围是A≤x≤B,C≤y≤D。符号计算的结果往往是符号,如果要求其值,需调用函数vpa(I,n),得到具有n位有效数字I的近似值。数值计算可以调用MATLAB内部函数dblquad函数和quad2d函数。dblquad函数是求矩形区域上二重积分的数值估计,调用格式为dblquad(fun,A,B,C,D),其中fun是函数表达式,变量的取值范围是A≤x≤B,C≤y≤D。quad2d函数求平面区域上二重积分的数值估计,调用格式为quad2d(fun,A,B,C,D),其中fun是函数表达式,变量的取值范围是A≤x≤B,C(x)≤y≤D(x)。

例1,求二重积分 ,其中区域Ω

是有直线x=0,x=1,y=1,y=2围成的区域。

根据区域Ω的特点即可以看成X型区域也可以看成Y型区域,采用X型区域把二重积分化为二次积分得:

运用MATLAB软件求解二次积分方法如下:

方法一:调用MATLAB符号计算命令int

>>syms x y;>> f=x^2*sin(y);>> I=int(int(f,0,1),1,2);

>> I=cos(1)/3-cos(2)/3;>>I=vpa(I,4);>> I=0.3188;

方法二:调用MATLAB数值计算命令dblquad

>> fun=@(x,y)x.^2.*sin(y); >> I=dblquad(fun,0,1,1,2);>> I=0.3188;

方法三:调用MATLAB数值计算命令quad2d

>> fun=@(x,y)x.^2.*sin(y);>> I=quad2d(fun,0,1,1,2);>> I=0.3188;

例2,求二重积分 ,其中区域Ω是

有抛物线y=x2和x=y2围成的区域。

根据区域Ω的特点把二重积分化为二次积分得:I=

,此积分区域为平面区域调用quad2d

函数如下:

>> fun=@(x,y)x.^2.*sin(y);>>C=@(x)x.^2;D=@(x)sqrt(x);

>> I=quad2d(fun,0,1,C,D);>> I=0.0492;

由于区域Ω是平面区域,对y的积分是变限积分,因此不能直接调用dblquad函数。但是可以通过变量替换转化为矩形区域上的积分。

令z=(y-C(x))/(D(x)-C(x)),则y=(D

(x)-C(x))z+C(x),二重积分可以转化为I=

。通过此变换把

平面上的二重积分化为矩形区域上的二重积分,因此可以调用int命令和dblquad命令。然而对于符号计算命令int求解积分时,要求被积函数具有显式的原函数,但是此时的被积分函数没有显式的原函数,因此只能调用MATLAB数值计算命令dblquad:

>> fun=@(x,z)x.^2.*sin((sqrt(x)-x.^2).*z+x.^2).*(sqrt(x)-x.^2);

>> I=dblquad(fun,0,1,0,1);>> I=0.0492;

例3,求二重积分 ,其中区域Ω是有

抛物线y=x2和x=y2围成的区域。

根据区域Ω的特点把二重积分化为二次积分得:

,调用平面区域求积分命令quad2d得:

>> fun=@(x,y)x.^2.*y;>>C=@(x)x.^2;D=@(x)sqrt(x);

>> I=quad2d(fun,0,1,C,D);>> I=0.0536;

根据例2中的变换方法把对y的变限积分也化为定积分,则积分可化为: 。这时二次积分的积分区域是矩形区域,并且此时的被积函数具有显示的原函数,因此可以调用int命令和dblquad命令。

方法一:调用MATLAB符号计算命令int

>> syms x y >> f=x^2*sin((sqrt(x)-x^2)*z+x^2)*(sqrt(x)-x^2);>> I=int(int(f,0,1),1,2);

>> I=3/56;>> vpa(I,3);>> I=0.0536;

方法二:调用MATLAB数值计算命令dblquad

>> fun=@(x,z)x.^2.*((sqrt(x)-x.^2).*z+x.^2).*(sqrt(x)-x.^2);>> I=dblquad(fun,0,1,0,1);

>> I=0.0536。

MATLAB在计算二重积分的时候可以运用符号运算和数值计算两种思路。这两种思路都可以解决二重积分问题但又各有优劣,符号计算因其需要被积函数的原函数,所以可以得到积分的精确值,然而这也是符号计算的劣势,因为很多的被积函数不存在显式的原函数;而数值计算不论被积函数有没有显式的原函数都可以计算积分,但是得到的是近似值而不是精确值。多重积分的数值计算在很多工程问题中都有很重要的应用,可以通过运用MATLAB内部命令解决工程中的实际问题,提高学生的动手能力和解决实际问题的能力,为学生以后的工作积累实践经验。

三 结束语

高等数学把基于MATLAB的数学实验课引入课堂,提高了学生学习的积极性和学习兴趣,改变了传统的教学方法,增强了应用数学知识解决实际问题的能力,提高了学习效率,有利于提高教学质量。结合高等数学教学过程遇到的二重积分计算,通过几个例子给出二重积分的计算方法。本文着重分析了MATLAB求二重积分的符号计算和数值计算两种思路的相似和不同之处,以及如何运用MATLAB内部函数实现复杂的积分计算。

参考文献

[1]同济大学数学系.高等数学(下册)[M].北京:高等教育出版社,2007

[2]王正林、刘明.精通MATLAB 7[M].北京:电子工业出版社,2006

[3]王沫然.MATLAB与科学计算(第2版)[M].北京:电子工业出版社,2003

[4]薛定宇、陈阳泉.高等数学应用问题的MATLAB求解[M].北京:清华大学出版社,2004

[5]柯善军.高等数学与应用实验[M].北京:北京航空航天大学出版社,2007

〔责任编辑:林劲〕

相关热词搜索: 积分 计算 Matlab