劉 兵(1.承德石油高等??茖W校,河北承德067000;2.河北省儀器儀表工程技術研究中心,河北承德067000)
基于MATLAB GUI的極限動態輔助教學演示系統的設計與實現*
劉兵1,2
(1.承德石油高等??茖W校,河北承德067000;2.河北省儀器儀表工程技術研究中心,河北承德067000)
文章給出了MATLAB GUI與MATLAB程序動畫的實現方法,依據《高等數學》極限概念的數學思想及其教學現狀,利用MATLAB GUI與程序動畫相結合,開發出了針對于極限教學的動態輔助教學演示系統。實踐表明,該系統的使用可激發學生的學習興趣,提高教學效果。
MATLAB GUI;程序動畫;極限;無窮小的階
MATLAB軟件[1-4]是當下較流行的一款數值計算型數學軟件,該軟件應用范圍廣、可擴展性強,特別是其獨有程序設計方法以及所提供GUI圖形界面編程機制,可以使初學者能夠輕松地設計與開發出一些自己所需的人機交互性良好的應用程序。
“極限”是《高等數學》課程[5]中所給出的第一個數學概念,它貫穿于《高等數學》課程的始終,是我們學習這門課程的一個最基本的研究工具。在《高等數學》中,幾乎所有概念都是利用“極限”去定義的。因此,理解與掌握“極限”這個數學概念,對于學好《高等數學》課程是至關重要的。然而,由于實際教材中對于極限的定義較為抽象(通常采用ε-δ語言定義),致使學生很難理解,許多學生也因此對《高等數學》望而生畏。為了解決此類教學問題,我們將MATLAB GUI編程[6-7]與MATLAB動畫設計方法[8]相結合,從“極限”這個數學概念本身所具有的數學含義出發,開發出了一款輔助教學演示系統軟件。通過利用該演示系統,可將極限的無限逼近思想動態而直觀地展示給學生,從而激發學生的學習興趣,提高教學效果,使學生輕松實現對“極限”概念的理解與掌握。
MATLABGUI的實現方式有兩種[7]:一種是利用MATLAB所提供的GUI組件布局開發工具GUIDE來實現,一種是利用組件函數,通過編寫M文件來實現。由于后者的難度較高,且實現起來工作量較大,因此,本文中采用的是前一種實現方式。
MATLAB中創建動畫的基本方法有兩種:一種是在圖形窗口按一定的算法連續擦除和重繪圖形對象,這種動畫稱之為程序動畫,也是教學中最為常用的動畫制作方法;一種是先保存一系列圖形,然后按一定的順序像電影一樣播放,這種動畫就是電影動畫。本演示系統在開發過程中主要采用程序動畫的制作方法。
1.程序動畫的制作方法與實例
MATLAB的程序動畫常常利用getframe函數或利用drawnow函數與pause函數相結合來創建,其中getframe函數為保存當前圖像函數,而drawnow函數為刷新屏幕函數,pause函數則為暫停函數。具體實例如下:for x=-2*pi:0.1:2*pi

以上程序代碼實現了動態演示內正弦函數曲線圖像的目的。代碼中的“getframe”語句也可以利用drawnow函數與pause函數結合使用來代替。
1.動態輔助教學演示系統的演示內容
《高等數學》課程中,與“極限”相關的理論教學內容主要有兩個,一個是“極限”的基本概念;一個是“無窮小的階”。這兩個教學內容是“極限”教學中的難點也是重點,由于數學學科本身的抽象性使得學生對于這兩個內容的理解較差。為了解決此問題,本系統開發出了針對以上兩個教學內容的相應演示程序,從幾何圖像的動態變化趨勢上來形象的理解以上兩個數學概念。
2.動態輔助教學演示系統的開發過程
(1)“極限的概念及其幾何理解”演示程序的開發
首先,利用MATLAB的GUIDE來新建并開發該應用程序的GUI圖形用戶界面布局(limitgui.fig)。然后,在生成的limitgui.m文件中編寫GUI圖形用戶界面布局中各個組件的回調函數,從而實現對演示系統各個功能的實現。在所有組件的回調函數中,“動畫演示”按鈕的回調函數是核心,因為在該回調函數中實現了對極限概念在幾何圖像上的動態演示。該回調函數的核心代碼如下:


(2)“無窮小的階及其幾何演示”演示程序的開發
首先,利用MATLAB的GUIDE來新建并開發該應用程序的GUI圖形用戶界面布局(infinitygui.fig)。然后,在生成的infinity.m文件中編寫GUI圖形用戶界面布局中各個組件的回調函數,從而實現對演示系統各個功能的實現。在所有組件的回調函數中,“動畫演示”按鈕的回調函數是核心,因為在該回調函數中實現了對無窮小的階的概念在幾何圖像上的動態演示。該回調函數的核心代碼如下:


3.動態輔助教學演示系統的使用效果
(1)“極限的概念及其幾何理解”演示程序的使用效果
在MATLAB命令窗口中輸入limitgui然后敲回車得如圖1界面。

圖1 極限的概念及其幾何理解演示程序運行界面
在以上界面中輸入f(x)為任意函數,輸入x->任意值,選擇左側的極限種類,按“計算”按鈕,即可實現對該趨向方式下f(x)極限的計算。計算后,繼續點擊“動畫演示”按鈕,可從幾何圖形變化趨勢的角度來實現對該極限的理解。例如:輸入輸入x->為“0”,極限的種類選擇第一類“極限”,按“計算”按鈕,并點擊“動畫演示”按鈕,即可演示極限1的幾何含義,圖2為該極限動態演示過程中的截圖。

圖2極限lim sinx=1的幾何演示程序運行動態截圖X->0x
圖2左下角為動態實時函數值的變化趨勢,右下角顯示為當前設定的坐標跨度與動畫幀數。其中坐標跨度控制的是圖像的顯示范圍,動畫幀數則控制的是動畫的顯示速度。通過觀察易見,當的函數值會無限趨近于1,所以利用“極限”的定義思想,需要注意的是,當x=0時演示系統左下角顯示函數值為“NAN”即不存在,但此時極限卻是存在的,以此可充分說明函數在某點處的極限與該點處的函數值無關。另外,演示系統還可以變換選擇極限的種類(包括左極限與右極限),并可以通過調整右下角的坐標跨度與動畫幀數來控制與改變動畫的演示效果,以便更有效的達到最佳演示效果的目的。
(2)“無窮小的階及其幾何演示”演示程序的使用效果
在MATLAB命令窗口中輸入infinitygui然后敲回車得如圖3界面。

圖3 無窮小的階演示程序運行界面截圖
在以上界面中分別輸入兩個同一變化趨勢下的無窮小f1(x)與f2(x),并選擇“左側比較“或”右側比較”選項,點擊“計算”按鈕,就可以比較出輸入兩個無窮小之間的階數關系。然后按“動畫演示”按鈕,可從函數幾何圖形變化趨勢的角度來實現對“無窮小的階”概念的理解。例如:f1(x)輸入函數為“1/x”(即書面語言中的輸入f(x)2函數為“1/(x^2)”(即書面語言中的,變化過程x->輸入“inf”(即書面語言中的x->∞),易知,在該變化過程中f1(x)與f2(x)均為無窮小。接下來,選擇比較方向為“左側比較”,然后點擊“計算”按鈕,并單擊“動畫演示”按鈕,即可演示“高階無窮小”的幾何含義,圖4為動態演示過程中的截圖。

圖4 無窮小的階幾何含義演示程序動態運行截圖
圖4中左下角為兩個無窮小量f2(x)為f1(x)動態實時函數值的變化趨勢,右下角仍為當前設定的坐標跨度與動畫幀數。通過觀察易見,當x->∞時f2(x)比f1(x)趨于零的速度更快,所以利用“無窮小的階”的含義可知f2(x)為f1(x)的“高階無窮小”。另外演示系統還可以變換兩個無窮小的比較方向,并且,也可以通過調整右下角的坐標跨度與動畫演示的幀數來控制與改變動畫的演示效果。
GUI編程機制是MATLAB有別于其它數學軟件的亮點之一。將MATLAB GUI與MATLAB程序動畫相結合并輔助以MATLAB符號工具箱,可以開發出針對于《高等數學》各個教學環節的動態輔助教學演示程序。由于此種演示程序采用程序代碼控制,因此與傳統的多媒體輔助教學工具(例如PowerPoint等)相比,此種方法下開發的動態輔助教學演示程序操控準確(可顯示演示程序中的實時坐標等等),演示內容與界面可自行設計,演示手段豐富,全面、演示與使用效果俱佳。伴隨著MATLAB使用的逐漸普及,此種教學演示程序必將會有著越來越廣泛地應用。
[1]胡曉冬,董辰輝.MATLAB從入門到精通[M].北京:人民郵電出版社,2010.
[2]陳杰.MATLAB寶典[M].北京:電子工業出版社,2007.
[3]葛哲學.精通MATLAB[M].北京:電子工業出版社,2008.
[4]張志涌,楊祖櫻.MATLAB教程[M].北京:北京航空航天大學出版社,2015.
[5]同濟大學數學系.高等數學[M].北京:高等教育出版社,2007.
[6]羅華飛.MATLAB GUI設計學習手記[M].北京:北京航空航天大學出版社,2014.
[7]陳垚光,毛濤等.精通MATLAB GUI設計[M].北京:電子工業出版社,2013.
[8]張德豐,趙書梅等.MATLAB圖形與動畫設計[M].北京:國防工業出版社,2009.
(編輯:魯利瑞)
TP311
B
1673-8454(2016)18-0081-04
*承德市科學技術研究與發展計劃項目(201422115)。