当前位置: 首页 > 范文大全 > 公文范文 >

MATLAB,GUI在数值分析课程教学中的应用

时间:2022-10-21 19:15:05 来源:网友投稿

摘要:针对目前数值分析课程教学中存在的问题和困难,以非线性方程求根的MATLAB GUI(Graphical User Interfaces,GUI)实现为实例论述了MATLAB GUI在数值分析课程教学中的应用,结合MATLAB的GUI功能可以充分调动教师和学生两方面的积极性,全面提高数值分析课程的教学质量。

关键词:教学辅助;非线性方程求根;用户图形界面

中图分类号:TP319文献标识码:A文章编号:1009-3044(2012)13-3140-03

The Application of MATLAB GUI in Numerical Analysis Course Teaching

CHEN Li-hong, ZHOU Zhi-gang

(Department of Mathematics and Computer College, Wuhan Textile University, Wuhan 430073, China)

Abstract:According to the difficult in numerical analysis course teaching, it is discussed that the MATLAB GUI(Graphical User Interfaces,GUI) application in numerical analysis course teaching with solving nonlinear equations as example. the view is proposed that designing MATLAB GUI for numerical analysis will fully arouse teachers and students both aspects of the enthusiasm to improve quality of numerical analysis course combined with MATLAB GUI function.

Key words:auxiliary teaching;solving nonlinear equations;MATLAB GUI

《数值分析》是理工科院校数学、力学、物理、计算机等专业的教材,它在专业课程体系中占有重要地位。该课程的主要任务是研究用计算机解决数学问题的数值方法及其理论,它的内容包括函数的数值逼近、数值微分与数值积分、非线性方程数值解、数值线性代数、微分方程数值解等,这些均与计算机紧密结合在一起。如果采用传统的教学方式,一方面需要花大量的时间在黑板上绘图和计算,在有限的学时内无法进行内容的扩展;另一方面学生理解和接授知识时感觉枯燥、难度大。MATLAB软件的推出为该门课的教学提供了有利工具,利用MATLAB强大的绘图及仿真功能,可以将抽象的内容以形象的图形表示出来,既可演示复杂系统的未知结果,又可改变系统参数,演示系统随参数变化的变化结果或变化趋势,有助于学生对抽象理论的理解。然而在课堂上应用MATLAB演示所讲授内容,需要临时编程,这对于有限的课堂时间多有不便,而且界面也不直观,若能将MATLAB的可开发的GUI功能结合数值计算中的典型算法构造开放式的用户界面,既可充分发挥MATLAB的强大的计算功能,又可避免记忆繁琐的命令,不仅方便老师在课堂直观演示,而且便于学生课下自己设计系统,添加代码实现更多的演示功能,将会充分调动教师和学生两方面的积极性,全面提高课程的教学质量。

1图形用户界面设计简介

图形用户界面是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面,用户通过一定的方法(如鼠标或键盘)选择激活这些图形对象,使计算机产生某种动作或变化,如实现计算或绘图等。MATLAB的GUI编程可以用两种方式实现。一是GUI设计工具GUIDE,它的优点是非常容易入手,风格很像VB,相关控件可以随意拖动,GUI设计简单、省时,但GUIDE的一个严重缺点是无法直接创建核心对象;二是利用M函数构建GUI,即M文件界面设计,这种方法需要解决数据传递问题,如何正确实现回调函数中用户菜单或控件的句柄传送是M文件成功创建GUI的关键。事实上,不管采用哪种设计方法,事先都要分析界面所要求实现的主要功能,明确设计任务,并站在使用者的角度审查界面功能及界面的控件布局,然后进行代码编写,对功能进行逐项检查,调整完善界面功能。图形用户界面设计的一个基本原则要求具有简单性,即设计界面时应力求简洁、清晰地体现出界面的功能和特征,为此要尽量使用用户所熟悉的标志和符号,尽量删去可有可无的功能,尽量多采用图形结果,尽量减少窗口数目,力避在不同窗口之间进行来回切换。

2实例仿真及分析

非线性方程的迭代解法求根是数值分析课程的一个重要内容,初始迭代点及迭代函数的正确选取是求根的关键,为了使学生对迭代法求根有清醒的认识,下面以非线性方程迭代法求根的GUI实现说明MATLAB GUI对数值分析课程的辅助教学功能。

不动点迭代法求根中需要选取迭代公式,确定迭代初始点、精度,不动点迭代法求根的界面如图1。图1不动点迭代法求根的GUI界面

界面中设置了五个edit控件,分别用于输入方程f(x)、迭代公式、迭代初始点x0、精度tol和最大迭代次数;四个Push Button控件,分别用于绘图、求解、重设参数和退出界面;一个axes控件,用于显示函数f(x)的图像;为体现设计的简洁性,界面中只设置一个List? box控件,所有的结果都将在Listbox控件中显示,这样设计使界面更加合理化。系统能输入任意的方程,通过huatu_pushbutton3控件得到其图像,很容易判断该方程在零点的大致位置,即迭代初始点x0。输入方程后,单击画图控件,可以得到函数f(x)的图像,并显示在界面中。用编制好的GUI演示求解程f(x)=x3-x-1=0在x0=1.5附近的根x*,并用两种迭代公式求根,迭代公式分别为x= 3,初始点x0=1.5,精度tol=0.000001,最大迭代次数N=20,左键单击不动点求解控件,得到求根运行界面,如图2。在运行界面中得到运行结果,并且在函数图像中标出了通过运行得到的方程的根。

选取迭代公式x=x3-1,初始点x0=1.5,精度tol=0.000001,最大迭代次数N=50的运行界面,左键单击不动点求解控件,得到如图3的求根界面。图2,图3分别为同一方程取不同迭代函数求根的运行界面,由此可以让学生直观的看出不动点迭代法求根在选取不同迭代函数时,得到的收敛效果不同,直观的体现了迭代函数的重要性。

用Newton法来求方程f(x)=x3-x-1=0在x0=1.5附近的根,精度tol=0.000001,最大迭代次数N=20。编制的GUI演示结果可以让学生感受到Newton法求根的收敛速度比不动点迭代法求根的收敛速度快。

学生通过以上非线性方程求根的GUI,很容易体会到不动点迭代求根选取迭代函数的重要性及不动点迭代与Newton法求方程根的区别。同时设计的GUI具有开放性,可以让学生课后添加控件与代码,实现GUI更多的功能,这样不仅能够提高学生对数值算法的理解,而且极大提高学生学习数值分析课程的兴趣及编程解决实际问题的能力。

3结束语

将MATLAB GUI与数值分析课程结合起来,教师可以现场演示数值方法,开阔了学生学习数值分析课程的思路。若针对数值分析课程的所有教学重点内容编制一个辅助教学仿真软件,这对于数值分析课程的可视化教学、学生的数值实验更有意义。

参考文献:

[1]张志涌.精通MATLAB [M].北京:北京航空航天大学出版社,2000.

[2]陈垚光,王正林,毛涛涛.精通MATLAB GUI设计[M].北京:电子工业出版社,2008.

[3]尚涛,石端伟,安宁,等.工程计算可视化与MATLAB实现[M].武汉:武汉大学出版社,2002.

[4]李庆杨,王能超,易大义.数值分析(第四版) [M].武汉:华中科技大学出版社,2006..

[5]刘彩云,陈忠.《数值分析》课程教学改革的若干思考[J].长江大学学报:自然科学版,2009,6( 1): 358 -359.

相关热词搜索: 数值 课程 分析 教学中 matlab