用MATLAB加强数值分析教学的尝试
摘要:将MATLAB与数值分析结合,加强数值分析教学是一条可行的教学改革之路。文中介绍了新教学体系与新的课程内容。为解决课程蔽端,提供了新思路和新作法。
关键词:MATLAB;数值分析;教学改革
中图分类号:G421 文献标识码:A文章编号:1007-9599 (2011) 13-0000-01
Attempts to Strengthen the Teaching of Numerical Analysis by Matlab
Huang Cheng
(Foreign College Of Central South University of Forestry and Technology,Changsha410201,China)
Abstract:The combination of Matlab and Numerical Methods is a viable reform of teaching about Numerical Methods.This paper introduces the new teaching’s system and new curriculum.In order to solve the defects of curriculum,provides new ideas and approaches.
Keywords:MATLAB;Numerical Analysis;Teaching Reform
历年本科学生对数值分析的反映可表达为:抽象、冗繁、枯燥,只是为了考试而学。这种状况必须改变。
MATLAB在上世纪80年代推出后,已发展为一种功能全面的软件。它问世后,一个“用软件工具增强线性代数教学”的项目ATLAST在美国国家科学基金立项,并在90年代获得成功。其后欧洲日本等国家快速跟进,并在相邻学科中进一步拓展。
09年中南林业科技大学将“数值分析”改为“数值分析与MATLAB”,要求在教学领域有所创造和前进。我受教研究室的支持和帮助,在教学中进行了初步尝试。本文讨论该课程教学体系的改革和教学内容改变两个问题。
一、教学体系的变革
国内“数值分析”的多数是沿着方法原理、计算步骤、计算框图、计算速度、误差、收敛和实例这样一个体系展开旳。这套体系成型于手工计算时代。在低级语言编程的时代作了一定改进,但仍显繁琐。目前在MATLAB下,各种方法已打包为指令,不再需要对各种方法进行编程。使用者只需知道方法原理、调用方法和指令即可。导致教学的立足点己经不同,这是一个根本性的改变。面对这样情况的出现,课时与内容矛盾不断加剧,国内计算器时代建立起来的教学体系到了必须改变的时候,也具备了改变的条件。
现在我们在“数值分析与MATLAB”课中讲授数值分析是按:问题提法、解题理念与原理、解题指令与多指令的配合、计算结果表示、实例和实验这样一套教学体系进行的。
这样有什么理由和好处呢?一个课程的教学体系与该学科体系、教学目的、学习者层次等因素有关。从教学目的、学习者层次角度而论,本科生学习“数值分析”课的目的是应用它来解工程和科学问题;从学科体系看,数值分析的学科发展与计算工具有着密切的关系[1]。可惜,目前教学领域未适应这种发展和变革。所以改革是很有必要的。MATLAB只是软件发展的一个阶段,但也引起了很多变化。它的影响表现为两个方面:一可以把传统分析方法、设计程式处理得更简捷;二是推动新方法、新程式面世。例如在MATLAB中,用4阶Runge-Kutta数值积分法解常微分方程,核心部份是[2]
〔t,Y〕=ode45(odefun,tspan,y0)
从应用角度看,详细的讲ode45内Runge-Kutta算法是不必要的。只需知道输入量的意义、输入方法,能看懂输出量t,Y的意义,就可以了。换句话说,知道解题指令与多指令的配合、计算结果表示等就可以用了。但为保证正确使用,就必须了解其适用范围、优缺点等。讲授时就不必追求数学上的公式推导,而应着力阐述概念。其中包括:问题的数学提法,解题方法的实质理念、几何概念和计算公式。而有关计算速度,因仅用计算次数来分析计算速度,显得不适用。而在MATLAB中有计时器可测出指令计算问题的时间,从而得出该方法是否接受;也可对比不同方法的速度,从而给出评价。所以分三条途径学习:一是在解线性方程组的章节中重点介绍用计时器进行实测和评价;二是以做习题的形式,要求用计时器对比各种方法的计算速度;三是在章节总结中,从原理和实算二方面进行归纳对比。有关误差分为二条线:一是把误差概念集中一章介绍;二是在讲迭代法解微分方程和数值积分的指令时,介绍误差控制和自适应性。这样的好处是:立足应用,原理概念清晰,联系实际。一定程度上克服了抽象、枯燥的问题,提高了学生实际使用能力。
二、教学内容改变
在新形势下如何规范精选教学内容是个急待解决的问题。我们的原则是:摒弃部分原有的分析方法和设计程式,传授以MATLAB为基础的分析方法和设计程式。将课程内容设定为三部份:一是MATLAB基础,含MATLAB语言基础和数据可视化基础;二是多项式运算、数值微积、插值逼近、误差分析、解微分方程等传统数值分析的内容;三是符号运算、线性系统分析和Simulink建模仿真介绍。较传统意义上的数值分析内容更为广泛。
课程中MATLAB语言基础是最基本的。同时为加强形象思维和图示计算结果,安排了数据可视化基础。鉴于多项式运算在线性系统分析中的作用;插值逼近、解微分方程等为传统数值分析中最基本内容,于以保留。数值微积在解微分方程中要用到,也选取了[3]。符号运算、线性系统分析和Simulink等应用面最广泛,作为高端应用代表入选。
上述教学内容前两部份数学基础主要为线性代数、高等数学。线性系统分析和Simulink建模仿真等,则涉及运算微积、控制论、仿真等专业知识。各专业学生对于此类基础概念参差不齐是个突出难题。此部分课内适当补充基础,教师掌握好课程深浅是成败的关键。因此对数值分析实行分类分级教学,不同专业和不同层次的学生采取不同的教学方式,从总体上提高教学质量是特别必要的。
通过教学实践,我们形成了新教学体系。虽然这套体系尚不完整,但为解决“数值分析”课的蔽端,提供了一种新思路。但所选方法是否抓住了最基本、最有用的方法?能否反映学科前沿?颇值得讨论。改革是个长期的过程,成效多大,更要通过社会与教学的长期考验才会有结论。写了上面的文字,希望能得到大家的指正。
参考文献:
[1]马昌风,林伟川.现代数值计算方法[M].北京:科学出版社,2008
[2]张志涌,杨祖樱.MATLAB教程(R2010a)[M].北京:北京肮空航天大学出版社,2010
[3](美)Cleve B.Moler,喻文健.MATLAB数值计算[M].北京:机械工业出版社,2006
[基金项目]本文为中南林业科技大学涉外学院教改项目2011-07《用MATLAB加强数值分析教学的研究》研究成果之一。