1. 研究背景
自20世纪70年代起,国外一些大学开始积极探讨实施研究性案例式教学。“以项目为中心”和“以问题为中心”的研究性案例式教学改变了单一的以教师为中心的传统课堂教学,将问题作为学习的最初动机和挑战,激发学生的求知欲,引导寻求多种途径解决问题,有助于学生获取“非确定性知识”。国内的研究性教学起步较晚,但近年来也逐步被推向高校教学改革的前台。要积极推动研究性教学,提高大学生的创新能力,要增加综合性和创新性实验,积极推进讨论式教学、案例式教学等教学方法,引导学生提高自主学习和独立研究的内容 [1] [2] [3]。
数值分析是工科研究生很重要的一门基础课程。它既有数学的理论抽象性和严谨性,又有实用广泛性和实际实验的高度技术性特点。通过数值分析的学习对今后在石油、石化领域中遇到的数学问题具有指导意义。随着高等教育的大众化,学生的素质基础参差不齐,数值分析教学面临着巨大的困难与挑战。为了尽快培养出创新型应用人才,对研究生数值分析课程进行改革是十分重要和必要的。
由于数值分析课程包括大量繁琐的计算公式和对各种算法的理论分析,目前所有教材均根据算法功能安排教材的章节体系。受课时和国内课堂条件所限,教师在授课时往往只能按照算法的功能选取重要的算法逐一讲解,如线性方程组的直接方法选主元高斯消去法,迭代法如高斯–赛德尔方法,求数值积分的牛顿科特斯法、高斯方法等。然而,对一个实际问题进行数值求解是一个复杂的过程,人们首先要分析实际问题的主要特征,建立恰当的数学模型;针对所建立数学模型的主要特征,选取恰当的数值方法;针对所采取的数值方法进行程序设计并上机计算,最后将计算结果与实际实验结果对比,大多数情况下甚至需要多次对模型和算法进行改进直至符合实际。传统的教学方法很难对学生这方面的能力得到锻炼,学生学到的数值分析知识往往是纸上谈兵,真正面对具体问题时仍然束手无策。
有鉴于此,数值分析课程必须注重解决实际问题的思想,注重编程实现算法的能力,注重所采用数值方法的准确性和有效性之间的平衡。而作为研究生课程,数值分析教学还必须注重提升学生创新性地应用所学的知识解决实际问题的科研能力。在这方面,已有文献从宏观层面论述较多,真正具体到教学实践和教学设计方面的则少之又少。
2. 案例设计教学过程
加大启发式和引导式教学力度,激发学生的学习兴趣,促进灌输填压式被动学习向“以教促学、以教助学”的自主型学习方式的转变;透过实际问题加深对数值分析涉及的基本概念、基本理论的理解;掌握分析问题的思路,在复杂的实际应用中能够抓住问题主要矛盾;掌握书面表达的手段和基本方法 [4]。在多年的教学实践中,我们坚持教学过程要符合学生认知特点,坚持培养学生进行自主学习和研究型创新的能力,设计了一系列综合性较强的研究型教学案例,在教学中收到了很好的效果。具体案例设计教学如下:
1) 提出问题
教师设计结合工程实际问题对性强的案例,不仅要符合教学要求,不偏离教学大纲要求,还要能吸引学生的注意力,使学生乐于参加 [5]。例如从实际工程问题得到泊松方程数学模型,
这类模型属于椭圆型偏微分方程,在油藏数值模拟及半导体器件模拟等领域有广泛的应用。对实际问题应用数值分析所学的算法进行数值求解,学生非常感兴趣,由此引导学生利用数值分析中线性方程组的迭代法思想解决问题,从而收到良好的教学效果。
2) 探究学习
教师引导学生对已提出的实际问题先考虑从简单的问题出发,理解简单问题求解的思路与方法,然后推广应用至更复杂的问题。如对上述泊松方程的应用高斯–赛德尔方法进行数值求解。由于数值算法在计算机上实现上,进一步启发式教学,如何求解以及如何采用计算机近似求解。
首先对求解区域做等距剖分,然后对微分算子进行离散得到经典的五点差分格式,
再次对非边界点进行编号,顺序为从下往上,从左往右,
教师演示泊松方程的高斯–赛德尔方法的求解过程,由于该方法是异步迭代,需要一套数组即可。高斯–赛德尔迭代格式为
学生尝试自己求解,通过类似的练习领会和熟悉求解的思路方法,巩固学习的成果,引导学生总结规律,消化知识。以此可以继续增加难度,由学生尝试用雅各比算法求解泊松问题,雅各比迭代格式为
雅各比算法是同步迭代,需要两套数组。也可以由学生自己发现问题,引导学生认识到数值方法的优点,因此实现计算机求解更方便。
3) 推广应用
教师对已提出的实际应用问题,可以引导学生对前面提出的问题以及探究学习中的思想进一步的思考,在这个阶段推广应用。例如前面提到高斯赛德尔方法和雅各比方法,算是线迭代,可以推广到分块的思想处理泊松方程进行数值求解。提示学生区域的剖分也可是不等距的,根据实际所需完全可以采用多尺度来计算。引导学生推广应用思考不同算法不同尺度对实际问题的迭代次数和程序运行时间的影响,从而学生注意到理论对实践的重要指导作用,培养学生具体问题具体分析和解决实际问题的能力。
4) 归纳总结
教师建议学生每个教学案例需要针对每种数值方法给出计算流程图,这样既能帮助学生理清思路,又为学生课后的具体上机编程实践提供详细的路线图。在明晰求解过程后,学生分组讨论并上机实验。教师点评总结性地给学生一个评价。同时,引导他们利用课本的基本理论、原理、方法去解决实际问题,最终促进学习为自主学习。
3. 结语
提出面向工科研究生的数值分析课程的教学案例设计完整的教学过程,引导学生进行思维探索,将简单问题的求解方法推广应用于复杂的问题的求解,在解决问题的过程中不断发现新问题并逐步分析讨论并解决问题,由浅入深、层层推进。涵盖了数值分析中涉及的各种数值算法的核心内容,不仅能够使学生深刻理解相关算法的具体步骤,领会数值分析求解问题的思想与数值方法设计理念,而且使学生深刻认识到理论的重要性以及理论与具体实践的差别,培养学生解决新问题的思维和能力、发展学生整合知识解决复杂实际工程问题的能力,为后期从事研究及应用于工程实践做准备。
在学习的过程中,学生也应该重视基本理论和思想的学习,而不仅仅是只会基本的公式和算法。教师仅提供书面指导,由学生分组讨论完成并上机实验,提交报告。所涉及的基本知识简单,可以作为研究生数值分析课程的绪论课,激发学生对课程的兴趣,同时对数值分析的知识体系有提纲挈领的作用,引导学生之后的学习,使学习更有目的性。
通过研究性教学案例设计过程,学生能够体会到应用实践中的数值分析综合性很强,数值分析理论与应用实践中的具体方法有较大差距,但却无时无处不在地指导着数值分析的应用实践。学生只有深刻地领会了数值分析求解问题的思想和方法,才能做到厚积薄发,灵活地运用所学的数学知识解决实际问题。从而培养出新工科背景下的创新型应用人才。
基金项目
中国石油大学(北京)教学改革基金项目资助。