On the teaching practice of Matlab- platform-based
numerical analysisfor postgraduates of engineering major
GUIShu-guang
(School of Science, Anhui University of Science and Technology, Huainan, Anhui232001, China)
Abstract: This paper points out the features of numerical analysis course and its present shortcomings and introduces Matlab, an advanced software of numerical analysis. Besides, with regard to the teaching practice, the paper studies the teaching reform of Matlab-platform-based numerical analysis for postgraduates of engineering major from the four aspects of visualizing the abstract, simplifying the complex computing, enhancing the base of numerical experiment, and improving ability of case analysis.
Key words: numerical analysis; Matlab; teaching practice
随着计算机技术的迅猛发展,科学计算已经与实验研究、理论分析并称为科学研究的三大方法,借助于计算机和数值计算理论,人们能对自然科学、工程技术、经济管理及至人文社会科学领域中的数值模型求出数值解。因此,要求改革数学课程教学的呼声日益增长,而数值分析课程以其独特的特点首当其中,提高数值分析教学质量,培养学生数学素养,掌握实用算法并能熟练利用计算机求解成为当务之急。
一、数值分析课程的特点与现状
(一) 课程内容多杂而教学时数少
本课程包括了数值逼近(插值、函数逼近,数值积分与微分),数值代数(线性方程组求解、矩阵特征值与特征向量),方程求根(非线性方程(组)求解,解微分方程)等内容。在运用传统教学方法讲授这些知识时,由于公式多,推导过程繁琐,加上教学时数少(54学时),很多内容难以说清楚,致使学生产生厌学情绪,教学效果大打折扣。
(二) 计算复杂
解题时,一般都要进行大量的计算,不是一支笔、一张纸,外加一台计算器能顺利解决的,因此学生只能做一些简单的数值模拟题,难以领会和理解方法的计算要领和步骤,体会问题的条件和限制范围,理解一般问题和特殊问题的区别。
(三) 重理论轻实践
传统课程只注重讲授数值方法的原理,课堂教学占去整个教学过程的绝大部分时间,学生没有实验、实践的深刻体会,不能全面理解和运用教材中的算法。
(四)直观性差
课堂教学中难以对一些重要概念、重要现象进行直观展示,学生只是被动记忆一些结论,并不真正理解。
二、Matlab——优秀的数值计算软件
美国Mathwork公司于1967年推出了适用于不同规格计算机和各种操作系统的数学软件包-Matlab[1],它集数值计算、符号分析、图形可视化、文字处理于一体,语法简单、操作方便、界面友好,只要有点Windows操作经验,在短时间内就可学会它的操作和使用方法,而且其编程效率远优于BASIC、FORTRAN、C等软件。它具有很好的开放性,以它为基础开发的二十多个工具箱,可用于解决诸多学科专业中的数值计算问题。该软件已成为发达国家高等院校理工科学生必须掌握的基本软件,也是科学研究和工程设计部门解决具体问题的一种标准软件。用过它的人都感叹:用Matlab处理矩阵-容易;用Matlab实现可视化-轻松;用Matlab编程-简洁!
三、数值分析课程教学改革实践
针对数值分析课程的特点和传统教学中的不足,笔者在多年的教学实践中,将Matlab软件应用于数值分析教学,取得了良好的教学效果。主要做法如下。
(一)抽象内容直观化
心理学研究表明, 与抽象的内容相比,学生易于识记生动、形象、有趣的学习材料。如果能将抽象的数学知识直观的呈现在学生们面前,无疑将会极大地激起学生的学习兴趣,Matlab强大的可视化功能正好能做到这一点。一个典型的例子是在引入分段低次插值时,为了让学生更好地理解Runge现象,利用屏幕动态地显示f(x) =11+x2插值函数图象[2]31。
在[-5,5]上取等距节点(给定n,共取n+1个点)
xk=-5+k·10n ,k=0,1,2,…,n。
构造拉格朗日插值多项式Ln(x),随着n的增大,在区间端点附近Ln(x)与f(x)接近程度越差,形象的说明了高次插值函数近似f(x)的效果并不好,为讲授分段低次插值做了个很好的引子。
借助于Matlab平台,函数逼近中的误差分布,数值积分方法的改进,迭代过程等等均能很容易直观地呈现在学生面前。
(二) 复杂计算简单化
数值分析难,主要难在运算过程(公式)复杂,大部分时候难以靠一支粉笔在黑板上一步一步的演算,学生课后练习也只能做一些简单的数值模拟。而Matlab强大的数值计算功能,帮助我们解决了这个问题。
例如,用雅可比迭代、高斯-赛德尔迭代和超松弛迭代求解线性方程组的数值计算,计算量非常大,按照教材讲解,只能简单地告知结果,学生积极性不高,利用Matlab 编写三个简单的小程序,便可将计算结果(甚至每一步的迭代结果)直观地展示给学生。
例1 分别用雅可比迭代、高斯-赛德尔迭代和超松弛迭代解线性方程组[2]213
并比较收敛速度,取精度=10-5。其精确解为 x*=(-1,-1,-1,-1)T。
教学中,用自编的程序,很快得出了下列结果,并比较了方法的优劣(见表1和表2)。
数值分析教学中,这样的例子比比皆是,只要教师认真设计,不仅能大大激起学生对学习内容及过程强烈的兴趣,而且还对初步培养学生科学计算能力起到了重要作用。
(三)数值实验强基础
数值分析是一门实验性较强的学科,上机实验不仅能加深学生对算法稳定性,理论可靠性及计算复杂性的理解,培养学生的编程能力,还能培养学生质疑问题的能力和创新精神。因此每章结束后,都提供一两个问题要求学生利用MATLAB软件,自编程序或利用其库函数求解问题,分析结果。如学习线性方程组迭代法后,提供一个高阶病态的线性方程组,要求学生用各种方法上机求解,并对结果进行分析,找出收敛较快的迭代法,寻求最佳松弛因子。
(四) 案例分析长才干
实践性是数值分析课程区别于其它数学课程的一个重要特征。每个部分内容结束后,安排一个案例分析,帮助学生从“算”数学过渡到“用”数学。如海底测量(插值),估计水塔的水流量(插值、数值微分与积分),投入产出分析(线性方程组),商品的产量与价格(方程求根),导弹系统的改进(微分方程)等。通过这些案例分析,既使学生认识到数值分析的实用性,又让学生领略了Matlab的强大功能,积累了用数学软件解决实际问题的经验。由于教学时数的限制,案例分析一般由学生课后完成,教师负责指导。 (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)