基于常微分方程数值解的GUI设计
2015-07-24刘芳
刘芳
摘要:常微分方程的数值解在工程技术中具有广泛的应用,同时也是高等教学中的重要部分。该文通过MATlAB的GUI设计功能,创建一个功能完善、界面友好的常微分方程数值解法的演示软件。
关键词:常微分方程;MATLAB;GUI
中图分类号:TP312 文献标识码:A 文章编号:1009-3044(2015)14-0223-02
Abstract: the numerical solution of ordinary differential equations is widely used in engineering technology, and is also an important part of higher education.. In this paper, the GUI MATlAB design function, create a functional perfect, user-friendly ordinary differential equation numerical solution of the demonstration software.
Key words: ordinary differential equation; MATLAB; GUI
在自然科学和工程技术等领域,经常需要求解常微分方程,然而只有简单的和典型的微分方程可以求出解析解,所以往往需要求出常微分方程初值问题的数值解,而且在大学课程中单一的课堂粉笔式教学方式已经不能满足现代化教学的需要。为了解决上述问题,本文通过使用MATLAB的GUI设计功能,创建出常微分方程数值解法的演示软件,能够直观、形象的实现常微分方程数值解法的理论讲解和算法演示。
1 GUI设计原理
MATLAB的GUI设计主要分为如下两个阶段:
第一阶段: 软件界面的布局设计。使用MATLAB提供的设计向导,对软件图形界面进行布局,合理摆放控件位置并添加必要属性,设计菜单。
第二阶段: 软件功能的设计。实现每个控件和菜单的功能,编写对应的回调函数,整体实现软件的所有功能。
2 具体过程
本软件的设计主要集成了常微分方程初值问题数值解法中的Euler方法、预测校正系统、改进Euler方法和龙格—库塔方法。通过设计一个主界面(图 1),在主界面中点击不同的命令按钮,打开对应的方法界面(图 2),每个方法界面中有关于该方法的背景故事、理论讲解、例题讲解和算法演示,其中算法演示为本软件的核心内容。
界面布局:静态文本框,提供输入和输出结果的提示;可编辑文本框,供使用者输入所需求解问题参数;坐标轴控件,显示计算结果;命令按钮,接受用户命令,如图 3。
操作步骤:
1)在MATLAB主界面,依次点击 文件→新建→GUI ,打开MATLAB向导编辑器(GUIDE),新建空白GUI界面。
2)在GUI设计界面,将所需控件拖拽到Figure窗口,摆放到恰当位置,完成图 3布局。
3)双击控件,弹出控件属性编辑窗口,在这里编辑控件属性,包括长度、宽度、文本等属性值。
控件常用属性如下:
① Tag属性:用来对控件进行标记,在编写回调函数时,通过控件的Tag属性获取对象,以实现获取和改变控件的显示内容。
② String属性:可以初始化输入框的内容,在编写回调函数时也可以通过这个属性获取输入框的内容。
③ max和min属性:控制输入框的文本模式。当 max-min >1时,输入框能够输入和显示多行的内容;当max-min<=1时,输入框只能输入和显示一行的内容。
④ Visible 属性:定义控件是否对用户可见,初始值为on。
⑤ Callback属性:指定控件的回调函数。指定控件的Callback属性后,就告诉了MATLAB当我们按下该按钮时就执行这个函数,对数据进行处理以及在界面显示结果。
4)功能设计:编写功能按钮的回调函数:
① “数值解”按钮的callback函数设计:
3 小结
通过这种界面设计,使得常微分方程数值解法的演示与计算变得直观、高效。同样数值计算中的其他方法也能够像这样设计成简洁易操作的界面,如数值积分等。这样的图形用户界面,为老师提供了一个方便的课题讲解方法,为数值计算工作者提供了一个简单实用的计算工具。
参考文献:
[1] 胡健伟. 微分方程数值方法[M]. 2版. 北京:科学出版社.2007.
[2] 李荣华. 微分方程数值解法[M]. 3版. 北京:高等教育出版社.1997.
[3] 张德丰. MATLAB数值计算方法[M]. 北京:机械工业出版社.2010.