1. 引言
微分方程(组)在社会科学、自然科学和工程技术等学科领域里有着广泛的应用,如:描述电磁场规律的麦克斯韦方程、反应流体运动规律的欧拉方程、刻画量子力学基本规律的薛定谔方程,等。对于这些非线性微分方程(组)定解问题的精确解常常是无法获得的,或者很难以精确的方式表示出来。这就需要对它们发展高效的数值计算方法,以寻求“好的”近似解。《微分方程数值解法》就是探讨微分方程(组)数值解法及其理论的一门课程。因此,如何面向研究生开设这门课程显得尤其重要。它不仅能培养研究生运用数学知识解决实际问题的建模能力、科学计算能力,而且对诸如研究生的科研创新能力等研究生综合素质的培养也具有重要的促进作用。
目前,很多高校没有对本科生开设《微分方程数值解法》课程。关于该课程教学内容、教学方法和实践教学等教学改革方面的研究成果不多。文献 [1] 从教学定位、教学内容、教学方法和考核制度等方面探究了这门课程的建设,提出了启发式教学,将建模思想融入课堂、注重数值实验等教学思想。文献 [2] 提出注重方程的物理背景和建模思想,运用科研与教学相结合的原则,开展多元化的数学实验等教学改革措施,以提高教学质量。文献 [3] 也提出通过将教学与科研相结合的原则运用到偏微分方程数值解法教学中,以提高教学质量,开阔学生视野和加强学生数学素质的培养。文献 [4] 在改革教学方法、更新教学模式、加强背景知识的介绍、融入数学建模思想、教学与科研相结合、教学与计算软件相结合、增设实验课,改革考核方式等方面做了一些教学改革的探索。这些成果主要针对数学专业本科生提出的一些教学思考和改革设想,没有详细地阐述在教学过程中如何具体地实现这些理念。如,怎样将科研融入教学。笔者发现还没有学者关注面向研究生开设的《微分方程数值解法》课程的教学改革研究。
我校研究生课程《微分方程数值解法》的授课对象是计算数学专业的研究生,其培养目标与本科生完全不同。虽然我校对研究生开设《微分方程数值解法》课程较早,但在该课程教学过程中,存在以下几个制约课程发展的主要问题:1) 教学内容多,教学课时很少,仅有32个学时;2) 研究生的基础参差不齐,编程能力弱,专业基础不牢,有的甚至没学过《数值分析》等基础课程;3) 教师往往忽视对课程《微分方程数值解法》的特点、特色,以及与其它课程联系等方面的深入挖掘,上课内容单一、枯燥,学生学习兴趣不高。
微分方程数值解法 [5] [6] [7] [8] 是计算数学专业中的一个重要研究方向,已经形成众多分支,内容庞杂。因此,如何让研究生更好地掌握《微分方程数值解法》课程的核心内容和思想,并且通过这门课程的学习能够对相关前沿问题开展创造性地学术研究是我们迫切需要研究、探索和解决的问题。因此,本文对这门课程开展基于研究生科研创新能力的教学改革与探索的研究是有意义的。
2. 教学原则和方法的探究
1) 教学理念服务教学目标
我校研究生的培养目标是培养掌握本学科坚实的基础理论和系统的专业知识,具有创新精神和从事科学研究、教学、管理或独立担负专门技术工作能力的高级专门人才。根据研究生的培养目标,结合计算数学的特点,本课程的教学目标就是要求研究生必须掌握常微分方程、椭圆方程、抛物方程和双曲方程等微分方程的常用数值方法的构造、数学理论分析、程序编写和优化、以及数据分析,能够灵活运用构造这些数值方法的思想,对复杂微分方程(组)建立高效计算格式及其理论分析,能够在微分方程数值解法领域里在导师的指导下独立自主开展科学研究。
为了实现课程教学目标,笔者在长期的研究生的教学中形成了科研与教学有机融合的教学理念。也就是,在教学过程中,老师要潜移默化地教授学生如何从事微分方程数值解法领域里的研究。如何实现这一理念,笔者认为可以从以下几点入手。① 深入介绍实际问题的应用背景和解决此类问题的数学方法是如何发现的,即,向学生介绍相关知识的来龙去脉,注重数学方法的发现及其思维过程的学习,使学生对知识点做到不仅要知其然,也要知其所以然。这样做的好处就是通过借鉴和学习前人发现知识的方法,引导学生学会对知识进行再创造,真正做到“授人以渔”。② 要学以致用,用以促学。首先,在学完一个新算法后,就要求研究生亲自在计算机上实现算法,验证算法的精度。然后,引导学生运用算法背后的设计思想,对某些复杂微分方程建立类似的算法及理论。比如,学习了线性抛物方程的交替方向隐式(ADI)方法,能不能导出非线性抛物方程组的ADI方法,进而可不可以建立耦合薛定谔方程组的ADI方法等等。只有这样,学生才能真正掌握这类算法。最后,通过提出问题–分析问题–解决问题–拓展问题的教学脉络,总结数值算法设计背后的数学思想,呈现数值算法的起源与落脚点。③ 最后,要引导研究生课外阅读与授课内容相关的经典文献和最新文献,让他们了解科研创新的思维过程,学习做学问的方法。教师可以从以下角度教授学生阅读文献的方法和做学问的方法。a) 学习的数值方法能否用于其它问题的求解。b) 新算法的设计思想能否用于其它新算法的设计。c) 能否通过发展一些新技巧,改进原有算法,建立精度更高,运算更快的算法。d) 文章的内容有没有错误,有的化如何改进。e) 能否自己开辟一个新的研究方向。
2) 精选教材,优化课堂教学内容
首先、精心选择经典教材,对教材做对比研究,挖掘它们的优缺点。例如,教材 [5] 探讨了一维偏微分方程的有限元法,有限体积法和差分法等算法,以及算法的稳定性与收敛性。与教材 [5] 相比,教材 [6] 增加了偏微分方程的边界元法和常微分方程的数值解法等内容,但对算法的收敛性着墨不多。教材 [7] 详细地介绍了常微分方程和刚性初值问题的各类数值格式的构造及其稳定性和收敛性分析。教材 [8] 主要研究了偏微分方程的各类差分格式的构造、稳定性分析以及对应的代数方程组的求解。通过对这些国内外经典教材做对比研究,充分吸收它们各自的优点,同时在引入最新研究成果的基础上,优化教学内容,撰写简明教案。
笔者认为老师应从以下几个方面组织和优化教学内容。① 首先,做好“少,精,深、新”的合理取舍。微分方程数值解法内容很多且在不断向前发展和充实中,不可能面面俱到。因此,每个大的章节里,重点选择一两个知识点深入讲解,突出难点和重点。比如,在一维抛物方程有限差分法的教学中,重点教授常系数情形时加权差分格式的构造方法和理论分析,至于诸如变系数、高维情形等可以作为课外作业让学生课外自主学习,培养他们的自学能力。② 为了实现研究生的科研创新能力的培养,必须重视数值算法背后设计思想、技巧和原理的教学,与学生分享算法发展的科学思维过程,以提升对科研的认知水平,引导学生学习前人的科研技巧和方法。③ 课堂上要重视微分方程的物理背景及其真解的性质等知识的介绍。它们在高性能数值算法的设计和构造上起到关键作用。比如,对流扩散方程的特征有限差分法、对流扩散方程的迎风有限差分法、以及非线性Klein-Gordon方程的保能量差分法等高性能算法均是依据原问题真解的性质发展起来的。因此,在课程的教学中,重视微分方程物理背景及其真解相关性质的学习是非常重要的。④ 在课堂上中,有选择地介绍教师的优秀科研成果,向学生展示科研全过程:提出问题–设计算法–理论分析–数值实验和数据处理–形成文章–发表;教授他们如何发现问题、如何设计算法、怎样做理论分析、如何做好科学计算和数据处理,以及如何撰写科研论文等。
3) 充分运用传统教学方法和现代教育技术手段,提高教学效果
微分方程数值解法的主要思想就是将连续问题用差分法、有限元法和谱方法等方法离散时、空导数,形成代数方程组,然后通过求解代数方程组获得原连续问题的近似解。因此,在课堂教学中,应充分考虑该课程的这一主要思想,综合运用对比法、类比式,讨论式,探究式、示例式和联想法等传统方法开展理论教学。比如,运用对比法讨论原微分方程和相应的离散方程组在解的估计、存在唯一性等结果有何不同;时刻关注离散系统是否有效地逼近连续系统,即,算法的稳定性、相容性和收敛性;运用类比式讲授同一数值方法在不同偏微分方程上运用,比如在讲授双曲型偏微分方程的ADI法时,就可以与之前学的抛物型偏微分方程的ADI法进行比较,运用类比法就可以让学生较轻松地吸收新知识。在课堂时,运用讨论式教学法,引导学生讨论不同算法之间的性质和性能,加强学生对算法的理解。当然,这就需要教师善于多提好问题,鼓励学生积极思考,参与讨论。这样不仅活跃课堂气氛,而且在一问一答中加深学生对知识的理解。比如,在讲到抛物方程的Richardson格式的不稳定时,可以让学生思考,抛物方程有没有无条件稳定的显格式?有的话,如何设计?另外,薛定谔方程的Richardson格式稳不稳定?等问题供学生思考和讨论。运用探究法与学生一起深究算法背后的设计思想,一起探究为什么要这样设计算法?这样设计有什么好处?等问题。运用示例式法展示算法的优劣。比如,比较显格式和隐格式的优缺点,显格式计算量小但不稳定,隐格式稳定但计算量大。运用联想法将现学的内容与之前的内容建立联系,加深对知识的理解。比如,学习双曲方程的显式差分法,就要联想到抛物方程的显式差分法。
多媒体教学与传统板书教学有机地结合起来,提高教学效率和教学效果。多媒体技术具有信息量大,图形生动、形象和直观等优点,能有效克服了由数学公式繁杂和抽象而引起的数学知识难学,枯燥等缺点。黑板板书设计能直观地显现教学内容的脉络,精确地突出教学重点,有助于培养学生思维的连贯性。有的板书内容在黑板上保留的时间较长,甚至贯穿课堂始终,当一节课结束时,黑板上的内容仍在,便于学生总结归纳与复习巩固。因此,在教学中,将多媒体教学与传统板书教学有机地结合起来,充分发挥它们的优势,提高教学效率和教学效果。
最后,充分运用课程网络和微信群等现代媒体手段,促进研究生课外“线上”的自主学习能力。在网络课程和微信平台上,老师在课前发布教学内容,让学生提前预习,课后将教学反思和补充材料放到平台上供学生及时复习、巩固,将课前课后有效地衔接起来。另外,在课程网站和微信平台上,教师还可以发布专题讲座视频,经典文献资料,PPT,实验指导等各种教学资料,供学生课外自主学习,弥补教学课时的不足。
4) 重视数值实验,提高研究生的科学计算和数据处理能力
在课堂教学中,教师应重视算法程序设计的教学,并及时运用matlab语言实现数值算法,使数值解可视化。这样不仅提高学生的学习兴趣与热情,而且加深他们对算法的收敛性和稳定性等理论的理解和认识。在讲解中,教师要重点讲解在编程时如何优化程序,以节约计算成本,比如,在matlab语言中,“for”语句就很耗时,但matlab处理矩阵的能力很强,因此,尽量使用矩阵运算,减少“for”语句的使用,以提高计算效率。教师应及时布置课外数值实验作业让学生独立自主完成。这样不仅可以使学生及时巩固和运用算法,加强对算法的理解,也锻炼了学生的实践能力。数值实验素材应尽量取自于一些具有物理背景的实际问题,培养学生应用算法解决实际问题的能力。另外,课程临近结束时,布置一至两个综合性的开放题,将学生们分成若干个小组,每个小组通力合作完成,培养学生们通过合作解决复杂问题的能力。通过微信群,对学生在实验中遇到的问题给予及时的指导。
3. 学生培养成效及总结
《微分方程数值解法》课程是计算数学专业微分方程数值解方向研究生的专业课程。
笔者一直运用本文总结的这些原则和方法组织教学,取得了一些成效。通过本课程的学习,研究生学会了发现科研问题、设计算法和相应数学理论的分析、查阅中英文文献资料和撰写研究论文等技能;他们的计算能力和数据处理能力都有很大提高。此外,很多学生通过本课程的学习开始对科研产生兴趣,特别地,有不少同学考取了中南大学、南京师范大学等国内名校的博士生,继续从事科学研究。笔者的研究生 [9] [10] [11] 通过本课程的学习在硕士期间在国际SCI或者EI收录的专业刊物上发表有关微分方程数值解方面的学术论文。有的研究生毕业后还一直从事微分方程数值解方面的研究。今后,笔者将对本文提出的教学原则、方法和实践等继续拓展、细化和总结,使本文的研究成果更好地为我校计算数学研究生人才培养服务。
致谢
感谢审稿人的评审意见。
基金项目
国家自然科学基金(No. 11861047),江西省自然科学基金(No. 20202BABL201005)。