文/盧月莉
基于MATLAB的數(shù)學(xué)實驗教學(xué)研究
文/盧月莉
本文通過實例演示MATLAB軟件在大學(xué)數(shù)學(xué)實驗教學(xué)中發(fā)揮的作用,說明學(xué)生可以通過掌握MATLAB來提高對數(shù)學(xué)知識的理解和解決實際問題的能力。
MATLAB;教學(xué);數(shù)學(xué)實驗
1.引言
隨著計算機的普及和發(fā)展,從20世紀90年代中期開始,數(shù)學(xué)實驗作為高等數(shù)學(xué)教學(xué)改革的產(chǎn)物在國內(nèi)高等院校誕生,它以與傳統(tǒng)數(shù)學(xué)教學(xué)不同的方式在高等數(shù)學(xué)教育中引起了廣泛的興趣。數(shù)學(xué)實驗旨在引導(dǎo)學(xué)生借助數(shù)學(xué)軟件理解抽象的數(shù)學(xué)理論、自主探究和研究數(shù)學(xué)問題以及數(shù)學(xué)的應(yīng)用問題的實踐過程[2]。數(shù)學(xué)實驗課程的開設(shè)和普及對于推動數(shù)學(xué)課程教學(xué)的全面改革,加強素質(zhì)教育具有十分重要的現(xiàn)實意義[3]。
在多種支持數(shù)學(xué)實驗的軟件中,最具有代表性的是MATLAB、Mathematica和Maple,它們各有特色。MATLAB程序設(shè)計語言集成度高,語句簡潔高效,具有出色的數(shù)值運算和繪圖功能,利用各種各樣領(lǐng)域?qū)I(yè)專家編寫的工具箱,可以高效、可靠地解決各種各樣的問題,具有不可替代的優(yōu)勢。本文通過實例演示MATLAB軟件在微積分問題的求解、非線性方程的求解和三維空間圖形的繪制等方面的應(yīng)用,以期培養(yǎng)學(xué)生運用計算機研究和學(xué)習數(shù)學(xué)的能力,進而提高學(xué)生的創(chuàng)新能力。
2.微積分問題的MATLAB求解
利用MATLAB軟件的符號運算工具箱,可以很容易地求解極限、微分、積分等微積分基本問題。需求特別注意的是,在求解之前應(yīng)該先聲明自變量為符號變量,否則會出現(xiàn)錯誤提示。
2.1 極限問題的求解
極限問題在MATLAB軟件中可以使用limit()函數(shù)直接求出,其調(diào)用格式為limit(f,x,x0),表示求函數(shù)f當x→x0時的極限,若x0為∞則用inf表示。
解 首先聲明a、b和x為符號變量,然后定義函數(shù)表達式,最后調(diào)用limit()可以直接求出極限。編程如下:
>>symsxab;f=x*(1+a/x)^x*sin(b/x);limit(f,x,inf)
運行結(jié)果為:b*exp(a)
2.2導(dǎo)數(shù)問題的求解
如果函數(shù)和自變量都已知,且均為符號變量,則可以用diff()函數(shù)解出給定函數(shù)的各階導(dǎo)數(shù),其調(diào)用格式為diff(f,x,n),f為給定函數(shù),x為自變量,n為導(dǎo)數(shù)的階次。
functiondn=hdiff(y,x,t,n)
ifn==1,dn=diff(y,t)/diff(x,t);
else
dn=diff(hdiff(y,x,t,n-1),t)/diff(x,t);
end
end
再在命令窗口輸入:
>>symst;x=exp(2*t)*cos(t)^2;y=exp(2*t)*sin(t)^2;
>>d3=simplify(hdiff(y,x,t,3))
運行得結(jié)果:>>d3=-(- 8*cos(t)^4 + 16*sin(t)*cos(t)^3 + 8*cos(t)^2 - 12*sin(t)*cos(t) + 3)/(exp(4*t)*(16*cos(t)^10 - 16*sin(t)*cos(t)^9 + 32*sin(t)*cos(t)^7 - 20*cos(t)^6 + 4*sin(t)*cos(t)^5))
2.3 積分問題的求解
運用MATLAB中的int()函數(shù)可以求解定積分或無窮積分問題,調(diào)用格式為int(f,x,a,b),其中x為自變量,(a,b)為積分區(qū)間,無窮以inf代替。
解MATLAB命令窗口輸入:
>>symsx;y1=int(exp(-x^2/2),x,0,2)
3.一般非線性方程的求解
對于一般的非線性方程,MATLAB提供了fsovle()函數(shù)來求解它的一個實數(shù)根,其調(diào)用格式為x=fsolve(fun,x0)。其中,fun為所求方程的M-函數(shù)或匿名函數(shù)描述,x0為初始搜索點,程序?qū)脑擖c以逐步減小誤差的算法搜索出滿足方程的實根x。
例3 求方程e-(x+1)2+π/2sin(5x+2)=0 的根。
解 首先用ezplot()函數(shù)繪制出如圖1所示的曲線,該曲線與橫軸的所有交點均是方程的解。
>>ezplot('exp(-(x+1)^2+pi/2)*sin(5*x+2)')
>>line([-4,2],[0,0])
圖1 例3中的方程曲線
從得出的曲線可以看出,該方程有多個實根。我們接著任選一點作為初值,利用fsolve()函數(shù)求出方程更精確的解,如x0=-1附近的解編程為:
>>fun=@(x)exp(-(x+1)^2+pi/2)*sin(5*x+2);
>>x=fsolve(fun,-1)
結(jié)果為x= -1.028318530717959,代入原方程,得f= -5.886413288211306e-016,可見得到的解精度比較高。
4.三維空間圖形的繪制
在高等數(shù)學(xué)中,由于很多學(xué)生缺乏空間想象能力,空間解析幾何是學(xué)生最不容易理解的知識之一。而MATLAB提供了一系列直觀、簡單的三維圖形繪制命令與函數(shù),可以將實驗結(jié)果用可視的形式顯示出來,有助于學(xué)生建立空間想象能力和理解函數(shù)。
例4 繪制函數(shù)z=sinxy的表面圖,并剪下x2+y2≤0.52的部分。
解 在圖形繪制語句中,若函數(shù)值為NaN,則相應(yīng)的部分不繪制出來,因此可以在MATLAB命令窗口輸入:
>> [x,y]=meshgrid(-pi:0.1:pi);
>>z=sin(x.*y);ii=find(x.^2+y.^2<=0.5^2);
>>z(ii)=nan;surf(x,y,z)
運行結(jié)果如圖2所示。在默認視圖中,可以觀察到被剪下部分并沒有顯示出來。但是MATLAB提供了修改視角的功能,用戶可以通過圖形窗口工具欄的旋轉(zhuǎn)按鈕或者view()函數(shù)對圖形進行旋轉(zhuǎn),從任意角度觀察三維圖形。圖3為view(-40,60)的運行結(jié)果。
圖2 z=sinxy的默認視圖
圖3 z=sinxy的俯視圖(view(-40,60))
5.結(jié)語
本文通過幾個實例演示說明,將MTALAB軟件引入大學(xué)數(shù)學(xué)實驗教學(xué)中,有利于培養(yǎng)學(xué)生學(xué)習數(shù)學(xué)的興趣和應(yīng)用數(shù)學(xué)的能力,目的是讓學(xué)生在掌握了數(shù)學(xué)問題的MTALAB求解方法以后,即使對某些數(shù)學(xué)公式理解得不太透徹,也能輕易地利用計算機求解復(fù)雜的數(shù)學(xué)問題,逐步解決大學(xué)里長期存在的“一方面數(shù)學(xué)很有用,另一方面學(xué)生學(xué)了數(shù)學(xué)以后卻不會用”[2]的矛盾現(xiàn)象。
[1]薛定宇,陳陽泉.高等應(yīng)用數(shù)學(xué)問題的MATLAB求解(第三版)[M].北京:清華大學(xué)出版社,2013.
[2] 韓明,王家寶,李林. 數(shù)學(xué)實驗(MATLAB版)[M].上海:同濟大學(xué)出版社,2012.
[3] 羅漢,萬中,王利平.數(shù)學(xué)實驗課程的內(nèi)容體系及教學(xué)模式[J].數(shù)學(xué)理論與應(yīng)用,2001,21(4):105.
盧月莉(1988—),女,壯族,廣西南寧人,碩士,河池學(xué)院助教,研究方向:應(yīng)用統(tǒng)計。
TP
A
2095-9214(2015)02-0115-02
河池學(xué)院數(shù)學(xué)與統(tǒng)計學(xué)院)
廣西高??茖W(xué)研究項目KY2015ZD103