潘金兰 潘秋霞 刘美杏
摘 要:高等数学是一门内容多、概念抽象、理论严密的课程,是学生学习专业课的基础。传统的教学模式主要以教师为主讲,理论学习与习题相结合,让学生在理解中掌握课程内容。文章在传统教学模式的基础上,利用MATLAB软件在绘图上的优势,通过数据的静态和动态可视化形式,为高等数学课程搭建实验平台,把抽象的逻辑跳跃转变为具体的形象思维,为学习高等数学的学生开辟一条更有效率的捷徑,提高学生实际动手能力和综合解决问题能力。
关键词:MATLAB;高等数学;可视化
中图分类号:TP39;G434 文献标识码:A 文章编号:2096-4706(2023)16-0181-05
Visualization Application of MATLAB in Advanced Mathematics Course Teaching
PAN 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; visualization
0 引 言
高等数学是一门研究空间形式和数量关系的学科[1],理工科类各专业的学生,都要学习高等数学这门课程,为后继学习其他课程奠定必要的数学基础,学好高等数学这门课对学生今后的发展至关重要。对于地方高等院校的学生而言,由于数学的抽象性和严谨性,学生学习高等数学这门课程的难度较大。因此,探讨如何在教学过程中将高等数学的知识,以通俗易懂的方式进行教学,具有十分重要的现实意义。
MATLAB是一种国际公认的最优秀的数学应用软件之一,它具有算法开发、数值计算、数据分析以及数据可视化等功能,该软件的特点是简单易学、编程效率高、界面友好、功能强大、扩展性强[2-4],十分利于学生的学习。将MATLAB软件应用于高等数学的教学中,可以很好地将理论教学、实验演示于一体,使一些抽象的概念能用可视化的图形表示出来[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 f
f = x^3-y^3+3*x^2+3*y^2-9*x;
fx = diff(f,x)
fy = diff(f,y)
运行结果如下:
fx = 3*x^2 + 6*x - 9
fy = - 3*y^2 + 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 f
f = x^3-y^3+3*x^2+3*y^2-9*x;
A = diff(f,x,2)
B = diff(fx,y)
C = diff(f,y,2)
運行结果如下:
A = 6x + 6,B = 0,C = -6y + 6
4)根据极值存在的充分条件,判定驻点是否为极值点:
for i=1:length(xi)
x=xi(i);y=yi(i);
A = 6*x + 6;B =0;C = 6-6*y;
P = A*C-B^2
if P>0 & A<0
jz = '极大值'
fd = x^3-y^3+3*x^2+3*y^2-9*x
elseif P>0 & A>0
jz = '极小值'
fd = x^3-y^3+3*x^2+3*y^2-9*x
elseif P<0
jz = '没有极值'
end
end
运行结果如下:
函数在点(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所示。
从图1可以很直观地看出,函数在点(1, 0)处有极小值-5,在点(-3, 2)处有极大值31,而在点(-3, 0)和(1, 2)处没有极值。
1.2 案例2:求两个底圆半径都等于1的直交圆柱面所围成的立体的体积
解:设这两个圆柱面的方程分别为x2 + y2 = 1及x2 + z2 = 1
1)对两个圆柱面直交图形进行可视化:
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 equal
hold on
surf(x2,y2,z2)
axis equal
xlabel('x轴'); ylabel('y轴'); zlabel('z轴')
view(137,17)
hold off
绘制的图形如图2所示。
从图2看到两个底圆半径都等于1的直交圆柱面所围成的立体图形形状,然后可以快速判断出该立体图形是关于坐标平面对称的,要求该立体图形的体积,只要求出它在第一卦限部分(图3)的体积V1,然后乘8就可以了。
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-x^2)')
它的顶是柱面 。于是:
图4 积分区域
4)求立体的体积。接下来,用MATLAB计算二重积分V1的值,进而计算出所求立体的体积:
syms x y
f1='sqrt(1-x^2)';
V1=int(int(f1,y,0,sqrt(1-x^2)),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 x
f1=sin(x)/x; f2=(1+1/x)^x;
z1=limit(f1,x,0)
z2=limit(f2,x,inf)
运行结果如下:
z1 = 1
z2 = exp(1)
计算结果与两个重要极限的结果一致。
2)绘制第一个重要极限动态图:
axis([-5,5,-0.4,1.2])
grid on; hold on; xlabel('x轴'); ylabel('y轴') ;
for x1= -5:0.02:0
y1=sin(x1)./x1;
plot(x1,y1,'b.')
pause(0.1)
end
hold on
plot(0,1,'r*')
for x2=5:-0.02:0
y2=sin(x2)./x2;
plot(x2,y2,'b.')
pause(0.1)
end
运行结果图如图5所示。
从图5的动态图可以很形象地看出,当x从0的左边无限接近于0时,sin x / x无限接近于1;当x从0的右边无限接近于0时,sin x / x也是无限接近于1。这与输出结果当x→0时,sin x / x的极限为1相符。
3)绘制第二个重要极限动态图:
axis([-200,200,2,4])
plot(xlim,[exp(1),exp(1)],'r--')
grid on;hold on;xlabel('x轴');ylabel('y轴');
for x3=-2:-1:-200
y3=(1+1/x3)^x3;
plot(x3,y3,'b.')
pause(0.1)
end
hold on
for x4=1:200
y4=(1+1/x4)^x4;
plot(x4,y4,'b.')
pause(0.1)
end
运行结果图如图6所示。
从图6的动态图可以很形象地看出,当x取实数而趋于+∞或-∞时,函数(1 + 1 / x)x都无限接近e。这与输出结果当x→∞时,(1 + 1 / x)x的极限为e相符。
3 结 论
在高等数学课程教学中,传统的教学较为注重理论性,学生对抽象的知识不易理解,空间想象力较为薄弱。基于MATLAB软件的可视化功能,对图形进行静态与动态的可视化设计,帮助高等数学课程教学,提高课堂效率,营造学生的想象空间,培养学生的发散思维、数学观察能力和分析能力,加深对知识的理解与掌握。
参考文献:
[1] 同济大学数学系.高等数学:第7版 [M].北京:高等教育出版社,2014.
[2] 薛长虹,于凯.MATLAB数学实验 [M].成都:西南交通大学出版社,2014.
[3] 段琪.MATLAB在高等数学教学中的应用 [J].智库时代,2019(36):186+195.
[4] 杨雯抒,黄可坤.基于Matlab的高等数学问题的实验教学 [J].教育教学论坛,2017(17):279-280.
[5] 王祝园,王娟.Matlab在高等数学课程教学中的应用 [J].长春大学学报,2021,31(6):95-101.
[6] 张凤,郭洪杰,刘强.MATLAB在高等数学教学中的可视化应用 [J].科技风,2022(15):109-112.
[7] 马国栋,简金宝,江羡珍.基于MATLAB提高高等数学教学效果研究 [J].玉林师范学院学报,2014,35(2):28-30.
[8] 卫军超,丁嘉昕,常在斌.MATLAB软件与高等数学课程深度融合 [J].科技与创新,2019(7):5-7.
[9] 马小霞.基于MATLAB的《高等数学》可视化教学研究 [J].焦作大学学报,2019,33(1):96-97.
[10] 徐亞娟.基于MATLAB的高职高等数学教学研究与实践 [J].海峡科技与产业,2017(12):164-165+168.
作者简介:潘金兰(1991—),女,汉族,广西贺州人,助教,硕士研究生,研究方向:优化建模、自然灾害风险分析;通讯作者:潘秋霞(1989—),女,汉族,广西贺州人,科员,硕士研究生,研究方向:机器学习、大数据、计算机应用;刘美杏(1987—),女,汉族,广西玉林人,讲师,博士研究生,研究方向:最优化理论与方法。