参考文献
杨启东
摘 要 在大学生数学建模竞赛中,经常运用到数值分析课程中的相关算法,但是目前该课程教学过程中往往“重推理,轻实践”,难以满足竞赛的需求。因而以数学建模竞赛为契机,促进该课程的教学改革,就显得十分必要。本研究中,笔者提出了课程教学和建模竞赛相融合的设想,并提供了四条可行的改革措施,以期促进课程教学,并提高建模竞赛成效。
1 现状分析
大学生数学建模竞赛通过多年的发展,从参赛人数、论文提交数量及影响力等多个方面而言,它已经成为大学生学习中最重要的一项竞赛活动[1]。这项赛事的成功充分体现了数学建模竞赛的无穷魅力。数学建模竞赛激励了大学生学习的积极性,提高了他们解决实际问题和计算编程的能力,培养了学生的创造力和团队合作的精神。已有研究表明,参加过竞赛的学生在进一步深造、实际工作中解决问题的能力均要强于一般学生[1]。为了取得优异的竞赛成绩,各大高校和大学生均非常重视这项赛事,高校通过开设与数学建模相关的必修课和选修课、开展高强度集训、组建建模协会等方式进行赛前准备,赛后又通过各种类型的评价、复盘等总结竞赛的得失。可以看到,数学建模竞赛已经不是一项简单的赛事,而是作为一个平台,让学校、教师和学生乃至培训机构等借此实现各自的目的。作为高校教师,更应该思考的是如何利用好这个平台,将数学建模的思想和方法运用到实际教学中,促进教学改革,达到提高学生能力的目的。
基于数学建模竞赛的课程改革研究已经受到了广泛关注。例如,卢军等探讨了基于数学建模的数学主干课程教学改革[2];盛光进研究了将数学建模思想融入“高等数学”教材[3];李志林等探讨了将信息技术与数学建模相融合的方法[4]。这些教学研究极大地丰富了课程的教学内容和教学手段,真正提高了课程的质量和学生的能力,值得每一位从事相关教学的教师学习和思考。与此同时,针对某些具体的课程,尤其是和数学建模密切相关的课程,继续积极开展这些课程的教学实践和改革也具有重要的意义。
“数值分析”又称为“科学计算” “计算方法”等,“数值分析”课程的内容主要是介绍求解数学问题的一般理论和方法,包括求解代数方程组和微分方程、函数逼近和数值积分等内容[5]。这门课中介绍的各种算法可以直接使用计算机编程实现,进而解决应用问题,因而它是理工科专业的一门重要专业课。目前大部分高校的教学中,“数值分析”课程还是以课堂讲授理论为主,以开展实验课程为辅,理论课时一般在36~54学时之间,实验课时在20课时左右。理论课教学主要是引出定义、证明定理、推导算法等;实验课主要是实际算法编程、求解一两个数值、验证算法等,以此最终完成教学任务,这是典型的“重推理,轻实践”教学模式。不可否认,这种教学方法在过去课时较多、统一集中授课的情形下不失为一种很好的方式。但是,随着多媒体技术的广泛应用、计算机的大量普及、数值软件日臻成熟、慕课线上课程资源日益丰富,如此的教学模式就略显陈旧,已经跟不上时代的发展。在实际教学过程中,学生普遍认为这门课程抽象、枯燥,难懂难学,无用或学了也不知道何处可用,长此以往,学习积极性较低,厌学情绪严重。为此,教学内容、教学方式等的改革课程就显得尤为迫切。
在数学建模竞赛中经常运用到“数值分析”课程中的相关算法。为了准备竞赛,学生需要在短时间内快速了解这门课程的相关内容,寻求模型的最佳求解方案,并不关注课程的完整内容和推理过程,这是典型的“重实践,轻理论”教学模式,数学建模竞赛的需求和目前的数值分析教学方式之间存在错位。当然,数值分析课程并不是专门为数学建模竞赛而设置,并且在大学教育缩短课时,提倡通识教育的背景下,增加课时为数学建模竞赛开展赛前培训,尤其是针对“数值分析”课程的课时,是不现实的。但是,充分挖掘现有课程资源,在保证教学质量的前提下,以数学建模竞赛为契机,有机融合课程教学和建模竞赛,促进课程的教学改革,需要我们深入研究。
2 数学建模竞赛与“数值分析”教学融合
要以数学建模竞赛为契机,针对“数值分析”的教学现状,在计算方法课程教学中进行如下四个方面的课程改革和探索。
第一,充分利用数学建模竞赛中的案例,引入模型求解所需的数值算法。在数学建模竞赛中,其中一个重要的环节就是选择合适的算法求解模型,大量的模型求解中涉及的算法是数值算法。例如,2018年建模竞赛中关于防火服的设计,其最终模型是一组热传导方程,需要用使用偏微分方程数值解法求解,其中涉及有限元方法、三对角方程组追赶法、三次样条插值等方法,这些方法是数值分析课程重点讲解的内容。在以往的教学中,教师教学时苦于没有合理的模型,通常是根据课本上给出的几个方程作为例题。这种例题设计非常完美,求解中几乎不会遇到稳定性、收敛性等问题,学生不明白这样的例子在何处可以遇到,因而也就失去了对真实世界中数学问题的兴趣。因此,在教学中引入建模竞赛试题,让算法不再是凭空设计,而是为解决实际问题而设计,极大地丰富了教学的素材。
第二,利用建模竞赛中涉及的新算法,适当拓展课程的内容。从近年来的数学建模竞赛试题中我们可以看出,虽然模型思想非常简单,但它却能以数据驱动建立模型,这种模型的难点是大量处理和分析、训练数据。例如,2012年的葡萄酒评价等试题,更多是统计建模,涉及层次分析等方法。这些方法应用非常广泛,不仅仅在建模竞赛中,而且在实际应用中也常有出现,但是在“数值分析”课程中却鲜有介绍。为此,结合建模竞赛试题介绍一些新算法是十分必要的。此外,还有一些算法是“数值分析”课程中重点向学生介绍的,如非线性方程求根的各类方法,但由于实现的难度、稳定性和计算时长的限制,难以针对建模竞赛的问题进行应用。而近些年来发展的人工智能算法,如粒子群算法、差分进化算法、蚁群算法、模拟退火算法等却能在有限时间内很好地解决这类问题。结合建模中使用到的这些算法,拓展数值分析课堂教学内容是十分必要的。这可以让学生在现有课程的基础上,掌握最新的研究动态,有助于他们开阔视野,今后继续深造。
第三,以数学建模竞赛为引导,开展高级程序语言编程训练。在数值分析课程中,算法描述通常用伪代码给出,要求学生运用相应的程序语言编程实现,以C、FORTRAN语言等编写而成。这些程序语言语法严格,不同平台的编译器及数据库要求均不一致,编译运行困难,而且实现可视化效果较为复杂,难以快速呈现不同算法之间的直观比较,很多学生难以迅速掌握编译和可视化,逐渐失去了学习兴趣。在以理解算法为核心的思想指导下,合理使用数学软件具有更重要的意义。尤其是以MATLAB为代表的数学软件,编译简单,在可视化效果方面具有明显的优势。在数学建模竞赛中,学生大量使用MATLAB、SPSS、Python等语言或软件的经验,可以快速移植到数值分析的实践中,在方便学生使用的同时,通过可视化分析,学生能更加直观地了解不同算法之间的差异,提高编程的能力,并在此基础上更加深入地理解算法。
第四,以数学建模竞赛论文为标准,强化数值分析课程中实验报告撰写和学术写作训练。目前的数值分析教学过程更像经典数学课的教学,以教师为中心,教师讲授课程内容,重视演绎推导,以证明计算为主,课后布置练习让学生巩固知识点。但事实上,数值分析中算法的应用场景仍然是实际模型,面对的是大型和复杂的综合问题,最终提供的是整套的解决方案,难以通过几道练习题模拟出来。而数学建模竞赛的论文则呈现了分析、解决问题和模型评价的完整过程,对数值分析习题,尤其是实验题,具有很好的启发作用。要仿照建模竞赛论文格式,设置数值分析实验题报告,每一章结束后,让每个小组的学生完整做完一道练习题,详细分析算法,实现程序,评价算法,最终出具实验报告。多年的教学实践表明,这样的教学成效非常好,学生做实验更加认真,在此后的大学生创新实验与本科毕业论文写作中形成了良好的习惯,更容易完成符合学术规范的论文。
总 结
数学建模竞赛对培养学生的能力具有重要作用,受到了大学生的广泛关注。在数学建模竞赛中经常运用到“数值分析”课程中的相关算法,为了准备竞赛,学生需要快速了解课程的相关内容,寻求问题的求解方法,这属于“轻理论,重实践”模式。“数值分析”课程教学以算法理论推导为主,编程实现为辅,这属于“重理论,轻实践”模式,两者存在明显的错位。为了提高课程教学和建模竞赛的成效,本研究提出两者融合的设想,进行了课程教学改革的探索与实践,并提出了四条建议,供相关教师参考。
参考文献
[1]竞赛组委会.进一步规范竞赛组织工作,不断提高竞赛质量[J].全国大学生数学建模竞赛通讯,2018(3).
[2]卢军,张兵权.基于数学建模的数学主干课程教学改革研究[J].高等理科教育,2011(4).
[3]盛光进.将数学建模思想融入“高等数学”教材的研究与实践[J].高等理科教育,2006(6).
[4]李志林,欧宜贵.信息技术与数学建模课程教学融合的探索[J].高等理科教育,2006(5).
[5]李庆扬,王能超,易大义.数值分析[M].北京:清华大学出版社,2008.