基于MATLAB GUI的导数辅助教学演示系统的开发
2018-12-07刘兵
刘 兵
(1.承德石油高等专科学校 数理部,河北 承德 067000;2.河北省仪器仪表工程技术研究中心,河北 承德 067000)
MATLAB软件[1-4]是由MathWorks公司出品的一款时下较流行的数值计算型数学软件。该软件应用范围广,可扩展性强,特别是其独有的程序设计方法以及所提供的GUI图形界面编程机制[5-7],可以使程序设计者根据需要,轻松地设计与开发出一些人机交互性良好的应用程序。
“导数”是高等数学课程微分学教学[8-9]中所包含的一项重要的基础性数学概念,高等数学课程中的许多其他重要数学概念的定义及其计算,包括微分、不定积分、定积分以及常微分方程等等,都离不开它。不仅如此,导数还有着非常重要的应用价值。如可以利用它去解决一些实际中有关变化率的问题(包括物理学中的求瞬时速度问题与经济学中的求弹性分析和边际成本问题等),还可以以导数为研究工具去研究函数的一些基本特性(包括函数的单调性、凹凸性、极值与最值等)和描绘函数的几何图形等等。因此,理解与掌握 “导数”这个数学概念,对于学好整个高等数学课程是至关重要的。然而,由于实际教材中对于导数的定义较为抽象(通常采用极限形式来定义),严重脱离了 “导数”概念的实质,因此,致使学生很难理解,许多学生也因此对高等数学望而生畏。为了解决此类教学问题,本文通过利用MATLAB GUI编程机制及其动画设计方法[1-3],从 “导数”概念本身所具有的数学含义出发,开发出了一款辅助教学演示系统软件。通过利用该演示系统软件,可将导数的变化率实质及其几何意义,以及导数在各方面的应用直观地展示出来,从而激发学生的学习兴趣,提高课堂教学效果。
1 导数辅助教学演示系统的演示内容与实现方式
1.1 导数辅助教学演示系统的演示内容
高等数学课程中,与 “导数”直接相关的理论教学内容主要有两个:“导数的概念”和 “导数的应用” (主要包括利用导数去求函数的单调性、极值与最值等)。这两个教学内容是 “导数”教学中的难点也是重点。本系统开发出了针对以上两个教学内容的相应演示程序。通过利用该演示系统,可从函数几何图像及其动态变化趋势上形象地理解以上两个教学内容。
1.2 导数辅助教学演示系统的实现方式
MATLAB软件中,对于可视化演示程序的开发一般有两种实现方法:一种是利用MATLAB软件所提供的GUI组件布局开发工具GUIDE来实现;另一种则是利用组件函数,通过编写M文件来实现。本系统所开发出的演示程序主要采用的是GUIDE开发方式,即首先建立应用程序的GUI图形用户界面布局文件,然后,在软件自动生成的大文件中编写界面布局所包含的各个组件的回调函数,在该函数中,通过编写程序代码,实现演示程序中的各个功能。
2 导数辅助教学演示系统的应用效果
2.1 “导数的概念”演示程序的应用效果
在MATLAB命令窗口中输入该演示程序的名称difalgebragui,回车得如图1所示界面。
图1 导数的概念及其几何意义演示程序运行界面
在图1界面中,输入f(x)为任意函数,输入x0为任意值,按 “计算导数值”按钮,即可实现对所输入函数,在输入点x0处的导数f′(x0)的计算。为了理解导数的定义及其几何含义,此时,可以点击 “演示几何意义”按钮,演示程序从几何图形的动态变化趋势的角度来实现对该导数概念的直观理解。
例如,图1中输入f(x) 为x^2-x+1(即书面函数x2-x+1),输入x0为1,点击 “计算导数值”按钮,此时可求得导数f′(x0)。为了理解f′(x0)的数学含义及其几何意义,此时,点击“演示几何意义”按钮,即可实现对f′(x0)几何意义的动态演示。动态演示过程中的截图如图2所示。
图2 中,演示图像下方分别为动态演示过程中自变量x在点x0处的改变量Δx、过点x0处曲线f(x)的割线的斜率,以及当前设定的坐标跨度与动画帧数。其中,坐标跨度控制的是图像横坐标的显示范围,动画帧数则主要控制动画的显示速度。由图2易见,伴随着Δx绝对值的越来越小,过点x0处曲线f(x)的割线的斜率也越来越接近于过点x0处曲线f(x)的切线的斜率,故而,由导数的数学定义容易理解f′(x)的几何意0义即为曲线f(x)过点x0处切线的斜率。
2.2 “导数的应用”演示程序的应用效果
1) “求函数的单调性与极值”演示程序的应用效果。
在MATLAB命令窗口中输入该演示程序的名称dandiaogui,回车得如图3所示界面。
图3 求函数单调性与极值演示程序运行界面
在图3界面中,输入任意函数f(x),同时输入区间的左右端点,先后分别点击 “获得区间内部驻点”及 “求区间内单调性”按钮,可分别获得所输入函数在相应输入区间内的驻点、单调性及极值情况。通过点击 “区间内几何图形理解”按钮,还可直观地验证所求得结果的准确性。
例如, 图3 中输入 f(x)为2∗x^3-3∗x^2 +x-5(即书面函数2x3-3x2+x-5),输入区间左端点为-2,右端点为4,然后,先后分别点击 “获得区间内部驻点”及 “求区间内单调性”按钮,此时,演示程序可直接计算出输入的函数在区间[-2,4]内的驻点有两个,即0.211 32和0.788 68。单增区间为(-2,0.211 32),(0.788 678,4),单减区间则为(0.211 32,0.788 678),极大值点为0.211 32,极小值点为0.788 68。通过点击 “区间内几何图像理解”,可以从几何图形的角度,对计算出的结果进行直观的验证,如图4所示。
图4 求函数单调性与极值运行效果界面
由图4易见,演示程序可画出所输入函数在相应区间内的几何图像。为了加以区别,在该区间内,对于不同的单调图像,系统在绘制时,采用的颜色是不同的。而对于该区间内所有极值点所对应的曲线上的点,也分别利用不同颜色的圆圈来加以标注,演示效果形象直观。
2)“求函数的最值”演示程序的应用效果。
在MATLAB命令窗口中输入该演示程序的名称zuizhigui,回车得如图5所示界面。
图5 求函数最值运行界面截图
在图5界面中,输入任意函数f(x),同时输入区间的左右端点,先后分别点击 “获得区间内部驻点”及 “求区间内部的最值”按钮,可分别获得所输入函数在相应输入区间内的驻点及最值情况,通过点击 “区间内几何图形理解”按钮,还可以直观地验证所求得结果的准确性。
例如, 图5 中输入 f(x)为 x^4-x^3 +2∗x^2-x+6(即书面函数x4-x3+2x2-x+6),输入区间左端点为-2,右端点为6,然后,先后分别点击“获得区间内部驻点”及 “求区间内部的最值”按钮,演示程序可直接计算出输入的函数在区间[-2,6]内的驻点为0.288 39,最大值点为6,最小值点为0.288 39。通过点击 “区间内几何图像理解”按钮,可以从几何图像的角度,对计算出的结果进行直观的验证,如图6所示。
3 结束语
高等数学课程导数教学辅助系统是通过利用MATLAB GUI与MATLAB动画设计相结合,并辅以MATLAB符号工具箱开发而成。与传统的多媒体辅助教学演示系统相比,此类教学演示系统不仅可以实现对演示对象的动态演示,同时,通过编写程序代码,还可以实现操作者与计算机之间的人机交互,并可以对演示结果进行定量的分析。因此,整个演示效果更准确、生动,同时也更贴近于教学实际。此种教学演示程序必将会得到越来越广泛的应用。