摘要:结合理工科硕士生数值分析课程的内容、特点和教学实践中的一些问题,较详细地介绍了根据课程教学目标进行教学设计的基本思想,给出了改进教学方法的手段,提高教学效果的途径和方法。实践表明,教学方法的改革能够有效地激发学生学习兴趣,帮助学生理解算法构建思想,提升学生算法应用能力。
关键词:数值分析;教学模式;教学改革;MATLAB软件
工学专业的数值分析课程教学内容主要是高等数学和线性代数中有关知识或模型在实际问题研究中的引伸和发展。它包括数值代数、数值微积分、数值逼近和微分方程数值解等基本内容。它是将所欲求解的数学模型(数学问题)简化成一系列算术运算和逻辑运算,以便在计算机上求出问题的数值解,并对算法的收敛性、稳定性等进行分析的全过程,与高等数学和线性代数课程的教学要求有较大的差异。
在数值分析课程教学中开展实践性教学已成为共识。作为一门研究生公共基础课程或专业核心课程,教师应注意它独特的应用性。尽管不少案例已经出现于课堂教学中,但这些案例源自多个学科、相对零散、系统性与专业性不强,学生往往需要首先消化案例自身的原理,导致教学效果不佳。虽然目前有许多高校在数值分析或数值计算方法教学中引入了MATLAB软件,利用MATLAB编写数值算法程序,但主要还是以讲授为主,由教师阐述基本理论和基本方法,通过软件进行基本方法的验证,缺少对综合性问题的解决思路,对学生能力的提升并没有起到预期的效果[1]。
推荐阅读:老师发表教改论文的普刊
对研究生数值分析课程进行教学改革,推进研究生优质课程建设,需要教师在教学内容、教学模式和实践环节等方面不断地探索与实践,才能更好地实现数值分析课程的教学目标,培养研究生的创新能力。本文结合数值分析课程教学的内容及特点进行了一些探索与实践。
一、课程教学方式与存在的主要问题
(一)课程教学内容与特点
数值分析课程的教学内容主要是介绍如何利用计算机来求解工程问题的数值理论和方法,兼有理论课和实践课的要求,主要有以下三个特点。
1.课程教学内容比较丰富,以实际工程问题中所建立数学模型的数值求解为出发点,主要包括误差的基础知识、插值法、数值逼近、线性方程组的直接解法和迭代解法、非线性方程求根、数值微积分、微分方程数值解等内容。
2.课程中介绍的常用数值算法逻辑性强、理论推导严密,有的方法构造技巧性较高,学生理解和掌握不太容易,需要有较好的大学数学基础。
3.课程中介绍的数值算法需要能借助计算机编程实现,上机实习是必不可少的一个环节[2]。这既要求学生通过学习理解算法的思想,又要求学生能应用计算机软件来解决实际问题
总之,数值分析是一门理论比较抽象、计算公式比较烦琐、实践性强的课程。
(二)课程教学中存在的问题
数值分析课程作为工学专业研究生的公共基础课,一般是多专业学生选课,课程大都采用大班的上课方式。课程教学以理论讲授为主,没有专门的上机学时。目前,课程教学中还存在以下问题。
1.在教学方法上,传统的教学方法只注重算法的数学原理的推导,缺乏实践环节的教学。在学时偏紧的课堂上,教师以理论知识为主讲授的形式,把一些基本的算法理论传授给学生。学生只是简单地了解有些什么算法和一些验证性实验,并没有很好地与实际问题相结合。大部分学生对这样的方式不能很好地接受,学习效果并不理想。
2.学生对常用数值计算软件(如MATLAB)的使用学习不足,动手能力普遍没有得到提高。由于教学时数的制约,算法编程本身不是本课程教学的主要内容。教师一般在课堂上不介绍算法的计算机实现问题。
3.在教学手段上,运用多媒体教学,虽然可扩展知识面和信息量,节约不少学时,但算法演示较少,对算法的收敛性、稳定性等分析讨论不够。
4.在教材建设上,多数数值分析教材的内容安排是先给出理论上的结论,进而用理论上的公式、定理等去解决实际问题,对各种问题常用计算方法的介绍相对独立。
二、课程教学改革设想与实践
(一)优化教学内容
为提高大学生的学习积极性,教师可以适当联系一些实际问题,用心收集和编制教学案例,进行有效的案例式教学。例如,教师可结合当前大数据时代的特征与要求,利用数值分析中的插值与拟合逼近方法、数值微积分方法等处理天气预报、图像处理、股票价格演变等问题。教学内容应该集中于算法的实现过程和实现方法方面,在课堂教学内容、实践教学内容和教学方法上做好优化设计[3]。
另外,加入具有代表性的工程背景知识及MATLAB程序案例和代码,能使学生更好地掌握工程背景、求解思想、数值算法和MATLAB程序实现等解决实际工程问题的全过程[4]。
(二)推进教学方法与教学手段改革
数值分析课程的教学内容从表面上看既有高等数学的内容,又有线性代数的知识,显得比较松散,教师组织教学和学生学习时就常常会感到难以掌握。但数值代数、数值微积分、数值逼近等相对独立的专题也给模块化的教学设计带来了便利。在教学方法和手段上,教师可根据不同的专题特点和要求,设计好教学内容、编制好教案,从而组织好教学。课堂上不同算法的讲授要区分重点和难点,主要分析常见算法的基本思想,比较算法的优劣。
1.对自然现象规律的描述与探究几乎都可以归结为逼近问题,应该说逼近的朴素思想与方法渗透于几乎所有的学科。函数逼近是科学计算的基本问题,也是数值微积分的基础。对插值、拟合等逼近方法,课堂教学应主要讨论如何用实验测得的数据来找出对函数f在一定意义下的近似表示,并分析这种近似表示的误差。因此,在教学方法上,教师可采用“讲授式+讨论式”的模式,从图像处理(灰度或彩色数字图像的放大/缩小)、股票交易日收盘价、天气预报等大数据热点的实际问题引入逼近问题的提法,围绕数据处理过程,运用微积分工具(泰勒公式、泰勒级数、多元函数的极值问题等)进行误差估计的方法,引导学生复现如何提供一个稳定的(或收敛的)、有效的逼近算法。这样既可以激发学生的学习兴趣,又可以使学生在数据处理的过程中体会到算法设计的思想,还让学生看到了高等数学思想在工程实践中的具体应用。
2.在数值代数方面,由于一些科技和工程问题常常归结为线性代数中的线性方程组Ax=b的求解,本课程主要介绍低阶稠密线性方程组的直接解法和大型稀疏线性方程组的迭代解法。这类解法的基本思想都可看成是对系数矩阵A的变换方法。对于工学研究生来说,在工程实际问题的处理中,矩阵是通用工具,而数学软件MATLAB是常用软件之一。由于线性代数内容本身的抽象性,对于数值代数部分的教学,教师结合软件的教学,可以帮助学生更好地理解各种矩阵变换之间的联系与区别,以及诸如基于矩阵的直接三角分解法、对称正定矩阵楚列斯基分解的平方根法、不同分裂矩阵的迭代法等数值算法的实用范围。
不论是经典的高斯消元法,还是逐次超松弛迭代法,虽然算法的向量(矩阵)形式简洁,但教师在课堂讲授时即使常使用三元低阶线性方程组,写出的分量格式在形式上也是较大的一块。在这种情况下,结合多媒体课件的教学往往会起到事半功倍的效果。笔者在教学中结合编写的教材[5],选择了一些实际问题案例,制作了电子课件,通过使用课件介绍算法的构造过程及原理,用实际例子演示计算机求解过程,可以更好地帮助学生领会数值算法的核心思想,消除数学公式推导的乏味。改变以往以课堂讲授为主的教学模式,在课外增加利用MATLAB软件解决实际问题的实践环节,实现和检验算法的有效性,真正做到学以致用,增强学生学习的信心。
3.在计算微积分时,不易求得精确解的非线性方程求根问题、难于求出微分方程初值问题解析解等问题,都可以基于函数逼近/近似的方法设计相应的数值方法求解。例如,数值积分的基本思想是把积分计算近似地表示为一些通过实验或其他途径得到的部分函数值的线性组合,就不必或不需要求出被积函数的原函数,而可以较直接地计算出积分的近似值;牛顿-科特斯求积公式就是在等距节点的情形下,利用插值多项式来近似地代替被积函数,便于定积分的计算和进行误差估计。微分方程初值问题解析解多数情况下不能求得。最简单、最古老的欧拉方法就是用未知可微函数的差商近似导数,用折线代替初值问题的积分曲线的逼近方法。这也是微积分学中“以直代曲”基本思想的体现。
教师在教学中要抓住函数逼近的思想和方法,根据不同的问题讲授相应的算法设计。这样就可以引导学生不断通过对问题解决方案的深入探求,增强求知欲。
不论是数值积分,还是非线性方程求根,都涉及到计算的效率问题。复化求积公式、龙贝格算法、牛顿迭代法求方程的根、龙格-库塔方法等,都是加速求得实际问题较精确的数值解的逼近方法。因此,教师在教学中还要注意对算法的数值稳定性、收敛阶、代数精度、绝对稳定性等的理论证明或推导。这些内容的基础就是做好对算法的误差分析与估计。
(三)增设实验教学环节
上文已提到增设实验教学环节的重要性,这里要强调两个方面。一方面,通过实践训练,要求学生在学习数值分析课程理论的同时,学会MATLAB软件。虽然随着时代的发展,各种各样的编程工具不断涌现,但对于科学计算来说,该软件还是具有较强的生命力,对工学研究生来说,也是一个常用的软件工具。另一方面,通过这样一个环节,使学生在算法的计算机实现中更好地理解和应用算法,能为算法的分析与设计打下较扎实的基础。如今,多数教材以不同的形式将MATLAB或其他数学软件编入教材中[6-7]。有的将软件和其他计算机基础知识作为一章或作为附录;有的在介绍每个算法时,给出了例题的MATLAB源代码;有的将源代码作为附录统一给出。不论哪种形式,都注意了算法的实现问题,为实践教学提供了较好的指导蓝本。
实践教学环节的增设也能更好地检验学生的学习效果。实际上,学生的上机实验往往会出现一些问题。例如,多数学生只满足于能运用机器得到一个运算的结果,而对如何使计算的结果以比较美观的形式输出,如何满足题目的精度要求等问题常常不会仔细考虑。学生是否较好地掌握了算法,是否得到了正确的结果,他们自己实际上并不完全清楚。总体而言,针对数值分析课程各部分的教学内容,分组或独立完成相应问题的求解,并在对算法总结时进行讨论,是一种较好的教学模式。
三、结束语
数值分析课程由于涉及内容较宽泛,可根据数值逼近、数值代数、数值微积分等模块内容,结合问题的工程背景,设计好相应的算法教学案例,采取模块式教学。对数值分析的基本理论和基本方法的介绍,教师应考虑到学时和课程内容本身,在教学手段上,可使用电子课件讲授。在通过软件演示算法的收敛性和稳定性的同时,教师还要设计一些综合性的问题,指导学生进行算法设计,并利用MATLAB软件实现,培养学生解决实际问题的能力。
* 稍后学术顾问联系您