MATLAB
高等
数学课程
教学
中的
可视化
应用
2023 年 8 月 25 日第 7 卷 第 16 期现代信息科技Modern Information TechnologyAug.2023 Vol.7 No.161811812023.082023.08收稿日期:2023-03-07基金项目:广西高等教育本科教学改革工程一般 A 类项目(2022JGA301)MATLAB 在高等数学课程教学中的可视化应用潘金兰1,潘秋霞2,刘美杏1(1.玉林师范学院 数学与统计学院,广西 玉林 537000;2.广西民族大学,广西 南宁 530006)摘 要:高等数学是一门内容多、概念抽象、理论严密的课程,是学生学习专业课的基础。传统的教学模式主要以教师为主讲,理论学习与习题相结合,让学生在理解中掌握课程内容。文章在传统教学模式的基础上,利用MATLAB 软件在绘图上的优势,通过数据的静态和动态可视化形式,为高等数学课程搭建实验平台,把抽象的逻辑跳跃转变为具体的形象思维,为学习高等数学的学生开辟一条更有效率的捷径,提高学生实际动手能力和综合解决问题能力。关键词:MATLAB;高等数学;可视化中图分类号:TP39;G434 文献标识码:A 文章编号:2096-4706(2023)16-0181-05Visualization Application of MATLAB in Advanced Mathematics Course TeachingPAN Jinlan1,PAN Qiuxia2,LIU Meixing1(1.School of Mathematics and Statistics,Yulin Normal University,Yulin 537000,China;2.Guangxi Minzu University,Nanning 530006,China)Abstract:Advanced mathematics is a course with many contents,abstract concepts and strict theory,which is the basis for students to learn professional courses.The traditional teaching model mainly focuses on teachers and combines theoretical learning with exercises to enable students to master the course content in their understanding.On the basis of traditional teaching mode,this paper makes use of the advantages of MATLAB software in drawing,builds an experimental platform for advanced mathematics course through static and dynamic visualization of data,transforms abstract logic jump into concrete image thinking,opens up a more efficient shortcut for students learning advanced mathematics,and improves students practical ability and comprehensive problem-solving ability.Keywords:MATLAB;advanced mathematics;visualization0 引 言高等数学是一门研究空间形式和数量关系的学科1,理工科类各专业的学生,都要学习高等数学这门课程,为后继学习其他课程奠定必要的数学基础,学好高等数学这门课对学生今后的发展至关重要。对于地方高等院校的学生而言,由于数学的抽象性和严谨性,学生学习高等数学这门课程的难度较大。因此,探讨如何在教学过程中将高等数学的知识,以通俗易懂的方式进行教学,具有十分重要的现实意义。MATLAB 是一种国际公认的最优秀的数学应用软件之一,它具有算法开发、数值计算、数据分析以及数据可视化等功能,该软件的特点是简单易学、编程效率高、界面友好、功能强大、扩展性强2-4,十分利于学生的学习。将 MATLAB 软件应用于高DOI:10.19850/ki.2096-4706.2023.16.039等数学的教学中,可以很好地将理论教学、实验演示于一体,使一些抽象的概念能用可视化的图形表示出来5,6,为学生营造想象空间,培养学生的发散思维,激发学生学习的兴趣,从而提高高等数学课堂教学效果7。本文利用 MATLAB 的图形可视化功能,对图形进行静态与动态的可视化设计来介绍MATLAB在高等数学课程教学中的可视化应用。1 数据的静态可视化MATLAB 的一个强大功能就是绘图功能,可以绘制出复杂函数的图形,使得高等数学课堂教学中的抽象问题变得直观、形象8,有利于学生的理解,有助于培养学生的观察能力、应用意识和探索精神。1.1 案例 1:求函数 f(x,y)=x3-y3+3x2+3y2-9x的极值解:1)利用 diff命令求 f(x,y)关于 x,y 的偏导数:syms x y ff=x3-y3+3*x2+3*y2-9*x;现代信息科技8月下16期.indd 181现代信息科技8月下16期.indd 1812023/8/15 17:38:322023/8/15 17:38:32182182第 16 期现代信息科技2023.082023.08fx=diff(f,x)fy=diff(f,y)运行结果如下:fx=3*x2+6*x-9fy=-3*y2+6*y即 fx(x,y)=3x2+6x-9,fy(x,y)=-3y2+6y。2)利用 solve 命令求一切驻点:xi,yi=solve(fx,fy)运行结果如下:求出的驻点为(1,0),(-3,0),(1,2),(-3,2).3)求二阶偏导数:syms x y ff=x3-y3+3*x2+3*y2-9*x;A=diff(f,x,2)B=diff(fx,y)C=diff(f,y,2)运行结果如下:A=6x+6,B=0,C=-6y+64)根据极值存在的充分条件,判定驻点是否为极值点:for i=1:length(xi)x=xi(i);y=yi(i);A=6*x+6;B=0;C=6-6*y;P=A*C-B2 if P0&A0&A0 jz=极小值 fd=x3-y3+3*x2+3*y2-9*x elseif P0 jz=没有极值 endend运行结果如下:函数在点(1,0)处有极小值 f(1,0)=-5;在点(-3,0)和(1,2)处没有极值;在点(-3,2)处有极大值 f(-3,2)=31。为了能更直观地感受函数在点(1,0)处有极小值,在点(-3,2)处有极大值,而在点(-3,0)和(1,2)处没有极值,接下来,利用 MATLAB 绘制该空间曲面图。5)利用 MATLAB 实现可视化:figure()ezmesh(f)xlabel(x 轴);ylabel(y 轴);zlabel(z 轴);text(1,0,-5,bullet,color,r);text(-3,2,31,bullet,color,r);text(-3,0,27,bullet,color,r);text(1,2,-1,bullet,color,r);text(1,0,-5,(1,0,-5);text(-3,2,31,(-3,2,31);text(-3,0,27,(-3,0,27);text(1,2,-1,(1,2,-1);绘制的图形如图 1 所示。(?,?,-?)(-?,?,?)(?,?,-?)-?-?x?x?x?y?y?(-?,?,?)?-?-?-?-?-?-?y?x?z?图 1 二元函数的极值从图 1 可以很直观地看出,函数在点(1,0)处有极小值-5,在点(-3,2)处有极大值 31,而在点(-3,0)和(1,2)处没有极值。1.2 案例 2:求两个底圆半径都等于 1 的直交圆柱面所围成的立体的体积解:设这两个圆柱面的方程分别为 x2+y2=1 及x2+z2=11)对两个圆柱面直交图形进行可视化:m=60;z=(-m:2:m)/m;r=ones(size(z);theta=(0:m)/m*2*pi;x1=r*cos(theta);y1=r*sin(theta);z1=z*ones(1,m+1);x=(-m:2:m)/m;x2=x*ones(1,m+1);y2=r*cos(theta);z2=r*sin(theta);surf(x1,y1,z1)axis equalhold onsurf(x2,y2,z2)axis equalxlabel(x 轴);ylabel(y 轴);zlabel(z 轴)view(137,17)hold off绘制的图形如图 2 所示。现代信息科技8月下16期.indd 182现代信息科技8月下16期.indd 1822023/8/15 17:38:322023/8/15 17:38:321831832023.082023.08第 16 期1.00.50-0.5-1.0z 轴y 轴x 轴-1011.00.50-0.5-1.0图 2 两个圆柱体的相交图形从图 2 看到两个底圆半径都等于 1 的直交圆柱面所围成的立体图形形状,然后可以快速判断出该立体图形是关于坐标平面对称的,要求该立体图形的体积,只要求出它在第一卦限部分(图 3)的体积 V1,然后乘 8 就可以了。z 轴y 轴x 轴001.0 1.00.50.51.00.80.60.40.20图 3 两个圆柱体相交的第一卦限部分2)绘制第一卦限图形:利用 MATLAB 绘制第一卦限部分的图形,只需将上述绘制两个圆柱体的相交图形的部分代码做一下变动即可:z=(0:m)/m;x1=r*abs(cos(theta);y1=r*abs(sin(theta);x=(0:m)/m;y2=r*abs(cos(theta);z2=r*abs(sin(theta);绘制的图形如图 3 所示。3)判断积分区域:所求立体在第一卦限部分可以看成是一个曲顶柱体,它的底为如图 4 所示。绘制积分区域 D 的代码如下:x=0:0.01:1;y=sqrt(1-x.2);plot(x,y)area(x,y,facecolor,0.5,0.5,0.5)xlabel(x 轴);ylabel(y 轴);text(0.4,0.4,D)text(0.75,0.7,y=sqrt(1-x2)它的顶是柱面。于是:y轴x轴00.20.40.60.81.000.20.40.60.81.0Dy=sqrt(1x2)图 4 积分区域4)求立体的体积。接下来,用 MATLAB 计算二重积分 V1的值,进而计算出所求立体的体积:syms x yf1=sqrt(1-x2);V1=int(int(f1,y,0,sqrt(1-x2),x,0,1)V=8*V1运算结果如下:所求立体在第一卦限部分的体积为 V1=2/3从而所求立体的体积为 V=16/3。2 数据的动态可视化在高等数学授课过程中,结合 MATLAB 生成的动画演示,可以让学生产生视觉冲击,以加深对数学概念的理解9。案例 3:两个重要极限两个重要极限是高等数学的一个重要内容,学习这两个重要极限(sin x/x)=1,(1+1/x)x=e时,同学们理解起来有一定的难度,那么可以借助MATLAB 编程计算和绘图,辅助概念的理解10。MATLAB 软件编程如下:1)计算两个重要极限的值:syms xf1=sin(x)/x;f2=(1+1/x)x;z1=limit(f1,x,0)z2=limit(f2,x,inf)潘金兰,等:MATLAB 在高等数学课程教学中的