李娜 仁慶道爾吉
[摘 要]高等數學已經被大部分高校列為重要的公共基礎課,該課程內容多,概念抽象,理論嚴密,對學生后續專業課程的學習以及研究生入學考試都有著不可忽視的作用。然而,近年來,學生學習興趣每況愈下,不及格率大大增加。本文提出將傳統的高數教學方式進行適當改革,將具有強大科學計算功能的計算軟件MATLAB應用到高等數學的教學中,給出了MATLAB分別在極限、導數運算、積分運算、微分方程中的應用實例。作為教學的輔助教學手段,使機算與枯燥的手工計算相結合,大大提高了學生的學習興趣和動手能力,活躍了課堂氣氛,最終提高教學效果。
[關鍵字]MATLAB 高等數學 導數 積分
[中圖分類號] G642.0[文獻標識碼] A[文章編號] 2095-3437(2012)11-0066-03
一、引言
高等數學這一課程已經被大部分本科院校列為培養計劃中重要的公共基礎課,它對學生后續的學習以及思維素質的培養都起著重要的作用。該課程理論嚴密,觀點抽象,內容多而且復雜。掌握好該課程的基本內容不僅為學生深入學習后繼課程奠定了基礎,而且對培養學生的綜合素質及能力是一個良好的訓練、提高過程。在學習高等數學過程中,學生的邏輯思維能力、運算能力、抽象分析能力、綜合與推理能力都可以得到鍛煉。而傳統的教學方式主要以課本的數學知識為基礎,概念、公式為主,加上工科院校學習任務重,課時緊,各科教師迫于學時的壓力,在課堂教學很難注重數學知識的應用。盡管老師們一再強調高等數學的重要性,但數學的抽象和嚴謹,足以使大部分學生望而生畏,學生感到數學的許多東西都是看不到,摸不著,太抽象,太枯燥,致使學習興趣每況愈下,不及格率大大增加。所以有必要對高等數學的教學方式進行適當改革。
MATLAB是由美國mathworks公司發布的主要面對科學計算、可視化以及交互式程序設計的高科技計算環境。20世紀70年代,美國新墨西哥大學計算機科學系主任Cleve Moler為了減輕學生編程的負擔,用FORTRAN編寫了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市場。到20世紀90年代,MATLAB已成為國際控制界的標準計算軟件。此后,公司不斷推出新的版本,直到2012年3月,公司推出了MATLAB的最新版本MATLAB7.14。
MATLAB可以進行矩陣運算、繪制函數圖像、實現算法、創建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。該語言主要有以下幾個其他語言無法比擬的特點:
(1)高效的數值計算及符號計算功能,能使用戶從繁雜的數學運算分析中解脫出來:(2)具有完備的圖形處理功能,實現計算結果和編程的可視化;(3)友好的用戶界面及接近數學表達式的自然化語言,使學者易于學習和掌握;(4)功能豐富的應用工具箱(如信號處理工具箱、通信工具箱等) ,為用戶提供了大量方便實用的處理工具??梢哉f,MATLAB語言已成為國際上最具吸引力、應用最為廣泛的科學計算語言。
基于MATLAB 的以上特點,我們可以將MATLAB和高等數學課程有機結合起來,把傳統的筆算改為筆算與機算相結合,實現理論與實踐相結合,大大提高學生對高等數學的學習興趣和學習熱情,從而可以提高教學質量。同時,該軟件的繪圖功能,可以將圖形直觀的呈現給學生,有助學生對圖形的識別和部分概念的理解。下面,我們從幾個不同方面來說明一下MATLAB在高等數學教學中的應用。
二、 MATLAB在高等數學教學中的應用
(一)MATLAB在極限中的應用
極限是高等數學中一個非常重要的概念,同時也是研究高等數學的一個基本工具。為此,極限概念的理解以及求極限的運算就是學生必須要掌握的內容。在MATLAB中,可以通過命令“limit()”實現函數的極限計算。同時,我們可以利用MATLAB的畫圖功能,幫助學生理解相關概念。
例1:計算■x sin■。
在MATLAB的命令窗口輸入:
subplot(1,2,1)
fplot(‘sin(1/x),[-0.001,0.001])% 畫出函數y=sin■,x∈[-0.001,0.001]的圖形
subplot(1,2,2)
fplot(‘x*sin(1/x),[-0.001,0.001]) %畫出函數y=x sin■,x∈[-0.001,0.001]的圖形
syms x
limit(x*sin(1/x),x,0)% 求函數在變量x趨于0的極限
limit(x*sin(1/x),x,0,‘left)% 求函數在變量x趨于0的左極限
limit(x*sin(1/x),x,0,‘right)% 求函數在變量x趨于0的右極限
執行結果:
■
1圖表明函數y=sin■的值在-1與1之間波動,函數有界,但沒有極限,x=0是函數的振蕩間斷點。2圖表明函數y= x sin■的值不斷振蕩,但離0的值越來越近,即趨近于0。通過命令“limit()”可以求出函數的左右極限和極限,給學生提供了方便。同時恰當應用matlab的畫圖功能,有助于學生對圖形的掌握和概念理解。
(二)MATLAB在導數運算中的應用
導數是高等數學的一個基本概念。相關的內容有復合函數求導,隱函數求導,多元函數的偏導數以及導數的應用極值問題等等,是高等數學教學中非常重要的一部分內容。
例2:z=exsiny2,求■,■,■,■。
在MATLAB的命令窗口輸入:
syms x y z
z=exp(x)*sin(y^2);
diff (z, x)%求z對x的偏導
diff (z, y)%求z對y的偏導
diff (z, y,2) %求z對y的2階偏導
diff (diff(z, x), y) %求z對x的偏導數再對y求偏導
執行結果:
ans =exp(x)*sin(y^2)
ans =2*exp(x)*cos(y^2)*y
ans =-4*exp(x)*sin(y^2)*y^2+2*exp(x)*cos(y^2)
ans =2*exp(x)*cos(y^2)*y
利用命令“diff( )”, 可以求出函數對指定變量的任意階導數或者偏導數,運算相當方便。
例3:求函數y=2e-xsina x 在[2,5]的最值點和最值。
在MATLAB的命令窗口輸入:
syms x;
[xmin,ymin]=fminbnd(‘2*exp(-x)*sin(x),2,5); %求最小值點和最小值
[xmax,ymax]=fminbnd(‘-2*exp(-x)*sin(x),2,5);%求最大值點和最大值,轉化為求-y的最小值點和最小值,
xmin,ymin,xmax,-ymax%輸出原函數的最小值點,最小值,最大值點和最大值
fplot(‘2*exp(-x)*sin(x) ,[2,5])
執行結果:
xmin =3.9270
ymin =-0.0279
xmax =2.0000
-ymax =0.2461
利用命令“fminbnd ( )”可以求出函數在指定區間的最小值以及最小值點,如果想計算函數的最大值和最大值點,只需要轉化為求該函數的負值函數的最小值和最小值,再用該命令即可完成。其實,另外一種方法,可以利用畫圖命令畫出函數的圖即可找出最值。
(三)MATLAB在積分運算中的應用
高等數學中的積分運算包括不定積分,定積分和二重積分等。
例4:計算■■。
在MATLAB的命令窗口輸入:
syms x;
y=(x*(1+x)^3)^(-0.5);
int(y,0,+inf)
執行結果:
ans =2
利用命令“int (f,v,a,b)”可以求出函數f關于變量v在區間[a,b]的定積分,如果省去v,則求出的是關于syms定義的符號變量的積分,如果省去a,b則得到的就是不定積分,并且結果不自行添加積分常數C。如果想要計算二重積分,首先要轉化為累次積分,再利用該命令指定積分變量積分即可。可見該命令用起來十分方便。
(四)MATLAB在求解微分方程中的應用
所謂微分方程就是含有未知函數及其導數的方程,在數學和物理上都有很多的應用。常見的微分方程有可分離變量微分方程、齊次方程、一階線性、常系數(非)奇次線性微分方程。
例5:求微分y″+2y′+y=0方程滿足初始條件y(0)=4,y′(0)=-2的特解。
在MATLAB的命令窗口輸入:
syms x;
equ=‘D2y+2*Dy+y=0;
y=dsolve (equ, ‘x)%求方程的通解
y1= dsolve (equ, ‘y(0)=4,Dy(0)=-2 , ‘x)%求方程滿足初始條件的特解
執行結果:
y =C1*exp(-x)+C2*exp(-x)*x
y1 =4*exp(-x)+2*exp(-x)*x
在表達式中,符號Dy表示對變量y的一階導數,Dny表示對變量y的n階導數。命令“dsolve (‘equation, ‘var)”可以求出自變量為“var”的方程”equation”的通解,若“var”缺省,則默認自變量為變量“t”。如果求的方程的滿足初始條件的特解命令為“dsolve (‘equation, ‘cond1,cond2,…, ‘var)”。
以上介紹了MATLAB軟件在高等數學教學中的4個方面應用,利用并不復雜的命令可以實現高等數學中的很多基本計算,而且準確率高,運行效率高。其實MATLAB的應用遠遠不僅如此,將MATLAB與高等數學有機結合起來,給學生提供了動手驗證的機會,枯燥的純手工計算不再乏味,同時大大增加了學生學習高等數學的興趣,提高了教學質量,起到了不錯的教學效果。另外學生掌握了一個功能強大的計算機軟件,對以后的科學計算研究也是大有裨益的。
[ 參 考 文 獻 ]
[1] 同濟大學數學系. 高等數學第六版[M].北京:高等教育出版社,2007.
[2] 王沫然. MATLAB與科學計算[M].北京:電子工業出版社,2006.
[3] 唐新華.MATLAB在微積分中的應用[J].科技信息,2009,(16).
[4] 周德亮,白巖.用MATLAB解決高等數學中的圖形問題[J].數學的實踐與認識,2002,(1).
[5] 菅小艷.MATLAB在高等數學中的應用[J].計算機時代, 2011,(5).
[責任編輯:戴禎杰]
[收稿時間]2012-09-08
[基金項目]內蒙古工業大學高等教育教學改革項目課題(2011056,2011063)。
[作者簡介]李娜(1982-),女,碩士,講師, 研究方向:計算數學。