宋妮+王鵬+閆春苗
【摘要】本文通過具體例子分析了在高等數學課堂上引入數值計算的必要性,突出了Matlab在圖像處理、數值計算等方面的優勢和特點,其直觀性、趣味性和簡便性進一步提升了學生對高等數學的興趣和創新能力,對傳統方式的教學是非常有效的輔助手段.
【關鍵詞】Matlab;圖像處理;數值計算
【基金項目】中北大學理學院教改項目.
高等數學是高校理工科學生的基礎課程和工具課程之一,絕大部分高校采取的基本是以教師為中心的教學模式,由教師通過講授和板書,把教學內容傳授給學生.在整個教學過程中,教師是主宰,學生則處于被動接受教師灌輸知識的地位,互動性較差或者基本不互動,學生對有些內容感到抽象、枯燥且難以理解,從而導致了學生的積極性下降.這就要求教師改變傳統的教學模式,引入新的教學手段激發學生的興趣,使復雜問題簡單化、抽象問題具體化,真正實現課堂上的互動.
如今,數學軟件的發展已非常成熟,國外大量課程都已采用數學軟件來進行分析和計算,而國內的普及程度則不是很高.在科技快速發展的今天,高等數學課程不僅要培養學生的抽象思維能力、邏輯推理能力、空間想象能力、基本運算能力,還應注重培養學生的數學建模能力與數值計算能力(包括數據處理能力),學會用數學方法初步解決實際問題,會用計算機進行一定的科學計算.因此,將數值計算引入高等數學課程就顯得尤為重要,學生在課堂上通過對數值計算的認識、熟悉、使用,進一步達到理論和實踐相統一.
本文將借助于數學軟件,對高等數學中的某些抽象理論進行數值計算與可視化,加強學生對抽象理論的理解以及對數學軟件的使用,從而增強師生之間的互動性,提高學生的學習興趣.
一、圖像——抽象問題具體化
圖像是Matlab中一個很重要的功能,而在高等數學中,多元函數的圖形大多抽象,不容易給出,例如,不能顯化的隱函數、二維圖形的極坐標圖形、參數方程圖形,三維圖形、三維圖形的變化及多個三維圖形的相互關系等,給教與學帶來不便.若調用Matlab中繪圖函數來完成各類圖形的繪制,使得抽象思維變得直觀具體,更便于學生理解和接受.
求導計算中有兩類很重要的函數,一類是冪指函數,利用對數求導法或等價變形對其求導數;另一類是隱函數,利用復合函數求導法則進行計算,但對于這兩類函數的圖像,我們研究的很少或基本不研究,原因之一在于這兩類函數無法用基本初等函數的圖像去表示,而數值計算很好地解決了這一問題.
例1 作冪指函數y=xsinx(x>0)的圖像.
解 在Matlab中調用命令:
x=1:0.1:25;y=x^sin(x);plot(x,y);
xlabel(′x′);ylabel(′y′);grid on
運行結果如圖1所示,從圖中學生可以直觀地看到函數的性質、變化規律和極值點以及極值,不再停留在想象的層面.
圖1 y=xsinx(x>0)的圖像
例2 不能顯化的隱函數y5+2y-x-3x7=0的圖像.
解 在Matlab中調用命令:
ezplot(′y^5+2*y-x-3.*x^7′=0);grid on
運行結果如圖2所示,從圖中可以看出該隱函數是單調遞增的奇函數,關于原點對稱,一目了然,使學生更好地理解隱函數的特點.
圖2 y5+2y-x-3x7=0的圖像
在學習向量與空間解析幾何、三重積分和曲面積分這些內容時,學生經常會感到很抽象,因為我們的教材中顯示的都是平面圖形,學生很難建立空間圖形的概念,通過在課堂上引入Matlab,可以非常直觀地建立三維空間的函數圖形,培養學生的立體感.
例3 作二元函數z=sinx2+y2的圖像.
解 在Matlab中調用命令:
x=-10:0.2:10;[X,Y]=meshgrid(x);r=sqrt(X^2+Y^2)+eps;Z=sin(r);meshc(X,Y,Z)
其中,meshc(X,Y,Z)表示曲面xOy面上的等高線即投影,如圖3所示.其中,圖3(a)表示曲面的三維立體圖,圖3(b)是其等高線圖.通過圖像和方程相結合,學生能夠更好地加深對二次曲面的理解,使抽象問題更具體化.
進一步地,在課堂上逐步引入數值計算,可以解決很多圖形的抽象問題,提高學生對高等數學的興趣和積極性,不再局限于全理論性的教學模式.
(a)
(b)
圖3 z=sinx2+y2的圖像
二、輔助計算——復雜問題簡單化
數值計算是Matlab的又一重要功能,高等數學中的極限、導數、積分等內容,方法多、公式多,有些情況下計算量也較大,學生在做題的時候從數字到數字、公式到公式,經常會感到煩瑣、枯燥,且容易出錯.如,若學生清楚算法原理和計算過程,則可通過Matlab完成算法實現,作為檢驗答案的輔助手段,整個過程效率高、用時短、更直觀.
例4 計算∫sinxsin2xsin3xdx.
解 這是有關三角函數的積分問題,要計算該積分,需利用三次積化和差公式,過程非常麻煩,而在Matlab中調用命令:
syms x,y;y=int(sin(x).*sin(2*x).*sin(3*x));
就可輕松得到結果:
y=(8*tan(x/2)^4*(9*tan(x/2)^4-14*tan(x/2)^2+9))/(3*(tan(x/2)^2+1)^6)
對學生而言,三重積分和曲面積分一直是高等數學的難點,其一是學生對立體區域的作圖感到抽象、困難,無從下手;其二是找不到正確的投影區域,而在課堂上利用Matlab就能夠使得問題由抽象變具體,復雜變簡單.endprint
例5 計算I=S(xy+yz+zx)dS,其中S為z=x2+y2被柱面x2+y2=2ax(a>0)截得的部分.
解 (1)畫出積分曲面圖,在Matlab中調用命令:
[x,z]=meshgrid(0:0.1:2,0:0.05:2);y1=sqrt(2.*x-x.^2);y2=-sqrt(2.*x-x.^2);surf(x,y1,z);
hold on surf(x,y2,z) [x,y]=meshgrid(-2:0.1:2);z=sqrt(x.^2+y.^2);mesh(x,y,z)
xlabel(′x′);ylabel(′y′);zlabel(′z′);
運行結果如圖4所示,從圖中可直觀地看出截得部分在xOy面上的投影區域仍是圓域,進一步利用極坐標將曲面積分轉化為二重積分去計算.
圖4 所截部分的圖像
(2)計算積分值:
syms x y r t a;z=sqrt(x^2+y^2);zx=diff(z,′x′);zy=diff(z,′y′);dS=sqrt(1+zx^2+zy^2);
f=x*y+(y+x)*sqrt(x^2+y^2)*dS;x=r*cos(t);y=r*sin(t);F=subs(f);
r1=0;r2=2*a*cos(t);t1=-pi/2;t2=pi/2;f1=int(F*r,r,r1,r2);I=int(f1,t,t1,t2)
運行結果為:
I=(64*2^(1/2)*a^4)/15
即I=S(xy+yz+zx)dS=64152a4.
三、結束語
利用Matlab的強大功能,學生可以借助較傳統的編程語言(如C、C++和Fortran)實現圖像、極限、積分等運算,既激發了學生的學習熱情,也有利于提高學生的創造性思維,同時對于問題的直觀性和幾何性,更便于學生理解和接受,使學生真正成為學習的主體.
【參考文獻】
[1]郭科.數學實驗[M].北京:高等教育出版社,2009.
[2]陳懷琛.大學理工科要把“科學計算能力”當作一個重要培養目標[J].中國大學教學,2005(9):17-19.
[3]趙亞男,牛言濤.MATLAB在解析幾何教學中的應用[J].長春大學學報,2011(4):54-58.
[4]夏靜,卜華龍.MATLAB輔助高等數學教學方法初探[J].巢湖學院學報,2012(6):132-134.endprint