曾慶雨 鄭波 徐梅 劉向虎
摘要:導(dǎo)數(shù)是微分學(xué)中最基本的概念,是初等數(shù)學(xué)和高等數(shù)學(xué)的橋梁,也是高等數(shù)學(xué)教學(xué)的重要組成部分。MATLAB是一高性能的數(shù)值計(jì)算和可視化軟件,GUI是人機(jī)交互的中介。在微分學(xué)的學(xué)習(xí)過(guò)程中,導(dǎo)函數(shù)的求解過(guò)程繁瑣,圖像復(fù)雜抽象,難以繪制。本文充分利用MATLAB軟件在繪圖和計(jì)算上的優(yōu)勢(shì),對(duì)導(dǎo)數(shù)的應(yīng)用進(jìn)行GUI仿真,使圖像可視化,導(dǎo)數(shù)理論寓于GUI仿真圖形中,讓復(fù)雜問(wèn)題簡(jiǎn)單化,數(shù)學(xué)問(wèn)題直觀化、具體化。
關(guān)鍵詞:導(dǎo)數(shù) MATLAB GUI可視化仿真 高等數(shù)學(xué)
中圖分類(lèi)號(hào):TP391.9 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)08-0059-02
1 引言
高等數(shù)學(xué)不但是理工科的基礎(chǔ)課程,同時(shí)也是專業(yè)課的工具課程,其應(yīng)用十分廣泛[1]。MATLAB GUI將計(jì)算機(jī)、可視化、程序設(shè)計(jì)融合到了一個(gè)交互式工作環(huán)境中,實(shí)現(xiàn)數(shù)值計(jì)算、建模和仿真、可視化及繪圖功能[2-3]。鑒于導(dǎo)數(shù)理論復(fù)雜抽象,圖形難以繪制。在教學(xué)時(shí)可采用GUI進(jìn)行仿真教學(xué),將導(dǎo)數(shù)理論與實(shí)驗(yàn)演示相結(jié)合,充分利用MATLAB的可視化功能,通過(guò)程序編寫(xiě)實(shí)現(xiàn)導(dǎo)數(shù)圖像可視化、復(fù)雜問(wèn)題簡(jiǎn)單化、抽象內(nèi)容形象化,并把導(dǎo)數(shù)計(jì)算結(jié)果和圖像使用MATLAB GUI模擬出來(lái),以此達(dá)到事半功倍的效果。這樣不僅能讓高等數(shù)學(xué)的授課方式更能適應(yīng)學(xué)生形象思維的特點(diǎn),也能激發(fā)學(xué)生學(xué)習(xí)的求知欲,提升學(xué)會(huì)、學(xué)好高等數(shù)學(xué)的信心,體驗(yàn)解決問(wèn)題的快樂(lè),使學(xué)生真正學(xué)有所獲。
2 GUI仿真設(shè)計(jì)原理
利用MATLAB進(jìn)行導(dǎo)數(shù)的GUI仿真可分為以下四步[4]:
①分析界面所要實(shí)現(xiàn)的主要功能,明確設(shè)計(jì)任務(wù);
②構(gòu)思并繪制GUI界面草圖;
③利用GUI設(shè)計(jì)工具制作靜態(tài)界面,并進(jìn)行調(diào)整對(duì)齊;
④調(diào)用回調(diào)函數(shù),編寫(xiě)GUI界面上相應(yīng)控件功能的程序。
3 GUI仿真演示
通過(guò)MATLAB強(qiáng)大的計(jì)算功能,能使GUI仿真界面清晰、直觀地反應(yīng)出參數(shù)方程所確定函數(shù)的一階導(dǎo)數(shù)及二階導(dǎo)數(shù)結(jié)果,并能繪制其參變量函數(shù)及其導(dǎo)函數(shù)在某一區(qū)間上的圖像,使圖像可視化。
3.1 GUI仿真主要功能及其設(shè)計(jì)意圖
主要功能:計(jì)算參數(shù)方程所確定函數(shù)的一階導(dǎo)數(shù)及二階導(dǎo)數(shù),并繪制其參變量函數(shù)、一階導(dǎo)數(shù)及其二階導(dǎo)數(shù)的圖像。在有必要時(shí)還可以保存其函數(shù)圖形,為了使圖形變得美觀,顏色多樣化,還可以對(duì)其函數(shù)圖像進(jìn)行顏色改變。
設(shè)計(jì)意圖:計(jì)算函數(shù)導(dǎo)數(shù),繪制函數(shù)圖像,使圖像可視化。
3.2 GUI仿真界面布局[4]
①建立五個(gè)靜態(tài)文本框,用于標(biāo)注對(duì)應(yīng)控件提示;
②建立五個(gè)可編輯文本框(動(dòng)態(tài)文本框),其中兩個(gè)用于輸入?yún)?shù)方程X,Y,兩個(gè)用于輸入繪圖區(qū)間范圍,一個(gè)用于顯示一階導(dǎo)數(shù)或二階導(dǎo)數(shù)的結(jié)果;
③建立四個(gè)按鈕,分別用于參數(shù)一階求導(dǎo)、參數(shù)二階求導(dǎo)、清除和保存圖片;
④建立八個(gè)面板,分別用于裝載控件分組;
⑤建立一個(gè)坐標(biāo)軸對(duì)象,用于顯示函數(shù)圖像;
⑥建立二個(gè)下拉菜單,分別用于選擇圖形的顏色和繪圖選項(xiàng)(參數(shù)函數(shù)的圖像、參數(shù)的一階導(dǎo)數(shù)圖像和參數(shù)的二階導(dǎo)數(shù)圖像);
⑦建立兩個(gè)單選按鈕和一個(gè)復(fù)選框,一個(gè)單選按鈕用于設(shè)置坐標(biāo)軸邊框打開(kāi),一個(gè)單選按鈕用于設(shè)置坐標(biāo)軸邊框關(guān)閉,一個(gè)復(fù)選框用于設(shè)置網(wǎng)格線打開(kāi)或關(guān)閉;
⑧建立六個(gè)菜單欄,分別用于參數(shù)求導(dǎo)、保存、Grid、Box、退出和語(yǔ)言。
3.3 制作GUI仿真靜態(tài)界面
在命令窗口中輸入GUIDE命令啟動(dòng)GUIDE創(chuàng)建GUI。在GUI編輯區(qū)域中,按草圖構(gòu)思布置相應(yīng)控件,并利用對(duì)象對(duì)齊與分布工具對(duì)GUI界面控件對(duì)象進(jìn)行位置調(diào)整,使控件對(duì)象對(duì)齊且分布均勻,致使界面美觀。最后設(shè)置相應(yīng)控件的屬性,便于查找句柄對(duì)象,方便編輯和調(diào)試代碼。界面布局如圖1所示。
①分別將五個(gè)靜態(tài)文本框的string屬性設(shè)置為:參數(shù)x、參數(shù)y、T范圍、圖形的顏色和----,Tag屬性分別設(shè)置為:x text、y text、T text、ys text和Ttext;
②分別將五個(gè)可編輯文本框的string屬性設(shè)置為空,Tag屬性分別設(shè)置為:inputx edit、inputy edit、tmin edit、tmax edit和jieguo edit;
③分別設(shè)置四個(gè)按鈕的string屬性為:參數(shù)一階求導(dǎo)、參數(shù)二階求導(dǎo)、清空和保存圖片,Tag屬性分別設(shè)置為:first pushbutton、second pushbutton、clear pushbutton和save pushbutton;
④分別將八個(gè)面板的title屬性設(shè)置為:可視化GUI求參數(shù)導(dǎo)數(shù)、結(jié)果顯示區(qū)、繪圖選項(xiàng)、按鈕選項(xiàng)和圖形顯示;
⑤分別將兩個(gè)單選按鈕的string屬性設(shè)置為: Set box on和Set box off,Tag屬性分別設(shè)置為:radiobutton1和radiobutton2; 復(fù)選框的string屬性設(shè)置為: Grid on,Tag屬性設(shè)置為checkbox1;
⑥將坐標(biāo)軸的Tag屬性設(shè)置為:axes1;
⑦分別將兩個(gè)下拉菜單的string屬性設(shè)置為:--選擇--、紅色、綠色、藍(lán)色、洋紅色、藍(lán)綠色和--繪圖選項(xiàng)--、參數(shù)函數(shù)圖像、參數(shù)的一階導(dǎo)數(shù)圖像、參數(shù)的二階導(dǎo)數(shù)圖像,Tag屬性分別設(shè)置為:popupmenu1和popupmenu2。最后保存文件名為:gui parameter。
3.4 GUI仿真代碼
編寫(xiě)MATLAB程序代碼完成程序中變量的賦值、輸入、輸出及繪圖等工作,打開(kāi)GUI中g(shù)ui parameter文件,系統(tǒng)自動(dòng)生成M文件。
3.5 仿真結(jié)果
運(yùn)行程序后在GUI界面中輸入?yún)⒆兞克_定的函數(shù);以參數(shù)方程x=cos(t)、y=sin(t)為例,并繪制參變量t在區(qū)間-2*pi到2*pi的圖形,點(diǎn)擊參數(shù)一階導(dǎo)數(shù)按鈕運(yùn)行仿真界面,如圖2所示;以上述參數(shù)方程為例,并繪制參變量t在區(qū)間-16*pi到15*pi的圖形,點(diǎn)擊參數(shù)二階導(dǎo)數(shù)按鈕運(yùn)行仿真界面,如圖3所示;點(diǎn)擊保存按鈕保存當(dāng)前坐標(biāo)軸圖形;當(dāng)點(diǎn)擊清空按鈕時(shí)可清空界面,等待下次求解時(shí)的輸入。
4 結(jié)語(yǔ)
本文通過(guò)對(duì)導(dǎo)數(shù)的GUI仿真,促使學(xué)生深刻理解導(dǎo)數(shù)的概念,掌握導(dǎo)數(shù)的幾何意義。使復(fù)雜的、抽象的、難以想象的問(wèn)題及圖形難以繪制的函數(shù)轉(zhuǎn)化為可視化GUI界面。降低學(xué)習(xí)的難度,激發(fā)學(xué)生學(xué)習(xí)的求知欲,感受數(shù)學(xué)的快樂(lè)美。除此之外,高等數(shù)學(xué)中很多抽象的問(wèn)題也可以通過(guò)GUI設(shè)計(jì)來(lái)實(shí)現(xiàn),形象直觀。如:極限、定積分與不定積分、多元函數(shù)微分學(xué)和無(wú)窮級(jí)數(shù)等等都可以進(jìn)行MATLAB GUI仿真,便于學(xué)生深刻理解和掌握其中的抽象理論。
參考文獻(xiàn)
[1]同濟(jì)大學(xué)數(shù)學(xué)系.高等數(shù)學(xué)(上、下冊(cè)).7版[M].北京:高等教育出版社,2014.
[2]陳垚光,毛濤濤,王正林等.精通MATLAB GUI設(shè)計(jì)(第3版)[M].北京:電子工業(yè)出版社,2013.
[3]施曉紅,周佳.精通GUI圖形界面編程[M].北京:北京大學(xué)出版社,2003.
[4]羅華飛.MATLAB GUI設(shè)計(jì)學(xué)習(xí)手記[M].北京:北京航空航天大學(xué)出版社,2014.08.