潘金蘭 潘秋霞 劉美杏
摘 ?要:高等數(shù)學(xué)是一門內(nèi)容多、概念抽象、理論嚴(yán)密的課程,是學(xué)生學(xué)習(xí)專業(yè)課的基礎(chǔ)。傳統(tǒng)的教學(xué)模式主要以教師為主講,理論學(xué)習(xí)與習(xí)題相結(jié)合,讓學(xué)生在理解中掌握課程內(nèi)容。文章在傳統(tǒng)教學(xué)模式的基礎(chǔ)上,利用MATLAB軟件在繪圖上的優(yōu)勢,通過數(shù)據(jù)的靜態(tài)和動態(tài)可視化形式,為高等數(shù)學(xué)課程搭建實驗平臺,把抽象的邏輯跳躍轉(zhuǎn)變?yōu)榫唧w的形象思維,為學(xué)習(xí)高等數(shù)學(xué)的學(xué)生開辟一條更有效率的捷徑,提高學(xué)生實際動手能力和綜合解決問題能力。
關(guān)鍵詞:MATLAB;高等數(shù)學(xué);可視化
中圖分類號:TP39;G434 ? 文獻(xiàn)標(biāo)識碼: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 ?引 ?言
高等數(shù)學(xué)是一門研究空間形式和數(shù)量關(guān)系的學(xué)科[1],理工科類各專業(yè)的學(xué)生,都要學(xué)習(xí)高等數(shù)學(xué)這門課程,為后繼學(xué)習(xí)其他課程奠定必要的數(shù)學(xué)基礎(chǔ),學(xué)好高等數(shù)學(xué)這門課對學(xué)生今后的發(fā)展至關(guān)重要。對于地方高等院校的學(xué)生而言,由于數(shù)學(xué)的抽象性和嚴(yán)謹(jǐn)性,學(xué)生學(xué)習(xí)高等數(shù)學(xué)這門課程的難度較大。因此,探討如何在教學(xué)過程中將高等數(shù)學(xué)的知識,以通俗易懂的方式進(jìn)行教學(xué),具有十分重要的現(xiàn)實意義。
MATLAB是一種國際公認(rèn)的最優(yōu)秀的數(shù)學(xué)應(yīng)用軟件之一,它具有算法開發(fā)、數(shù)值計算、數(shù)據(jù)分析以及數(shù)據(jù)可視化等功能,該軟件的特點是簡單易學(xué)、編程效率高、界面友好、功能強(qiáng)大、擴(kuò)展性強(qiáng)[2-4],十分利于學(xué)生的學(xué)習(xí)。將MATLAB軟件應(yīng)用于高等數(shù)學(xué)的教學(xué)中,可以很好地將理論教學(xué)、實驗演示于一體,使一些抽象的概念能用可視化的圖形表示出來[5,6],為學(xué)生營造想象空間,培養(yǎng)學(xué)生的發(fā)散思維,激發(fā)學(xué)生學(xué)習(xí)的興趣,從而提高高等數(shù)學(xué)課堂教學(xué)效果[7]。本文利用MATLAB的圖形可視化功能,對圖形進(jìn)行靜態(tài)與動態(tài)的可視化設(shè)計來介紹MATLAB在高等數(shù)學(xué)課程教學(xué)中的可視化應(yīng)用。
1 ?數(shù)據(jù)的靜態(tài)可視化
MATLAB的一個強(qiáng)大功能就是繪圖功能,可以繪制出復(fù)雜函數(shù)的圖形,使得高等數(shù)學(xué)課堂教學(xué)中的抽象問題變得直觀、形象[8],有利于學(xué)生的理解,有助于培養(yǎng)學(xué)生的觀察能力、應(yīng)用意識和探索精神。
1.1 ?案例1:求函數(shù)f (x,y) = x3 - y3 + 3x2 + 3y2 - 9x的極值
解:1)利用diff命令求f (x,y)關(guān)于x,y的偏導(dǎo)數(shù):
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)
運行結(jié)果如下:
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)
運行結(jié)果如下:
求出的駐點為(1 , 0),(-3 , 0),(1 , 2),(-3 , 2).
3)求二階偏導(dǎo)數(shù):
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)
運行結(jié)果如下:
A = 6x + 6,B = 0,C = -6y + 6
4)根據(jù)極值存在的充分條件,判定駐點是否為極值點:
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
運行結(jié)果如下:
函數(shù)在點(1 , 0)處有極小值f (1, 0) = -5;在點(-3, 0)和(1, 2)處沒有極值;在點(-3, 2)處有極大值 f (-3, 2) = 31。
為了能更直觀地感受函數(shù)在點(1, 0)處有極小值,在點(-3, 2)處有極大值,而在點(-3, 0)和(1, 2)處沒有極值,接下來,利用MATLAB繪制該空間曲面圖。
5)利用MATLAB實現(xiàn)可視化:
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可以很直觀地看出,函數(shù)在點(1, 0)處有極小值-5,在點(-3, 2)處有極大值31,而在點(-3, 0)和(1, 2)處沒有極值。
1.2 ?案例2:求兩個底圓半徑都等于1的直交圓柱面所圍成的立體的體積
解:設(shè)這兩個圓柱面的方程分別為x2 + y2 = 1及x2 + z2 = 1
1)對兩個圓柱面直交圖形進(jìn)行可視化:
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的直交圓柱面所圍成的立體圖形形狀,然后可以快速判斷出該立體圖形是關(guān)于坐標(biāo)平面對稱的,要求該立體圖形的體積,只要求出它在第一卦限部分(圖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)判斷積分區(qū)域:
所求立體在第一卦限部分可以看成是一個曲頂柱體,它的底為
如圖4所示。繪制積分區(qū)域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 ?積分區(qū)域
4)求立體的體積。接下來,用MATLAB計算二重積分V1的值,進(jìn)而計算出所求立體的體積:
syms x y
f1='sqrt(1-x^2)';
V1=int(int(f1,y,0,sqrt(1-x^2)),x,0,1)
V=8*V1
運算結(jié)果如下:
所求立體在第一卦限部分的體積為V1 = 2 / 3
從而所求立體的體積為V = 16 / 3。
2 ?數(shù)據(jù)的動態(tài)可視化
在高等數(shù)學(xué)授課過程中,結(jié)合MATLAB生成的動畫演示,可以讓學(xué)生產(chǎn)生視覺沖擊,以加深對數(shù)學(xué)概念的理解[9]。
案例3:兩個重要極限
兩個重要極限是高等數(shù)學(xué)的一個重要內(nèi)容,學(xué)習(xí)這兩個重要極限 (sin x / x) = 1,(1 + 1 / x)x = e時,同學(xué)們理解起來有一定的難度,那么可以借助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)
運行結(jié)果如下:
z1 = 1
z2 = exp(1)
計算結(jié)果與兩個重要極限的結(jié)果一致。
2)繪制第一個重要極限動態(tài)圖:
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
運行結(jié)果圖如圖5所示。
從圖5的動態(tài)圖可以很形象地看出,當(dāng)x從0的左邊無限接近于0時,sin x / x無限接近于1;當(dāng)x從0的右邊無限接近于0時,sin x / x也是無限接近于1。這與輸出結(jié)果當(dāng)x→0時,sin x / x的極限為1相符。
3)繪制第二個重要極限動態(tài)圖:
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
運行結(jié)果圖如圖6所示。
從圖6的動態(tài)圖可以很形象地看出,當(dāng)x取實數(shù)而趨于+∞或-∞時,函數(shù)(1 + 1 / x)x都無限接近e。這與輸出結(jié)果當(dāng)x→∞時,(1 + 1 / x)x的極限為e相符。
3 ?結(jié) ?論
在高等數(shù)學(xué)課程教學(xué)中,傳統(tǒng)的教學(xué)較為注重理論性,學(xué)生對抽象的知識不易理解,空間想象力較為薄弱。基于MATLAB軟件的可視化功能,對圖形進(jìn)行靜態(tài)與動態(tài)的可視化設(shè)計,幫助高等數(shù)學(xué)課程教學(xué),提高課堂效率,營造學(xué)生的想象空間,培養(yǎng)學(xué)生的發(fā)散思維、數(shù)學(xué)觀察能力和分析能力,加深對知識的理解與掌握。
參考文獻(xiàn):
[1] 同濟(jì)大學(xué)數(shù)學(xué)系.高等數(shù)學(xué):第7版 [M].北京:高等教育出版社,2014.
[2] 薛長虹,于凱.MATLAB數(shù)學(xué)實驗 [M].成都:西南交通大學(xué)出版社,2014.
[3] 段琪.MATLAB在高等數(shù)學(xué)教學(xué)中的應(yīng)用 [J].智庫時代,2019(36):186+195.
[4] 楊雯抒,黃可坤.基于Matlab的高等數(shù)學(xué)問題的實驗教學(xué) [J].教育教學(xué)論壇,2017(17):279-280.
[5] 王祝園,王娟.Matlab在高等數(shù)學(xué)課程教學(xué)中的應(yīng)用 [J].長春大學(xué)學(xué)報,2021,31(6):95-101.
[6] 張鳳,郭洪杰,劉強(qiáng).MATLAB在高等數(shù)學(xué)教學(xué)中的可視化應(yīng)用 [J].科技風(fēng),2022(15):109-112.
[7] 馬國棟,簡金寶,江羨珍.基于MATLAB提高高等數(shù)學(xué)教學(xué)效果研究 [J].玉林師范學(xué)院學(xué)報,2014,35(2):28-30.
[8] 衛(wèi)軍超,丁嘉昕,常在斌.MATLAB軟件與高等數(shù)學(xué)課程深度融合 [J].科技與創(chuàng)新,2019(7):5-7.
[9] 馬小霞.基于MATLAB的《高等數(shù)學(xué)》可視化教學(xué)研究 [J].焦作大學(xué)學(xué)報,2019,33(1):96-97.
[10] 徐亞娟.基于MATLAB的高職高等數(shù)學(xué)教學(xué)研究與實踐 [J].海峽科技與產(chǎn)業(yè),2017(12):164-165+168.
作者簡介:潘金蘭(1991—),女,漢族,廣西賀州人,助教,碩士研究生,研究方向:優(yōu)化建模、自然災(zāi)害風(fēng)險分析;通訊作者:潘秋霞(1989—),女,漢族,廣西賀州人,科員,碩士研究生,研究方向:機(jī)器學(xué)習(xí)、大數(shù)據(jù)、計算機(jī)應(yīng)用;劉美杏(1987—),女,漢族,廣西玉林人,講師,博士研究生,研究方向:最優(yōu)化理論與方法。