工科专业《计算方法》课程教学改革探索

2022-03-18 12:26:40黄姣茹陈超波高嵩
创新创业理论研究与实践 2022年8期
关键词:插值法计算方法数值

黄姣茹,陈超波,高嵩

(西安工业大学 电子信息工程学院,陕西西安 710021)

数值计算在科学研究、工程实践中被广泛应用,特别是在计算机时代,适应计算机的新算法大量涌现,可以说数值计算进入了研究、应用和发展的新时期[1]。《计算方法》作为一门讲授数值计算基本理论和方法的课程,研究的是如何利用计算机求实际工程中各种数学问题的数值解。因其较强的实用性,该课程已经成为各高校数学专业与计算机科学与技术、软件工程、自动化等工科专业的一门专业基础必修课。

随着应用型人才培养工作的逐步推进,面向工科专业的课程重在培养学生综合运用所学知识解决实际工程科学问题的能力[2-4]。《计算方法》作为一门理论与实践结合的课程,需要学生能够通过分析实际工程问题建立相应的数学模型,能够根据不同算法的适用范围,选取合适的算法对构造的数学模型进行数值求解,能够通过编写算法的相关程序运用计算机进行求解。目前,针对工科专业学生开设的《计算方法》课程,主要涉及“非线性方程求根”“线性方程组求解”“牛顿插值法”“数值积分”“一阶微分方程的初值问题求解”等算法的基本理论及程序设计。由于现有课程教学内容涉及过多基本理论和算法的推导,在教学过程中出现了注重课堂理论教学忽略实践应用的情况,偏离了工科专业应用型人才的培养目标[5-7]。本文通过对目前课程教学现状的分析,以淡化理论推导强化实践应用为指导思想,尝试在《计算方法》课程的理论教学与实践教学两方面进行改革。

1 课程教学现状

为顺应应用型人才培养的要求,《计算方法》需要工科专业的学生能够理解各种数值方法提出的工程背景,掌握重要数值计算方法的设计思路,并能利用软件编程解决实际工程问题,然而,当前的课程教学现状如下:

1.1 理论教学与实际应用脱节,教学手段单一

《计算方法》中涉及的各类数值计算方法本身具有很强的工程背景,而现有课程教学过程中重在讲解常用数值计算方法的基本原理和具体实现步骤,在公式推导、定理证明及程序实现上花费了过多的时间,对各类数值算法的问题来源、应用范围和优势及不足的分析不够具体,对如何根据实际情况选择合适算法以及改善算法性能等实际运用重视不够,导致工科专业领域涉及的数值计算问题在课堂中没有得到充分体现,学生在课程学习结束之后,只会生搬硬套用公式做题,却不知道如何运用数值计算方法去解决本专业以及工程中实际的计算问题,存在理论教学内容与实际应用联系不紧密的问题。另一方面,由于课程教学内容多而学时分配少,在教学过程中教师通常是“满堂灌”,缺少相应的启发与引导,学生往往处于被动接受的状态,而且整个理论教学环节主要通过板书和多媒体课件的形式完成,课本上的例题也多数通过讲授直接给出结果,教学手段略显单一,导致学生感觉上课过程十分枯燥,课堂参与的积极性和主动性都不高。

1.2 实验内容陈旧,实验手段落后

《计算方法》是利用计算机求解各种数学问题的课程,在工科专业开设重在锻炼学生利用数值计算方法编程解决实际工程问题能力。现有实验内容的设置较为陈旧,还停留在对算法本身的理论验证方面,没有很好地结合工程案例。以笔者所在学院为例,目前开设的实验有:“非线性方程求根”“线性方程组求解”“牛顿插值法”“数值积分”“一阶微分方程的初值问题求解”等,虽然分配了较多课时,但学生只是按照指定算法完成编程。然而在解决实际工程问题中,往往需要先将具体问题抽象为数学问题,即建立了能描述或等价代替实际问题的数学模型后,才能继而为该数学问题选择合适的计算方法,最后才是编程实现。此外,实验手段的选取也较为落后,目前所用仍是一些数学处理功能较弱、语言结构复杂的高级语言,如C语言等。一方面,这些编程语言不能很好地通过可视化的图形直观地展示各种算法的优劣势。另一方面,学生在程序设计时,往往会因为一些小小的语法错误导致程序无法正常执行,从而花费更多时间在代码形式上的纠错方面,而忽略了算法自身的性能分析和改进。

2 教学改革措施

针对以上教学现状结合课程自身的特点,从理论教学和实践环节两方面提出如下改革措施。

2.1 理论教学方面

(1)以实际案例驱动教学。

《计算方法》作为专业基础课,为了更好为以后的专业课学习奠定基础,需要充分结合本专业实际,从工程背景出发,采取实际案例驱动教学的模式,将学生学习的侧重点放到对实际的案例分析和求解上,通过对问题的分析,引出相应数值计算方法的工程由来(出发点)、主要解决思路和基本实现流程,同时为了增加算法讲授的直观性,每个算法都引入流程图,以软件编程演示算法,淡化教材中复杂、繁琐的理论证明和公式推导,侧重在实际中如何使用算法解决问题,让学生在应用的同时完成对算法原理的学习,避免了枯燥、繁杂的理论说教。这样,不仅增加了学生学习的积极性,而且有利于提升学生的综合分析和解决实际问题的能力,同时也从根本上回答“学习这门课有什么用”的问题。

以插值法为例,笔者在教学的过程中从汽车安全刹车距离的问题出发,引出车速和安全刹车距离之间函数关系具体表达式未知的实际情况,让学生讨论如何确定任意给定车速对应的安全刹车距离。随后,给出一组车速和对应刹车距离的实际采集数据,引入插值法的由来,讲述Lagrange插值法,通过演示运行算法程序,发现如果增加一个车速-刹车距离的采样数据,对应的Lagrange插值基函数要重新计算,进一步引入具有继承性的牛顿差商插值法,在后续在讲述中,考虑等间隔车速-刹车距离的数据采集情况,引出牛顿差分插值法,考虑到代数插值阶次过高导致龙格现象,讲授分段插值法。在整个插值法章节内容的讲解过程中,始终围绕最初的汽车安全刹车距离问题,讲述各种插值算法,并分析它们各自的优劣性和适用范围,使学生了解插值法能够解决哪些实际问题的同时,还能够根据具体情况从多种方案中选取最合适的解决方案,课堂的实际反馈效果良好。

(2)采用灵活多样的教学手段。

充分发挥线上+线下混合式教学的优势。考虑到课堂时间有限,对部分复杂的算法推导及数学证明,可以提前以文档或视频的形式发放到线上教学平台供学生学习,这样学生可以在课前主动参与到课程学习中。在线下的课堂教学中,可以通过与学生交流沟通,了解其线上学习后的难点,从而进行有针对性的讲授,提高了学生的学习效率。这种混合式教学方式表面上看教师课堂上讲的部分减少了,实际上却能够更好地解决学生的困惑,起到了事半功倍的效果。

以实际的操作演示为主。在算法设计和性能分析过程中,避开单纯枯燥的理论讲解,教师可以提前编好程序(可预设一些常见的小错误),在课堂上运行演示,学生可以直观地看到算法运行的结果,此时可以从结果出发,引导学生分析各种算法的适用条件、优势劣势以及改进思路。同时,通过故意设置的一些错误,可以激发学生共同参与解决问题的兴趣和热情,学生在此过程中更好地领会了算法程序编写过程中应注意的技巧和细节。

改变传统的教师“满堂灌”。教师在课堂上作为引导者,尝试让学生作为角参与到整个教学环节中。比如,每章内容教师可以只讲授其中的一到两种经典方法,其他的算法由学生以分组汇报的形式完成。汇报过程中,由组长讲授算法原理,副组长演示程序,在演示过程中,提问其他组员。这样,学生在课前会主动查阅文献,完成算法理论的学习和整理,准备讲授需要的资料。这个过程让学生对课程内容有更深入地理解,同时也能更好地参与到课堂中。

2.2 实践环节方面

(1)层次化的实验内容设置。

为了加强学生对常用数值方法的理解与掌握,提高学生应用算法编程解决实际工程问题的能力,将上机实验内容分为两大模块:侧重数值计算方法理论验证的基础性实验和侧重解决实际工程问题的综合性实验。

前者主要针对理论教学中涉及的某些特定算法,进行相关实验内容的设置。实验题目主要来源于课本中的例题,或者课后的练习题。这类实验属于数值方法的纯理论仿真验证,要求每个学生单独完成实验内容。目的是让学生掌握课堂上讲授的理论知识,熟悉编程软件中涉及的相关命令、函数,能够逐渐掌握基本算法的编程实现。

后者主要针对常用数值算法在实际中的应用,进行相关实验内容的设置。收集设计实验题目的途径多样,可以结合本专业实际的工程项目,可以源自教师负责的科研项目,也可以从其他专业的经典数值计算案例和以往的数学建模比赛题目中挑选,设计适用于本课程的实验项目。这类实验内容具有一定的综合性,采取小组合作的方式完成实验,同时为避免一人包揽的情况,要求每个组员有明确的分工。目的在于让学生了解《计算方法》课程的实际工程应用,锻炼学生分析实际问题、建立数学模型、选择合适算法、编写程序和结果分析等方面的能力。同时,有利于培养学生的团队合作能力及沟通交流的能力,能够最大化发挥实验的效果。

(2)选用专业的数值计算软件。

在软件选取上,可以考虑使用具有完善的数据可视化功能、简单易学的语法结构、调试方便实用、易于扩充等优势的专业软件代替C语言等。一方面,可以很好地通过可视化的图形直观地展示各种算法的结果,分析算法的适用条件和优劣势;另一方面,学生在程序设计时不会再因为一些小小的语法错误而花费更多时间在纠错上,能够将节省下来的上机实践时间用于算法自身的性能分析和改进。MATLAB作为一种数值计算、分析能力强大的专业类应用软件,拥有丰富的数据类型和结构、友好的面向对象、快速的可视图形、众多的数学和数据分析资源及应用开发工具。在工程计算与数值分析、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等工程领域都具有广泛的应用,已成为国际公认的优秀工程应用开发环境。但MATLAB的符号计算能力较弱,其符号计算来自另一个通用数学工具软件MAPLE,并且可以在MATLAB中很方便地实现MAPLE的调用。同样MAPLE具有很强大的符号计算功能,而数值计算能力弱,但在MAPLE中能很方便地实现MATLAB的调用。如果学生能同时掌握这两个常用的软件工具,就可以在MATLAB和MAPLE的交互平台上解决一般的数学计算问题,从而为解决复杂的工程应用问题和研究问题提供一种有效的手段。

3 结语

针对《计算方法》课程教学现状,从理论教学与实践教学两方面提出一些改革措施,强调算法的实际应用,淡化相关理论证明和公式推导,目的在于提升工科专业学生运用所学理论知识综合分析和解决实际工程问题的能力。

猜你喜欢
插值法计算方法数值
用固定数值计算
浮力计算方法汇集
数值大小比较“招招鲜”
《计算方法》关于插值法的教学方法研讨
智富时代(2019年7期)2019-08-16 06:56:54
随机振动试验包络计算方法
基于Fluent的GTAW数值模拟
焊接(2016年2期)2016-02-27 13:01:02
不同应变率比值计算方法在甲状腺恶性肿瘤诊断中的应用
基于二次插值法的布谷鸟搜索算法研究
Newton插值法在光伏发电最大功率跟踪中的应用
电源技术(2015年7期)2015-08-22 08:48:34
一种伺服机构刚度计算方法