1. 研究意义
人类的进步离不开科学研究和科学实验,数学作为所有科学中最为基础的一门学科理论,是研究其它科学的主要工具,而数学实验则是这个工具发挥作用的重要依托。数学实验是搭建真实问题与数学理论知识之间桥梁的有效途径。它既是一种学习手段,也是一种科研方法。数学专业的学生可以通过数学实验获取在传统的学习环境中无法获得的知识信息,也可以通过数学实验给出解决真实问题的科学严谨的答案。
数学教育不仅要为学生们灌输新的理论知识,还要培养学生们的创新思维能力以及运用数学方法解决真实问题的能力,这是高等教育的意义,也是高等教育改革的重要目标。“大胆猜想、小心求证”是解决大部分科学问题的基本步骤,数学问题的解决也是一样的,其中验证的过程离不开数学实验的参与。而“建立数学模型、给出求解算法、利用数学软件得出数值解”则是利用数学理论解决真实问题的基本步骤,其中求解算法的实现同样依赖于数学实验。学生通过实验探索数学规律、解决真实问题,反过来数学实验也可以帮助学生深入理解数学理论,两者相辅相成。基于上述考虑,本文认为基于真实问题的数学实验教学在数学教学和实际应用中都有着重要的地位和意义。
当今社会,数学学科飞速发展,新的数学分支层出不穷。而且各分支之间,数学与其它学科之间相互交叉、相互渗透,呈现高度统一的新趋势。大量新兴的数学方法被成功应用于科学研究的各个领域,现代数学已不再仅仅是其它科学研究的理论基础,而是直接发挥着第一生产力的作用。目前在医学、工学、农学、经济学等方面正在大量运用的很多技术从本质上说都是数学技术,这一点已被越来越多的人们所认识。因此,运用数学观念、数学知识解决真实问题的能力是非常重要的能力。
数学实验课的教学任务就是要培养学生利用数学理论知识解决真实问题的能力。在数学实验课上,教师在培养学生们逻辑思维能力的同时,还会更侧重培养学生们的数学建模能力和使用数学软件简化计算过程的能力。如前文所说,当今社会,解决真实问题的能力是非常重要的,并且随着科技的发展,这项能力会越来越重要。由此可见,数学实验教学改革是数学教学和课程体系改革的重要内容。
本文将主要介绍如何通过建模方法将真实问题转化为数学问题,并通过在计算机上实践,使学生掌握用数值模拟的方法解决真实问题的全过程。数学实验中的真实问题可以取自各种应用领域,例如工业、农业、技术、经济管理、军事等。这些领域都关系着国家的发展,所以对基于真实问题的数学实验教学改革进行研究是非常必要的。
2. 研究现状
近来,随着科技的迅猛发展,数学学科在各领域都大放异彩,数学实验教学改革也逐渐成为了教学改革的热点课题。全国各高校都对数学实验课进行了多方面的教学改革,从教学理念到教学内容,从教学手段到考试方法,并且取得了很多成果。
文献[1] [2]中细数了现在高校数学实验课上存在的“学生对理论知识掌握不足”、“学生对数学软件使用不熟练”等问题,一针见血地指出了“数学实验教学仍处于摸索阶段”,并提出了“激发学生兴趣”、“丰富学生理论知识”、“组建高素质教师队伍”等改进策略。文献[3]中,内蒙古民族大学数学学院的张永富老师提出了要增强数学实验课的设计性、改变数学实验课的考核方式。文献[4]则提倡教师在数学实验课的教学过程中分清主次、使用通俗易懂的语言、保证教学内容的连贯性和持续性。文献[5] [6]则阐述了数学实验课对高校数学教学的重要性和不可或缺性。文献[7]中,李建涛老师也强调了培养学生数学思维及利用数学软件解决问题的能力的重要性。
现如今,能进行数学实验的软件有很多,例如:Maple、Mathematica、MATLAB、MATHCAD、Python、SPSS、Lingo、R语言等。其中,最为常用、功能也较为齐全的是MATLAB。文献[8]-[11]就分别介绍了MATLAB在高等数学、张量分析、概率论与数理统计、图像处理等课程的教学过程中所发挥的重要作用。本文将以MATLAB为例,阐述如何从真实问题出发,培养学生数学建模以及利用数学软件求解模型的能力。
3. 改革思路
3.1. 改革数学实验课的引入方式
传统数学实验课,以数学软件引入。第一节课就是向学生们介绍数学软件的起源与功能,这样做可以让学生们更快地对所学数学软件有所了解。但实际上,数学软件只是求解数学模型,进而解决真实问题的一种工具。所以传统的引入方式容易造成本末倒置的结果。在课程改革中,我们要从真实问题出发,引导学生建立数学模型,设计求解模型的流程,再抛出“算法流程”和“如何批量实现”等概念和问题,最后引入数学软件。这样,学生们的思维方式将从“我有这个工具,我能解决什么问题”转换为“我有这样一个问题,我要寻找(设计)一个什么样的工具解决它”,这也是学生被动学习到主动学习的转换。
3.2. 改革数学实验课的主导角色
传统的数学实验课,以教师展示为主。传统的数学实验课仍是以教师进行操作、展示为主。而事实上,数学实验课与其它学科(例如物理、化学、生物、医学等)的实验课一样,都应该着重培养学生们的“动手能力”。当然,对于数学实验课来讲,所谓的“动手能力”包含的范围更广。它不仅包含学生的实际操作能力,还包含学生的逻辑思维能力等。显然,这些都不能单纯地依赖教师的机械展示。在课程改革中,我们将尝试以学生为课程主导,给学生更多的发声机会。教师提出一个真实问题,学生主动思考并解决。过程中,教师给出适当引导和启发。由此,学生可以建立独立、完整的解决问题的思维体系,这将对他们学习数学乃至解决现实生活中的其它问题都有很大帮助。
3.3. 改革数学实验课的教学模式
传统的数学实验课,以教师展示、学生练习为主要的教学模式。但是,前两年由于疫情频发,一些课程转化为了线上课,这样教师将难以对学生的练习情况进行监督。事实上,即使是线下课,教师也很难兼顾到所有学生,纠正学生们编程过程中的“坏习惯”和“小错误”。这样会导致学生们在实验课上学习效率低、安于“躺平”等问题。在课程改革过程中,我们要将每位同学的数学软件界面链接到教师计算机上。在讲解之后,教师可以随机抽出一位同学,将他的数学软件界面投影到大屏幕上,并让该名同学讲解自己的编程思路。再让其他同学找出其算法的可取之处与需要改进的地方,最后教师进行总结。这样可以调动所有学生的学习积极性,有效地提高学生们的学习效率,使学生们真正的学有所得。
4. 改革方案
4.1. 搜集真实问题
要想通过真实问题引出数学实验课的重要意义,需要教师了解大量的真实问题,所以在做课程设计之前,教师要搜集大量真实问题。真实问题的搜集渠道有很多,比如各类建模竞赛、各类学科交叉问题、日常生活中可能会遇到的问题、时事热点问题,以及数学实验相关教材上罗列的各类典型问题。教师需对搜集到的真实问题进行分类总结,为每一类问题命名,比如排名问题、分类问题、最短路径问题等。
4.2. 探索解决真实问题的方法
对于上述各类问题,教师还需给出多种求解方案,这样才能丰富课堂内容,为学生们提供更多维的解决问题的思路。经典的求解数学模型的算法有很多,例如:蚁群算法、遗传算法、模拟退火算法、人工神经网络算法等。随着科学研究的不断发展,各种新兴的有效算法将层出不穷,教师需要不断将这些算法补充到自己的教学内容中,并针对特定的真实问题提出自己的想法和改进思路。
4.3. 提出真实问题
接下来,就是课堂实践。教师需要把自己搜集到的真实问题整理为更适应课堂的问题。通常,一道数学建模题目的求解时常是三到七天,很显然,把数学建模竞赛的题目直接搬上课堂是不合理的。教师可以对题目进行适当简化,或者结合教学对象的实际情况对真实问题进行改编,提出更具课堂适应性的问题。教师在课堂上提出的真实问题一定要贴近学生的生活,这样才能最大程度地激发学生们的学习兴趣。
4.4. 引导学生给出求解方案
教师提出问题以后,需要对学生进行简单引导,让学生们畅所欲言,说出自己解决问题的思路。通常情况下,学生们最开始提出的解决方案未必是可行的,此时需要对学生们进行适当鼓励,以免打消他们的积极性。适当的时候,教师可以向学生们展示自己搜集到的解决该问题的方法,启发学生们得出更行之有效的解决方案。最后,教师需引导学生写出解决问题的步骤,进而得出算法流程,并通过数学软件编程实现。
4.5. 归纳总结,建立真实问题与理论知识之间的联系
在一类问题得以解决之后,教师还要带领学生复盘,归纳总结所学到的知识,强化思维能力。此时,教师还需引导学生们思考“在解决该真实问题的过程中用到了哪些数学理论知识”,进而强调数学学科的重要性乃至数学在科学研究及真实问题中的重要地位。这既可以促进学生们在数学实验课上的主观能动性,也将激发学生们学习数学理论知识的积极性,真正实现理论课与实验课相辅相成、互相促进的课程目标。
5. 改革案例
要想通过真实问题引出数学实验课的重要意义,需要教师了解大量的真实问题,所以在做课程设计之前,教师要搜集大量真实问题。真实问题的搜集渠道有很多,比如各类建模竞赛、各类学科交叉问题、日常生活中可能会遇到的问题、时事热点问题,以及数学实验相关教材上罗列的各类典型问题。教师需对搜集到的真实问题进行分类总结,为每一类问题命名,比如排名问题、分类问题、最短路径问题等。
5.1. 定积分的近似计算
1) 导入新课
定积分是数学学科的重要教学内容,在很多真实问题的求解过程中都发挥着关键作用。在数学课上,我们学过很多计算定积分的方法。但是在实际应用中,被积函数的原函数往往难以求得,且对定积分精确性的要求并不高。此时,我们需要计算定积分的近似值。
2) 讲授新知
活动一:引导学生回答曾经学过哪些计算定积分近似值的方法,例如:左矩形法、右矩形法、梯形法,并适时补充学生不熟悉的方法,例如:辛普森法、高斯求积法,进而引出本节课的教学重点。
活动二:引导学生回答如何利用MATLAB实现这些方法,并鼓励学生在计算机上独立操作。
活动三:鼓励学生提出数学实验过程中遇到的难点问题,例如:辛普森或高斯求积法的编程思路难以确定;梯形求积法的自变量间隔难以确定等。结合这些难点问题讲述本节课的知识要点,即各类求积分法对应的MATLAB自带的函数,以及函数内部参数的设定方法。
3) 示范讲解
教师演示实验过程,包括:目标确定、方案设计、编程语言组织、报错调试等。此时,教师除演示如何调用MATLAB自带函数外,还应向学生们展示如何利用算法原理自行编写函数,揭开MATLAB自带函数的神秘面纱,激发学生们利用数学实验解决真实问题的信心。
4) 巩固练习
学生进行练习,教师巡视辅导。在此过程中,如果发现学生编程时存在共同问题,教师需及时指出,公开讨论。
5) 展示评价
鼓励全班同学展示自己的练习成果,并组织其他同学对其成果进行点评。教师要适当表扬并进行总评。
5.2. 遗传算法的仿真与实现
1) 导入新课
遗传是我们生活中常见的生物现象,在遗传过程中,父母的遗传信息以基因的形式传递给后代。生物种群稳定性和多样性的保持很大程度上依赖于遗传机制。遗传算法,就是通过借鉴生物界的这一进化规律而演化来的随机搜索方法,其在组合优化、机器学习、信号处理、自适应控制等领域都占据重要地位。
2) 讲授新知
活动一:引导学生回忆生物学中所学的“遗传”机制有哪些特性,例如:稳定、多样、适者生存、优胜劣汰,并适时补充学生没有想到的特性,进而引出遗传算法的优势,例如搜索过程不易陷入局部最优点等。
活动二:通过“遗传”机制形成的要素(例如:生物种群)及过程(例如:交配繁衍),引导学生们回答执行遗传算法的步骤:① 生成初始种群;② 构造交配池。
活动三:引导学生根据自己的想象写出遗传算法流程图,并提出执行该流程过程中可能会遇到的问题,例如:如何模拟真实数据生成初始种群数据,如何实现遗传过程中的交叉与变异等。结合这些难点问题讲述本节课的知识要点:遗传算法的仿真与实现。
3) 示范讲解
教师演示实验过程。首先,进一步梳理遗传算法的基本原理;其次,展示如何将决策变量与种群相对应;再次,通过解决具体的优化问题(例如:非线性规划问题)展示遗传算法的编码过程;最后,介绍此过程中MATLAB自带的各类函数的用途与用法。此过程中,教师需将生物学中的遗传现象与编码过程紧密结合,进而提高学生们的学习兴趣,带领学生们走出数学课程枯燥乏味的误区。
4) 巩固练习
教师向学生们介绍多类真实问题,学生们自行组队,选择一类真实问题求解。在此过程中,对于建模新手,教师可以事先分析真实问题、提供建模思路。例如,在暴雨强度公式优化问题中,教师可以提醒学生利用最小二乘法建模。
5) 展示评价
以小组为单位,展示建模结果。教师需对同类真实问题的不同解法做出比较性点评,并提出其它更优的方法以供学生参考。
6. 结语
本文以“定积分的近似计算”和“遗传算法的仿真与实现”两节课为例,展示了基于真实问题的数学实验课程改革的方案。如果说数学是一门工具学科,那么数学实验就是这项工具的使用说明,而数学实验课程的教学方案则是“讲”好这份说明的有利依托。基于本文教学方案的数学实验课程的有效性已经在教学实践中得以验证,它加深了学生们对数学知识的理解,提高了学生们利用数学知识解决真实问题的能力,拓展了学生们面临困境时的思维模式。
基金项目
辽宁大学本科课程教学改革项目:基于真实问题的数学实验教学改革(JG2022ZSWT031)。