劉兵
(1.承德石油高等??茖W(xué)校,承德 067000;2.河北省儀器儀表工程技術(shù)研究中心,承德 067000)
基于MATLAB GUI的定積分動(dòng)態(tài)輔助教學(xué)演示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
劉兵1,2
(1.承德石油高等??茖W(xué)校,承德067000;2.河北省儀器儀表工程技術(shù)研究中心,承德067000)
MATLAB軟件[1-4]是當(dāng)下較流行的一款數(shù)值計(jì)算型數(shù)學(xué)軟件,該軟件應(yīng)用范圍廣、可擴(kuò)展性強(qiáng),特別是其獨(dú)有程序設(shè)計(jì)方法以及所提供GUI圖形界面編程機(jī)制可以使初學(xué)者能夠輕松地設(shè)計(jì)與開發(fā)出一些自己所需的人機(jī)交互性良好的應(yīng)用程序。
“定積分”是《高等數(shù)學(xué)》積分學(xué)中的一核心數(shù)學(xué)概念。由于此概念的定義形式十分復(fù)雜(需要進(jìn)過分割、取近似、求和及取極限四步并采用復(fù)雜的和式極限來定義),且?guī)缀我饬x很難理解(為曲邊梯形面積)。因此,對(duì)于“定積分”概念的教學(xué)方式的選擇一直是整個(gè)《高等數(shù)學(xué)》課程教學(xué)中的一項(xiàng)難點(diǎn)內(nèi)容。對(duì)于傳統(tǒng)的“板書式”教學(xué),由于其不能通過一些直觀的演示來幫助學(xué)生實(shí)現(xiàn)對(duì)教學(xué)內(nèi)容的直觀理解,因此,顯然不適合。而在采用以PowerPoint、Flash或Authorware為技術(shù)手段所制作的動(dòng)畫或幻燈片為教學(xué)課件的多媒體教學(xué)方式中,盡管可以實(shí)現(xiàn)對(duì)教學(xué)內(nèi)容的動(dòng)態(tài)演示,但是,演示手段單一、不靈活,且很容易使教師陷入到對(duì)課程內(nèi)容的簡單播放中,致使教學(xué)效果反而更差。因此,在針對(duì)于“定積分”概念的教學(xué)中,開發(fā)出一種靈活的、可調(diào)節(jié)的且交互性較強(qiáng)的多媒體輔助教學(xué)系統(tǒng)軟件是十分必要的。為了解決此類教學(xué)問題,我們將MATLAB數(shù)值計(jì)算軟件中的GUI編程[6-7]與MATLAB動(dòng)畫設(shè)計(jì)方法[8]相結(jié)合,從“定積分”數(shù)學(xué)概念本身所具有的數(shù)學(xué)含義及其幾何意義出發(fā),開發(fā)出了一款輔助教學(xué)演示系統(tǒng)軟件。通過利用該演示系統(tǒng),可將定積分的幾何意義及其復(fù)雜的定義過程直觀地展示給學(xué)生,從而激發(fā)學(xué)生的學(xué)習(xí)興趣,提高教學(xué)效果。
1.1MATLAB GUI編程概述
GUI即圖形用戶界面是MATLAB有別于其他數(shù)學(xué)軟件的亮點(diǎn)之一。MATLAB的GUI是由窗口、圖形化組件、光標(biāo)、按鍵、菜單以及文字等對(duì)象構(gòu)成。在所有構(gòu)成MATLAB GUI的元素中,圖形化組件是最重要的。組件可分三類,分別是圖形化控件(如按鈕、編輯框、列表、滾動(dòng)條等)與靜態(tài)元素(如窗口和文本字符串)、菜單和坐標(biāo)系。MATLAB GUI中的每個(gè)組件都有自己的回應(yīng)(即回調(diào)函數(shù)),當(dāng)用戶通過一定的方法(如鼠標(biāo)或鍵盤)選擇、激活這些組件時(shí)則執(zhí)行相應(yīng)的回應(yīng),即使計(jì)算機(jī)產(chǎn)生某種動(dòng)作或變化,如計(jì)算或繪圖等。
1.2MATLAB GUI的實(shí)現(xiàn)方式
MATLAB GUI的實(shí)現(xiàn)方式有兩種:一種是利用MATLAB所提供的GUI組件布局開發(fā)工具GUIDE來實(shí)現(xiàn);一種是利用組件函數(shù),通過編寫M文件來實(shí)現(xiàn)。由于后者的難度較高且實(shí)現(xiàn)起來工作量較大,因此,本文中采用的是前一種實(shí)現(xiàn)方式。
利用GUIDE實(shí)現(xiàn)MATLAB GUI要經(jīng)過以下幾個(gè)步驟。
(1)首先在MATALB命令窗口中輸入guide并敲回車來新建一GUI框架布局,如圖1所示。
圖1 新建GUI框架布局圖
上圖中,左側(cè)一列為圖形化組件列表,右側(cè)則為布局編輯器,通過拖拽左側(cè)的組件到右側(cè)的布局編輯器內(nèi)可實(shí)現(xiàn)對(duì)所開發(fā)應(yīng)用程序界面的布局。
(2)GUI界面布局完畢后點(diǎn)擊保存,保存后會(huì)自動(dòng)生成兩個(gè)文件,一個(gè)是“.fig”文件,用于保存還有一個(gè)是布局后的應(yīng)用程序界面,還有一個(gè)是“.m”文件,用于編寫GUI應(yīng)用程序中各組件的回應(yīng)。
1.3MATLAB動(dòng)畫設(shè)計(jì)的實(shí)現(xiàn)方法
MATLAB中創(chuàng)建動(dòng)畫的基本方法有兩種:一種是在圖形窗口按一定的算法連續(xù)擦除和重繪圖形對(duì)象,這種動(dòng)畫稱之為程序動(dòng)畫,也是教學(xué)中最為常用的動(dòng)畫制作方法;一種是先保存一系列圖形,然后按一定的順序像電影一樣播放,這種動(dòng)畫就是電影動(dòng)畫。電影動(dòng)畫可以將每一幀的圖像保存成圖片或存為視頻文件。本演示系統(tǒng)主要采用程序動(dòng)畫制作方法。
(1)程序動(dòng)畫的制作方法與實(shí)例
MATLAB的程序動(dòng)畫常常利用getframe函數(shù)或利用drawnow函數(shù)與pause函數(shù)相結(jié)合來創(chuàng)建,其中g(shù)etframe函數(shù)為保存當(dāng)前圖像函數(shù),而drawnow函數(shù)為刷新屏幕函數(shù),pause函數(shù)則為暫停函數(shù)。具體實(shí)例如下:
以上程序代碼中的“getframe”語句也可以利用drawnow函數(shù)與pause函數(shù)結(jié)合使用來代替。運(yùn)行以上代碼,效果截圖如下:
圖2 程序動(dòng)畫效果截圖
本部分中,以MATLAB GUI為開發(fā)工具,以MATLAB動(dòng)畫設(shè)計(jì)為核心方法,開發(fā)出了一款針對(duì)于《高等數(shù)學(xué)》定積分教學(xué)的動(dòng)態(tài)輔助教學(xué)演示系統(tǒng)。
2.1系統(tǒng)的演示內(nèi)容
《高等數(shù)學(xué)》課程中,與“定積分”概念相關(guān)的理論教學(xué)內(nèi)容很多,但主要的難點(diǎn)問題只有兩個(gè):一個(gè)是定積分的幾何意義;還有一個(gè)是定積分的定義。其中,前者的難點(diǎn)在于抽象程度較高,不容易想象,而后者的難點(diǎn)則在于整個(gè)定義過程比較復(fù)雜,對(duì)定義中所蘊(yùn)含的積分思想表述模糊,不容易理解。為了解決此類教學(xué)問題,本系統(tǒng)開發(fā)出了針對(duì)于以上兩個(gè)教學(xué)內(nèi)容的相應(yīng)演示程序。通過程序的運(yùn)行,可從被積函數(shù)的幾何特征及定積分定義的動(dòng)態(tài)變化過程中來直觀與形象地理解以上兩個(gè)教學(xué)內(nèi)容。
2.2系統(tǒng)的開發(fā)過程
(1)“定積分的幾何意義”演示程序的開發(fā)
首先,利用MATLAB的GUIDE來新建并開發(fā)該應(yīng)用程序的GUI圖形用戶界面布局(integrate.fig)。該界面由兩部分構(gòu)成(如下圖所示)。一部分為“參數(shù)設(shè)置”部分。本部分中可實(shí)現(xiàn)對(duì)被積函數(shù)的函數(shù)表達(dá)式,積分下限以及積分上限的輸入。一部分為“幾何意義”演示部分。本部分主要功能是顯示在“參數(shù)設(shè)置”中所確定的定積分的幾何意義。
圖3 定積分幾何意義演示程序GUI布局框架圖
然后,在生成的integrate.m文件中編寫以上GUI圖形用戶界面布局中各個(gè)組件的回調(diào)函數(shù),從而實(shí)現(xiàn)對(duì)演示系統(tǒng)各個(gè)功能的實(shí)現(xiàn)。在所有組件的回調(diào)函數(shù)中,“查看幾何意義”按鈕的回調(diào)函數(shù)是核心,因?yàn)樵谠摶卣{(diào)函數(shù)中實(shí)現(xiàn)了對(duì)被積函數(shù)與坐標(biāo)軸所圍車成的曲邊梯形的繪制與填充。該回調(diào)函數(shù)的核心代碼如下。
fill([t fliplr(t)],[x fliplr(y)],'b');%填充被積函數(shù)與x軸所圍成的曲邊梯形
(2)“定積分定義的動(dòng)態(tài)演示”演示程序的開發(fā)
首先,利用MATLAB的GUIDE來新建并開發(fā)該應(yīng)用程序的GUI圖形用戶界面布局(integratedefine. fig)。該界面由三部分構(gòu)成(如下圖所示)。其中,一部分為“參數(shù)設(shè)置”部分。本部分中可實(shí)現(xiàn)對(duì)被積函數(shù)f(x)的函數(shù)表達(dá)式,積分下限a以及積分上限b的輸入。一部分為“定義的動(dòng)態(tài)演示”部分。本部分的主要功能是動(dòng)態(tài)顯示“參數(shù)設(shè)置”中所確定的定積分的定義過程。除此以外,在本部分中,通過調(diào)整“分割次數(shù)”以及“動(dòng)畫幀數(shù)”這兩個(gè)參數(shù),還可以改變演示效果,進(jìn)而實(shí)現(xiàn)對(duì)定積分定義的定量描述。
圖4 定積分定義的動(dòng)態(tài)演示程序GUI布局框架圖
然后,在生成的integratedefine.m文件中,編寫以上GUI圖形用戶界面布局中各個(gè)組件的回調(diào)函數(shù),從而實(shí)現(xiàn)對(duì)演示系統(tǒng)各個(gè)功能的實(shí)現(xiàn)。在所有組件的回調(diào)函數(shù)中,“動(dòng)態(tài)演示”按鈕的回調(diào)函數(shù)是核心。因?yàn)椋谠摶卣{(diào)函數(shù)中,從幾何圖形的動(dòng)態(tài)變化角度來實(shí)現(xiàn)了對(duì)定積分定義過程的動(dòng)態(tài)演示。該回調(diào)函數(shù)的核心代碼如下。
%畫動(dòng)態(tài)豎線
2.3系統(tǒng)的應(yīng)用效果及分析
需要指出的是,以上三種情況中的曲邊梯形均為被積函數(shù)f(x)的曲線與x軸及直線x=a和直線x=b圍成。與傳統(tǒng)的多媒體輔助教學(xué)方式相比,本系統(tǒng)的優(yōu)勢(shì)在于其強(qiáng)大的人機(jī)交互性。通過利用本演示系統(tǒng)中的“定積分幾何意義”的演示程序,可實(shí)現(xiàn)對(duì)所輸入的被積函數(shù)在任意被積區(qū)間內(nèi)任意情形下所對(duì)應(yīng)幾何意義的演示。本系統(tǒng)中,該演示程序的操作如下。
首先,在命令窗口中輸入integrate,然后敲回車得如下界面。
圖5 定積分幾何意義演示程序運(yùn)行界面
(2)“定積分定義的動(dòng)態(tài)演示”演示程序的使用方法
①分割。分割整個(gè)被積區(qū)間[a,b]為n個(gè)小區(qū)間[xi,xi+1],i=1,2,…,n。
②取局部近似。任取ζi∈[xi,xi+1)],求f(ζi)Δxi,i= 1,2,…,n,其中Δxi=xi+1-xi。
③對(duì)局部近似值求和得整體近似值。
④對(duì)和式取極限得積分值。
以上定義過程是一個(gè)連續(xù)的動(dòng)態(tài)的過程,體現(xiàn)出了定積分概念所包含的數(shù)學(xué)思想,即首先化整為零,然后積零為整,最后對(duì)近似值取極限去逼近精確值。在傳統(tǒng)的“板書”式教學(xué)方式中,以上定義過程常常要通過教師在黑板上用粉筆畫圖來進(jìn)行實(shí)現(xiàn)。由于整個(gè)定義過程過于復(fù)雜,圖形很難處理。因此,此種教學(xué)方式不適用于此教學(xué)模塊。而在傳統(tǒng)的多媒體教學(xué)方式中,也只能夠做到簡單、單一地去演示整個(gè)定義過程,整個(gè)教學(xué)過程缺乏交互性與對(duì)定義過程中的一些必要的定量的描述。與以上教學(xué)方式不同,本演示系統(tǒng)中的“定積分定義的動(dòng)態(tài)演示”演示程序具有較強(qiáng)的人機(jī)交互性,通過提前預(yù)設(shè)一些配置參數(shù),可靈活地實(shí)現(xiàn)對(duì)定積分定義過程的動(dòng)態(tài)演示與解析。本系統(tǒng)中,該演示程序的操作如下。
首先在命令窗口中輸入integratedefine然后敲回車可得如下界面。
圖9 “定積分定義的動(dòng)態(tài)演示”演示程序運(yùn)行界面截圖
GUI編程機(jī)制是MATLAB有別于其他數(shù)學(xué)軟件的亮點(diǎn)之一。將MATLAB GUI與MATLAB程序動(dòng)畫相結(jié)合并輔助以MATLAB符號(hào)工具箱可以開發(fā)出針對(duì)于《高等數(shù)學(xué)》各個(gè)教學(xué)環(huán)節(jié)的動(dòng)態(tài)輔助教學(xué)演示程序。由于此種演示程序采用程序代碼控制,因此與傳統(tǒng)的多媒體輔助教學(xué)工具(例如PowerPoint等)相比,此種方法下開發(fā)的動(dòng)態(tài)輔助教學(xué)演示程序操控準(zhǔn)確(可顯示演示程序中的實(shí)時(shí)坐標(biāo)等)、演示內(nèi)容與界面可自行設(shè)計(jì)、演示手段豐富,全面、演示與使用效果俱佳。伴隨著MATLAB使用的逐漸普及,此種教學(xué)演示程序必將會(huì)有著越來越廣泛的應(yīng)用。
[1]胡曉冬,董辰輝.MATLAB從入門到精通[M].北京:人民郵電出版社,2010.
[2]陳杰.MATLAB寶典[M].北京:電子工業(yè)出版社,2007.
[3]葛哲學(xué).精通MATLAB[M].北京:電子工業(yè)出版社,2008.
[4]張志涌,楊祖櫻.MATLAB教程[M].北京:北京航空航天大學(xué)出版社出版,2015.
[5]同濟(jì)大學(xué)數(shù)學(xué)系.高等數(shù)學(xué)[M].北京:高等教育出版社,2007.
[6]羅華飛.MATLAB GUI設(shè)計(jì)學(xué)習(xí)手記[M].北京:北京航空航天大學(xué)出版社出版,2014.
[7]陳垚光,毛濤等.精通MATLAB GUI設(shè)計(jì)[M].北京:電子工業(yè)出版社.2013.
[8]張德豐,趙書梅等.MATLAB圖形與動(dòng)畫設(shè)計(jì)[M].北京:國防工業(yè)出版社,2009.
MATLAB GUI;Procedural Animation;Definition of Definite Integral;Geometric Meaning of Definite Integral
Design and Implement of Definite Integral Dynamic Assistant Teaching System Based on MATLAB GUI
LIU Bing1,2
(Chengde Petroleum College,Chengde 067000;2.Hebei Instruments and Meters Engineering Technology Research Center,Chengde067000)
1007-1423(2016)22-0064-07DOI:10.3969/j.issn.1007-1423.2016.22.014
劉兵(1980-),男,河北承德人,碩士研究生,講師,研究方向?yàn)閿?shù)學(xué)教育與計(jì)算機(jī)算法開發(fā)
2016-07-21
2016-08-01
簡介MATLAB GUI的編程機(jī)制,給出MATLAB GUI與MATLAB程序動(dòng)畫的實(shí)現(xiàn)方法。依據(jù)《高等數(shù)學(xué)》定積分概念的數(shù)學(xué)含義、幾何意義及其教學(xué)現(xiàn)狀,利用MATLAB GUI與程序動(dòng)畫相結(jié)合,開發(fā)出針對(duì)于定積分教學(xué)的動(dòng)態(tài)輔助教學(xué)演示系統(tǒng)。實(shí)踐表明,該系統(tǒng)的使用,有助于提升學(xué)生對(duì)定積分的概念及其數(shù)學(xué)思想的理解,激發(fā)學(xué)生的學(xué)習(xí)興趣。
MATLAB GUI;程序動(dòng)畫;定積分的定義;定積分的幾何意義
承德市科學(xué)技術(shù)研究與發(fā)展計(jì)劃項(xiàng)目(No.201422115)
Introduces the MATLAB GUI programming mechanism,presents the method of achieving the MATLAB GUI and the MATLAB procedural animation.According to the thought of Higher Mathematics definite integral concept,geometry meaning and its teaching situation,develops a kind of dynamic auxiliary teaching system for the teaching of Higher Mathematics definite integral by using the combination of MATLAB GUI and the procedural animation.Practice shows that the use of the system can help to enhance students'understanding of the concept of definite integral and its mathematical thinking,stimulates students'interest in learning.