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