Matlab在多元函数积分计算中的应用研究

2017-09-09 00:10杨真真
软件导刊 2017年8期

杨真真

摘 要:Matlab作为目前使用最为广泛的科学计算类软件之一,被广泛应用于工程计算、控制设计等诸多领域。针对多元积分学中的重积分、曲线积分和曲面积分计算等问题,在多元函数积分运算教学中利用Matlab进行辅助教学,以激发学生学习兴趣,加深其对所学知识的理解,提高教学效果。

关键词:三重积分;曲线积分;曲面积分;Matlab;多元函数

DOIDOI:10.11907/rjdk.171983

中图分类号:TP319

文献标识码:A 文章编号文章编号:1672-7800(2017)008-0149-04

0 引言

随着“互联网+”和大数据技术的蓬勃发展,当今社会已进入全民信息时代[1],传统的“粉笔—黑板”式的教学已不再适应时代发展。高等数学教学也在教授学生基本知识的同时,引入Matlab进行辅助教学[2-5]。在高等数学教学中,多元函数积分学是高等数学的重点和难点,它涉及的概念、性质和公式十分复杂,包括重积分、曲线积分和曲面积分3大部分内容[6-8],学生往往把握不住重点,有些内容难以区分,计算时更是无从下手。因此,如何激发学生学习兴趣,提高教学效果,成为高校教授高等数学课程教师关注的重点。

众所周知,多元函数积分计算的总体思想是转化为定积分进行计算,例如将重积分转化为累次积分,将曲线积分根据曲线方程转化为定积分,然后将曲面积分根据曲面方程转化为重积分,进而再转化为定积分。在多元函数积分的具体计算中,要想快速顺利地计算出正确结果,除了掌握定积分转化思想外,还要注意换元法、格林公式、高斯公式和斯托克斯公式等的合理运用。

为了提高教学效果,激发学生学习兴趣,本文在多元函数积分学的重积分、曲线积分和曲面积分的计算教学中利用Matlab进行辅助教学,以加深学生对多元函数积分学计算方法的理解。在高等数学教学中,利用Matlab进行辅助教学,不仅给学生提供了一个快速有效的计算结果检验工具,让其看到数学理论不是那么枯燥无味,还可以使用数学软件进行处理,而且让其认识到Matlab的强大功能,为后期学生进行数学实验、参加数学建模竞赛打下基础。

1 利用Matlab进行三重积分计算

三重积分是高等数学教学中的难点和重点,计算三重积分的方法是将其转化为累次积分。三重积分的计算方法分为直角坐标系下三重积分的计算方法、柱面坐标系下三重积分的计算方法和球面坐标系下三重积分的计算方法,其中直角坐标系下三重积分的计算方法又分为“投影法”和“截面法”[9-10]。“投影法”是先对某一变量进行积分,然后对其余两个变量的二重积分进行计算。如果三重积分的被积函数是一元函数,或某两个变量的二重积分容易积出时,采用“截面法”更为简单。

三重积分的计算由于方法和形式多样,学生学习过程中很难区分各种计算方法。此外,由于三重积分的积分区域是立体图形,部分学生的空间想象力不是很好,将给三重积分的计算带来很大困难。因此,在三重积分计算中采用Matlab进行辅助教学,让学生在熟悉三重积分计算方法的同时,能够对积分区域进行可视化,从而使学生领略到Matlab的魅力,激发其学习兴趣。下面通过例题1介绍采用Matlab求给定函数在给定区域的三重积分。

例1 计算三重积分I=Ωzdxdydz,其中Ω由曲面z=x2+y2,z=1,z=2所围成。首先用Matlab画出积分区域Ω:z=x2+y2,z=1,z=2的立体图形,让学生对曲面Ω有个可视化的认识,其程序代码如下,积分区域图形如图1所示。x=-1.2:0.01:1.2; y=x; [X,Y]=meshgrid(x,y); Z1=X.∧2+Y.∧2; mesh(X,Y,Z1); hold on Z2=ones(size(X)); mesh(X,Y,Z2); hold on Z3=2* ones(size(X));mesh(X,Y,Z3); hold off xlabel(′x轴′); ylabel(′y轴′);zlabel(′z轴′);

解法一:在直角坐标系下先将三重积分转化为累次积分:I=Ωzdxdydz=4[∫20dx ∫2-x20dy ∫2x2+y2zdz -∫10dx ∫1-x20dy ∫1x2+y2zdz ]其程序代码如下:syms x y z; I1=int(int(int(z,z,x∧2+y∧2,2),y,0,sqrt(2-x∧2)),x,0,sqrt(2)); I2=int(int(int(z,z,x∧2+y∧2,1),y,0,sqrt(1-x∧2)),x,0,1); I=4*(I1-I2)其输出为:I =(7*pi)/3。解法二:在柱面坐标系下有:I=Ωzdxdydz=∫2π0dθ ∫20dr ∫2r2rzdz -∫2π0dθ ∫10dr ∫1r2rzdz 其程序代码如下:syms r theta z; I1=int(int(int(r*z,z,r∧2,2),r,0,sqrt(2)),theta,0,2*pi);I2=int(int(int(r*z,z, r∧2,1),r,0,1),theta,0,2*pi); I=I1-I2其输出为:I =(7*pi)/3。因此,I=Ωzdxdydz=7π3。

2 利用Matlab计算曲线积分

曲线积分分为第一类曲线积分和第二类曲线积分,其计算思想都是将曲线积分根据曲线方程转化为定积分[11-12]。第一类曲线积分的计算主要通过积分路径曲线的参数方程,将其转化为定积分。其中,选择合适的积分路径曲线参数方程是解题的关键。第一类曲线积分的积分路径和方向无关,转化为定积分时,积分下限总小于积分上限;第二类曲线积分的计算稍为复杂,分为直接计算和间接计算两类计算方法。直接计算法,也即通过积分路径的参数方程将第二类曲线积分转化为定积分进行计算,因为第二类曲线积分和积分路径的方向有关,转化成的定积分下限对应积分路径曲线的起点,上限对应积分路径曲线的终点。间接计算主要指利用两类曲线积分的联系以及格林公式来计算第二类曲线积分。下面分别通过例2、例3介绍在曲线积分的计算中引入Matlab进行辅助教学。例2 求曲线积分I=∮L(x2+y2)ds,其中曲线L为x2+y2=2x在第一象限的部分。解:設曲线L的参数方程为x=1+cost,y=sint (0≤t≤2π),则dx=-sintdt,dy=costdt,ds=dx2+dy2=sin2t+cos2tdt=dt,于是:∮L(x2+y2)ds=∮L2xds=∫2π02(1+cost)dt =4π现用Matlab验证计算结果的正确性,其程序代码如下:endprint

syms t; x=(1+cos(t)); y=sin(t); dx=diff(x,t); dy=diff(y,t); ds=sqrt(dx∧2+dy∧2); f=x∧2+y∧2; I=int(f*ds,t,0,2*pi)输出为:I =4*pi。例3 求曲线积分I=∮L(x-y)dx+(x+y)dyx2+y2,其中曲线L为圆周x2+y2=a2按逆时针方向绕行。解:设曲线L的参数方程为x=acost,y=asint,t为0~2π,dx=-asintdt,dy=acostdt,因此有:I=∮L(x-y)dx+(x+y)dyx2+y2=∫2π0a(cost-sint)·(-asint)+a(cost+sint)·acosta2dt =∫2π0dt =2π现用Matlab验证计算结果的正确性,其程序代码如下:

syms a t; x = a*cos(t); y = a*sin(t); f =[(x-y)/(x∧2+y∧2),(x+y)/(x∧2+y∧2)];ds =[diff(x,t); diff(y,t)]; I = int(f*ds,t,0,2*pi)其输出为:I =2*pi。

3 利用Matlab计算曲面积分

曲面积分分为第一类曲面积分和第二类曲面积分,其计算思想都是将曲面积分根据曲面方程转化为二重积分[13-15]。第一类曲面积分的计算主要通过曲面在适当坐标平面的投影转化为二重积分进行计算,选择合适的坐标平面投影是解题关键,注意投影面积不能为零;第二类曲面积分的计算分为直接计算和间接计算两种,其中直接计算是指通过积分曲面向坐标平面投影将第二类曲面积分转化为二重积分进行计算,投影方向是固定的,投影面积可以为零。由于第二类曲面积分的积分曲面是有方向的,一定要注意积分曲面的侧面,从而确定二重积分相应的符号。间接计算主要指利用两类曲面积分的联系以及高斯公式来计算第二类曲面积分。下面分别通过例4、例5介绍在曲面积分的计算中引入Matlab进行辅助教学。例4 计算曲面积分I=ΣdSz,其中Σ是球面x2+y2+z2=4被平面z=1截出的顶部。首先用Matlab画出积分区域Σ,其程序代码和积分区域的图形如下所示:x1=-2:0.01:2; y1=x1; [X1,Y1]=meshgrid(x1,y1); Z1= ones(size(X1)); mesh(X1,Y1,Z1); hold ont=linspace(0,pi,25);p=linspace(0,2*pi,25); [theta,phi]=meshgrid(t,p); x=2*sin(theta).*sin(phi);y=2*sin(theta).*cos(phi); z=2*cos(theta); surf(x,y,z); xlabel(′x轴′);ylabel(′y轴′);zlabel(′z轴′);

解:Σ的方程为z=4-x2-y2,投影区域为Dxy:x2+y2≤3,故有:dS=1+z2x+z2y=24-x2-y2dxdy于是有:I=ΣdSz=Dxy24-x2-y2dxdy=Dxy2r4-r2drdθ=2∫2π0dθ ∫30r4-r2dr .其程序代码如下:syms r theta; I= int(int(2*r/(4-r∧2),r, 0,sqrt(3)),theta,0,2*pi)

其输出为:I=4*pi*log(2)。因此,I=ΣdSz=4πln2。

例5 计算曲面积分Σx2y2zdxdy,其中Σ为半球面z=1-x2-y2的上侧。首先用Matlab画出积分区域Σ,其程序代码和积分区域的图形如下:t=linspace(0,pi/2,25);p=linspace(0,2*pi,25); [theta,phi]=meshgrid(t,p); x=sin(theta).*sin(phi); y=sin(theta).*cos(phi); z=cos(theta); surf(x,y,z); xlabel(′x轴′);ylabel(′y轴′);zlabel(′z轴′);

解法一:在直角坐标系下有:Σx2y2zdxdy=Dxyx2y21-x2-y2dxdy=∫1-1dx ∫1-x2-1-x2x2y21-x2-y2 dy其程序代码如下:syms x y; z=sqrt(1-x.∧2-y.∧2); I=int(int(x∧2*y∧2*z,y,-sqrt(1-x∧2),sqrt(1-x∧2)),x,-1,1)其输出为:I =(2*pi)/105。解法二:在极坐标系下有Σx2y2zdxdy=Dxyx2y21-x2-y2dxdy=∫2π0dθ ∫1-1r2cos2θr2sin2θ1-r2 rdr =∫2π0dθ ∫10r51-r2cos2θsin2θ dr其程序代码如下:syms r theta; I= int(int(r∧5*sqrt(1-r∧2)*(cos(theta))∧2*( sin(theta))∧2,r, 0,1),theta,0,2*pi)其输出为:I =(2*pi)/105。因此,Σx2y2zdxdy=2π105。

4 结语

本文将Matlab 应用到多元函数积分包括三重积分、曲线积分和曲面积分的计算中,不仅给学生提供了一个检验计算结果正确性的方法,而且让积分区域图形可视化,激发了学生的学习兴趣,达到了更好的教学效果。此外,在多元函数积分学的教学中使用Matlab进行辅助教学,还能培养学生使用软件进行数学计算的能力,为学生后续参加数学建模竞赛等奠定基础。

参考文献:

[1] 覃庆国,杨亚培,蒋宁,等.依托学科优势构建电子信息类创新人才培养体系[J].电子科技大学学报:社会科学版, 2010, 12(5):103-106.

[2] 唐春明,王中兴.Matlab软件在高等数学教学中的应用[J].高等数学研究, 2016, 19(1):120-123.

[3] 李永芳.基于MATLAB软件的高等数学实验教学[J].高教学刊, 2017(6):79-80.

[4] 尹云辉. MATLAB在高等数学教学中的应用[J].軟件导刊, 2011, 10(5):173-174.

[5] 王秋亮.关于MATLAB在高等数学教学中的应用分析[J].软件导刊:教育技术, 2016, 15(3):3-5.

[6] 赵洪牛,等.高等数学(下) [M].北京:高等教育出版社,2010:58-170.

[7] 同济大学应用数学系.高等数学(上) [M].第7版.北京:高等教育出版社,2014.

[8] 南京邮电大学高等数学教研室.高等数学同步学习指导[M].北京:高等教育出版社,2013:231-295.

[9] 张辉,李应岐,陈春梅.三重积分的计算方法[J].课程教育研究:学法教法研究, 2016(3):233-234.

[10] 仇海全,潘花.MATLAB在重积分计算中的应用[J].重庆工商大学学报:自然科学版, 2012, 29(4):50-54.

[11] 张辉,李应岐,敬斌,等.第一类曲线积分的计算方法[J].高等数学研究, 2015, 18(2):27-29.

[12] 景慧丽,赵伟舟,杨宝珍,等.第二类平面曲线积分的计算探讨[J].兰州文理学院学报:自然科学版, 2012, 26(6):99-102.

[13] 张辉,李应岐,赵伟舟,等.第一类曲面积分的计算方法[J].高等数学研究, 2014(2):44-46.

[14] 杨雯靖.第二类曲面积分的计算方法探讨[J].数学学习与研究, 2015(17):93-94.

[15] 魏光美,冯伟杰.第二类曲面积分的计算方法[J].高等数学研究, 2012, 15(4):104-106.endprint