APP下载

数值分析课程的MATLAB辅助教学系统设计

2011-12-20李军成杨涤尘

湖南人文科技学院学报 2011年2期
关键词:插值法教学系统插值

李军成,杨涤尘,杨 炼,李 兵

(湖南人文科技学院数学与应用数学系,湖南娄底417001)

数值分析课程的MATLAB辅助教学系统设计

李军成,杨涤尘,杨 炼,李 兵

(湖南人文科技学院数学与应用数学系,湖南娄底417001)

为有效地辅助数值分析课程的教学,以MATLAB作为工作语言和开发环境,设计了一个数值分析课程的辅助教学系统。以数值分析中插值法的教学为例,给出了设计GUI界面的技术实现过程,该界面可以更为直观地显示不同插值方法的结果,以激发学生的学习兴趣。教学实践表明,该系统使用效果良好。

数值分析;MATLAB;辅助教学;数据插值

数值分析不仅是大学数学系应用数学专业、信息与计算科学专业的一门主要专业课基础课程,而且很多理工科专业也开设了该门课程。数值分析主要研究求解数学模型的算法及有关理论,是求解数学模型的不可缺少的途径和手段,它伴随计算机的发展而发展。在信息科学和计算机技术飞速发展的今天,这门课程中学习的数值方法更显得极其重要。与其它数学课程的最明显的区别在于,数值分析是一门更注重应用的科学,特别注意在方法的精确性和计算的效率之间的平衡。传统的教学模式只注重讲授数值方法的原理,算法的理论推导占据了整个教学过程的大部分时间,再加上缺乏实践环节的教学,就使得学生不能很好的运用所学的理论去解决实际问题[1]。另外,由于这门课在检验算法精度、比较算法优劣时常常涉及到大量的数值计算和各种结果的绘图,师生在计算和绘图上需要花很多的时间和精力,影响到对算法的掌握。因而该课程授课难度较大,学生学习效果往往不能令人满意。用计算机完成复杂的计算和绘图,授课时引导学生把精力放在概念的理解和方法的掌握上,应是该课程的教学发展方向[2]。

为有效地辅助数值分析课程的教学,基于MATLAB中的图形用户界面(GUI),并以数值分析中数据插值方法为例,设计了一个数据插值方法的教学系统,学生可以利用此系统进行数据插值方法的学习,加深对数据插值算法的理解,从而更好地把算法应用于实际。

1 MATLAB 中的 GUI设计简介[2-3]

MATLAB 6.1推出了全新的图形用户开发环境(GUI Development Environment,简称GUIDE),它有4类基本的图形对象:坐标轴(Axes)、控件(Uicontrol)、菜单(Uimenu)和对象菜单(Uicontextmenu)。具体设计过程如下:

1)在MATLAB命令窗口中,直接输入guide(或利用菜单选择:File→New→GUI),即可启动图形用户界面的布局编辑器。利用guide filename可以编辑文件名为filename的图形用户界面。

2)启动菜单编辑器(Menu Editor)可以添加本课件的主菜单及子菜单。

3)利用窗口左侧的控件选择板,把控制对象拖拉到布局区(Layout Area)生成该对象。再利用几何位置排列工具(Align Object s)来调节各控件对象之间的相对位置。

4)创建完控件对象后,双击该对象就会显示它的属性编辑器(Property Inspector),通过对相关属性进行设置(如控件名称、背景颜色、字体大小等)而得到满意的GUI。

5)在图形窗口选择:File→Save Figure,把该图形保存起来,系统会自动生成同名的M文件和fig文件。

2 数值分析课程辅助教学系统的框架设计

数值分析课程的教学内容主要包括数据插值与拟合、数值微分与积分、线性方程组的数值求解、非线性方程求根、常微方程数值解等几个部分。按照上述5个部分的教学内容,设计出一个基于MATLAB的辅助教学系统,本系统的框架如图1所示。

图1 数值分析课程辅助教学系统框架图

该教学系统主要由6个教学GUI子界面构成,通过单击主界面上相应的按钮即可弹出相应的子界面。下面以数据插值法为例,给出其教学GUI界面的技术实现。

3 插值法教学GUI界面的技术实现

3.1 建立数据插值方法的MATLAB函数文件

在插值函数中,以多项式函数应用最广。常用的多项式插值有Lagrange插值、Newton插值、Hermite插值及三次样条插值[4]等。其中Newton插值法是一种利用均差构造插值多项式的方法,n次的Newton插值多项式与n次的Lagrange插值多项式是恒等关系,只是表现的形式不同而已。Hermite插值法是一种带导数信息的插值方法,常用的有两点三次Hermite插值,即考虑两个插值结点的情形。三次样条插值法是一种分段插值法,由于在插值结点处具有二阶导数连续,从而具有更好的光滑性。

由于MATLAB软件运行于windows环境,因此基于MATLAB设计的GUI界面具有美观和简洁的特点,教师和学生不需要掌握MATLAB软件即可轻松使用。为方便GUI界面的设计,首先可以建立三种插值方法的MATLAB函数文件,然后在GUI界面的设计中调用这些函数文件。由于三次样条插值可以直接调用MATLAB函数库中的函数,故不需另外建立函数文件,下面分别给出n次Lagrange插值与Hermite插值的函数文件。

1)n次Lagrange插值的函数文件(lagrange.m)

%该函数用于求解lagrange插值

%使用格式为y=lagrange(X,Y,x)

%其中X为插值节点,Y为插值节点的函数值,x为所求点

function y=lagrange(X,Y,x)

n=length(X);

m=length(x);

for i=1:m

z=x(i);s=0.0;

for k=1:n p=1.0;

for j=1:n

if j~=k

p=p*(z-X(j))/(X(k)-X(j));

end

end

s=p*Y(k)+s;

end

y(i)=s;

end

2)Hermite插值的函数文件

%该方法用于求解hermite插值(hermite.m)

%使用格式为 y=hermite(X,Y,Y1,x)

%其中X为插值节点,Y为插值节点的函数值,Y1为在该点的一阶导数,x为所求点

function y=hermite(X,Y,Y1,x)

n=length(X);

m=length(x);

for i=1:m

y0=0;

for j=1:n

h=1;a=0;

for k=1:n

if k~=j

h=h*((x(i)-X(k))/(X(j)-X(k)))^2;

a=1/(X(j)-X(k))+a;

end

end

y0=y0+h*(((X(j)-x(i))*(2*a*Y(j)-Y1(j))+Y(j)));

end

3.2 插值法教学的GUI界面设计

为了让学生更加直观的理解不同的插值方法,分别设计了三个单选按钮,即n次Lagrange插值、Hermite插值与三次样条插值。分别单击各个按钮时,会出现不同方法的插值曲线图。另外,为了使学生了解插值曲线的由来,设计了一个静态文本窗口,用来显示绘制插值曲线的MATLAB程序。插值法教学的GUI界面的设计过程具体如下:

Step1:启动图形用户界面的布局编辑器。

Step2:设置静态文本窗口,用来显示不同插值法的MATLAB执行程序;设置三个单击按钮,分别用来绘制Lagrange插值、Hermite插值与三次样条插值的曲线图。

Step3:保存并自动生成M文件和fig文件。

篇幅有限,这里略去设计该GUI界面的源代码。运行保存的M文件即可生成相应的GUI界面。图2为以sin(x)为例做不同插值的教学系统界面。图3至图5分别为单击三个不同按钮后所得到的插值曲线图。

图2 数据插值法的教学系统界面

4 结束语

本文基于MATLAB软件设计了一个数值分析课程的辅助教学系统,并以插值法的教学为例,给出了设计插值法教学的GUI界面的技术实现过程。由于可以利用MATLAB提供的GUI设计及丰富的函数库,因此比其它语言开发类似的软件编程工作量较小。本系统可以较好地激发学生的学习积极性和学习兴趣,提高了学习效率,在教学的实际应用中取到了较好的教学效果。另外,也可参照插值法的GUI界面去设计数值分析中其它教学内容的GUI教学界面,有兴趣的读者可以尝试。

[1]赵景军,吴勃英.关于《数值分析》教学的几点探讨[J].大学数学,2005,21(3):28-30.

[2]王强,金珩.MATLAB环境下的数值分析教学软件开发[J].内蒙古民族大学学报:自然科学版,2004,19(2):176-179.

[3]刘卫国.MATLAB程序设计与应用:第三版[M].北京:高等教育出版社,2006:76.

[4]钟尔杰,黄廷祝.数值分析[M].北京:高等教育出版社,2004:48.

Design on Aided Teaching System of Numeric Analysis Using MATLAB

LI Jun-cheng,YANG Di-chen,YANG Lian,LI Bing
(Department of Mathematics and Application Mathernatics,Hunan Institute of Humanities,Science and Technology,Loudi 417001,China)

Aiding effectively the teaching of numeric analysis,an aided teaching system is developed for numeric analysis with MATLAB as a working language and developing environment.As an example,the technical process of GUI design for interpolation methods in numeric analysis is given.This GUI could more intuitively show the results of different interpolation methods,which could stimulate the learning interest of students.The practice shows that the system works well.

numerical analysis;MATLAB;aided teaching;data interpolation

(责任编校:光明)

TP311.5

A

1673-0712(2011)02-0084-03

2010-11-28.

湖南人文科技学院教学改革研究项目(RKJGY0948).

李军成(1982—),男,湖北汉川人,湖南人文科技学院数学与应用数学系讲师,在读博士,研究方向:计算机辅助几何设计、数值计算。

猜你喜欢

插值法教学系统插值
基于Unity的计算机硬件组装仿真教学系统设计
基于移动学习理念的智慧教学系统
《计算方法》关于插值法的教学方法研讨
《计算方法》关于插值法的教学方法研讨
基于Sinc插值与相关谱的纵横波速度比扫描方法
基于交互式双板教学系统的高中地理教学研究
顾及局部特性的自适应3D矢量场反距离权重插值法
一种改进FFT多谱线插值谐波分析方法
基于四项最低旁瓣Nuttall窗的插值FFT谐波分析
汽车配件营销实践教学系统开发