基于MATLAB GUI的定积分动态辅助教学演示系统的设计与实现

2016-10-17 02:19刘兵
现代计算机 2016年22期
关键词:布局组件定义

刘兵

(1.承德石油高等专科学校,承德 067000;2.河北省仪器仪表工程技术研究中心,承德 067000)

基于MATLAB GUI的定积分动态辅助教学演示系统的设计与实现

刘兵1,2

(1.承德石油高等专科学校,承德067000;2.河北省仪器仪表工程技术研究中心,承德067000)

0 引言

MATLAB软件[1-4]是当下较流行的一款数值计算型数学软件,该软件应用范围广、可扩展性强,特别是其独有程序设计方法以及所提供GUI图形界面编程机制可以使初学者能够轻松地设计与开发出一些自己所需的人机交互性良好的应用程序。

“定积分”是《高等数学》积分学中的一核心数学概念。由于此概念的定义形式十分复杂(需要进过分割、取近似、求和及取极限四步并采用复杂的和式极限来定义),且几何意义很难理解(为曲边梯形面积)。因此,对于“定积分”概念的教学方式的选择一直是整个《高等数学》课程教学中的一项难点内容。对于传统的“板书式”教学,由于其不能通过一些直观的演示来帮助学生实现对教学内容的直观理解,因此,显然不适合。而在采用以PowerPoint、Flash或Authorware为技术手段所制作的动画或幻灯片为教学课件的多媒体教学方式中,尽管可以实现对教学内容的动态演示,但是,演示手段单一、不灵活,且很容易使教师陷入到对课程内容的简单播放中,致使教学效果反而更差。因此,在针对于“定积分”概念的教学中,开发出一种灵活的、可调节的且交互性较强的多媒体辅助教学系统软件是十分必要的。为了解决此类教学问题,我们将MATLAB数值计算软件中的GUI编程[6-7]与MATLAB动画设计方法[8]相结合,从“定积分”数学概念本身所具有的数学含义及其几何意义出发,开发出了一款辅助教学演示系统软件。通过利用该演示系统,可将定积分的几何意义及其复杂的定义过程直观地展示给学生,从而激发学生的学习兴趣,提高教学效果。

1 MATLAB GUI简介

1.1MATLAB GUI编程概述

GUI即图形用户界面是MATLAB有别于其他数学软件的亮点之一。MATLAB的GUI是由窗口、图形化组件、光标、按键、菜单以及文字等对象构成。在所有构成MATLAB GUI的元素中,图形化组件是最重要的。组件可分三类,分别是图形化控件(如按钮、编辑框、列表、滚动条等)与静态元素(如窗口和文本字符串)、菜单和坐标系。MATLAB GUI中的每个组件都有自己的回应(即回调函数),当用户通过一定的方法(如鼠标或键盘)选择、激活这些组件时则执行相应的回应,即使计算机产生某种动作或变化,如计算或绘图等。

1.2MATLAB GUI的实现方式

MATLAB GUI的实现方式有两种:一种是利用MATLAB所提供的GUI组件布局开发工具GUIDE来实现;一种是利用组件函数,通过编写M文件来实现。由于后者的难度较高且实现起来工作量较大,因此,本文中采用的是前一种实现方式。

利用GUIDE实现MATLAB GUI要经过以下几个步骤。

(1)首先在MATALB命令窗口中输入guide并敲回车来新建一GUI框架布局,如图1所示。

图1 新建GUI框架布局图

上图中,左侧一列为图形化组件列表,右侧则为布局编辑器,通过拖拽左侧的组件到右侧的布局编辑器内可实现对所开发应用程序界面的布局。

(2)GUI界面布局完毕后点击保存,保存后会自动生成两个文件,一个是“.fig”文件,用于保存还有一个是布局后的应用程序界面,还有一个是“.m”文件,用于编写GUI应用程序中各组件的回应。

1.3MATLAB动画设计的实现方法

MATLAB中创建动画的基本方法有两种:一种是在图形窗口按一定的算法连续擦除和重绘图形对象,这种动画称之为程序动画,也是教学中最为常用的动画制作方法;一种是先保存一系列图形,然后按一定的顺序像电影一样播放,这种动画就是电影动画。电影动画可以将每一帧的图像保存成图片或存为视频文件。本演示系统主要采用程序动画制作方法。

(1)程序动画的制作方法与实例

MATLAB的程序动画常常利用getframe函数或利用drawnow函数与pause函数相结合来创建,其中getframe函数为保存当前图像函数,而drawnow函数为刷新屏幕函数,pause函数则为暂停函数。具体实例如下:

以上程序代码中的“getframe”语句也可以利用drawnow函数与pause函数结合使用来代替。运行以上代码,效果截图如下:

图2 程序动画效果截图

2 定积分动态辅助教学演示系统的开发与应用

本部分中,以MATLAB GUI为开发工具,以MATLAB动画设计为核心方法,开发出了一款针对于《高等数学》定积分教学的动态辅助教学演示系统。

2.1系统的演示内容

《高等数学》课程中,与“定积分”概念相关的理论教学内容很多,但主要的难点问题只有两个:一个是定积分的几何意义;还有一个是定积分的定义。其中,前者的难点在于抽象程度较高,不容易想象,而后者的难点则在于整个定义过程比较复杂,对定义中所蕴含的积分思想表述模糊,不容易理解。为了解决此类教学问题,本系统开发出了针对于以上两个教学内容的相应演示程序。通过程序的运行,可从被积函数的几何特征及定积分定义的动态变化过程中来直观与形象地理解以上两个教学内容。

2.2系统的开发过程

(1)“定积分的几何意义”演示程序的开发

首先,利用MATLAB的GUIDE来新建并开发该应用程序的GUI图形用户界面布局(integrate.fig)。该界面由两部分构成(如下图所示)。一部分为“参数设置”部分。本部分中可实现对被积函数的函数表达式,积分下限以及积分上限的输入。一部分为“几何意义”演示部分。本部分主要功能是显示在“参数设置”中所确定的定积分的几何意义。

图3 定积分几何意义演示程序GUI布局框架图

然后,在生成的integrate.m文件中编写以上GUI图形用户界面布局中各个组件的回调函数,从而实现对演示系统各个功能的实现。在所有组件的回调函数中,“查看几何意义”按钮的回调函数是核心,因为在该回调函数中实现了对被积函数与坐标轴所围车成的曲边梯形的绘制与填充。该回调函数的核心代码如下。

fill([t fliplr(t)],[x fliplr(y)],'b');%填充被积函数与x轴所围成的曲边梯形

(2)“定积分定义的动态演示”演示程序的开发

首先,利用MATLAB的GUIDE来新建并开发该应用程序的GUI图形用户界面布局(integratedefine. fig)。该界面由三部分构成(如下图所示)。其中,一部分为“参数设置”部分。本部分中可实现对被积函数f(x)的函数表达式,积分下限a以及积分上限b的输入。一部分为“定义的动态演示”部分。本部分的主要功能是动态显示“参数设置”中所确定的定积分的定义过程。除此以外,在本部分中,通过调整“分割次数”以及“动画帧数”这两个参数,还可以改变演示效果,进而实现对定积分定义的定量描述。

图4 定积分定义的动态演示程序GUI布局框架图

然后,在生成的integratedefine.m文件中,编写以上GUI图形用户界面布局中各个组件的回调函数,从而实现对演示系统各个功能的实现。在所有组件的回调函数中,“动态演示”按钮的回调函数是核心。因为,在该回调函数中,从几何图形的动态变化角度来实现了对定积分定义过程的动态演示。该回调函数的核心代码如下。

%画动态竖线

2.3系统的应用效果及分析

需要指出的是,以上三种情况中的曲边梯形均为被积函数f(x)的曲线与x轴及直线x=a和直线x=b围成。与传统的多媒体辅助教学方式相比,本系统的优势在于其强大的人机交互性。通过利用本演示系统中的“定积分几何意义”的演示程序,可实现对所输入的被积函数在任意被积区间内任意情形下所对应几何意义的演示。本系统中,该演示程序的操作如下。

首先,在命令窗口中输入integrate,然后敲回车得如下界面。

图5 定积分几何意义演示程序运行界面

(2)“定积分定义的动态演示”演示程序的使用方法

①分割。分割整个被积区间[a,b]为n个小区间[xi,xi+1],i=1,2,…,n。

②取局部近似。任取ζi∈[xi,xi+1)],求f(ζi)Δxi,i= 1,2,…,n,其中Δxi=xi+1-xi。

③对局部近似值求和得整体近似值。

④对和式取极限得积分值。

以上定义过程是一个连续的动态的过程,体现出了定积分概念所包含的数学思想,即首先化整为零,然后积零为整,最后对近似值取极限去逼近精确值。在传统的“板书”式教学方式中,以上定义过程常常要通过教师在黑板上用粉笔画图来进行实现。由于整个定义过程过于复杂,图形很难处理。因此,此种教学方式不适用于此教学模块。而在传统的多媒体教学方式中,也只能够做到简单、单一地去演示整个定义过程,整个教学过程缺乏交互性与对定义过程中的一些必要的定量的描述。与以上教学方式不同,本演示系统中的“定积分定义的动态演示”演示程序具有较强的人机交互性,通过提前预设一些配置参数,可灵活地实现对定积分定义过程的动态演示与解析。本系统中,该演示程序的操作如下。

首先在命令窗口中输入integratedefine然后敲回车可得如下界面。

图9 “定积分定义的动态演示”演示程序运行界面截图

3 结语

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.

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-),男,河北承德人,硕士研究生,讲师,研究方向为数学教育与计算机算法开发

2016-07-21

2016-08-01

简介MATLAB GUI的编程机制,给出MATLAB GUI与MATLAB程序动画的实现方法。依据《高等数学》定积分概念的数学含义、几何意义及其教学现状,利用MATLAB GUI与程序动画相结合,开发出针对于定积分教学的动态辅助教学演示系统。实践表明,该系统的使用,有助于提升学生对定积分的概念及其数学思想的理解,激发学生的学习兴趣。

MATLAB GUI;程序动画;定积分的定义;定积分的几何意义

承德市科学技术研究与发展计划项目(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.

猜你喜欢
布局组件定义
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
BP的可再生能源布局
VR布局
成功的定义
2015 我们这样布局在探索中寻找突破
风起新一代光伏组件膜层:SSG纳米自清洁膜层
Face++:布局刷脸生态
修辞学的重大定义