数值分析教学应重视科学计算能力的培养

2013-08-14 05:42张丽丽
河南科技 2013年7期
关键词:科学计算刹车数值

张丽丽

(河南财经政法大学 数学与信息科学系,河南 郑州 450002)

科学计算能力是二十一世纪人才不可或缺的,它是数学与计算机有机结合的结果,其核心内容是以现代化的计算机及数学软件为工具,以数学模型为基础进行模拟研究。同时,它也成为数学科学本身发展的源泉和途径之一。高等教育中如何培养学生的科学计算能力正日益受到关注,已成为当前教育改革的核心和焦点之一[1]。

目前,国内高校一般都将数值分析列入自然科学和工程技术的教学计划之中,以期培养学生的科学计算能力。数值分析是作者主讲的课程之一,结合自己的教学情况,下面就如何在教学中培养学生的科学计算能力谈一谈自己的体会。

1 利用Matlab软件实现算法

科学计算能力就是利用计算工具和软件解决学习、科研和实际应用中出现的计算问题的能力。与传统的科学计算编程语言C和Fortran相比,Matlab简单易学,编程简洁,它既有结构化的控制语句,又有面向对象编程的特性,程序限制不严格,自由度大,程序移植性很好。而且,Matlab的数据可视化功能强大,绘图简单,界面友好,绘出的图形细腻、空间感强,这是传统编程语言无法比拟的[2]。所以,我们在数值分析的教学中采用Matlab软件来实现算法,可以把主要精力放在算法的步骤上,而非算法的各个细节,这样有助于学生从整体上把握算法,掌握算法的核心和要点。例如,列主元Gauss消去法的Matlab程序如下:

此程序要求系数矩阵A非奇异.程序中(2)-(23)为消元过程,具体划分是(3)-(8)为选列主元过程,(9)-(14)为行交换过程,(15)-(22)为每一步的消元过程;(24)-(31)为回代过程;(32)-(35)是输出结果的代码。因为不需要定义变量,程序编写自由度大,上述列主元Gauss消去法程序简洁易懂、一目了然。又因为可以面向对象编程,选主元、行交换、消元和回代过程等算法要点在程序中也都很详细地呈现了出来。

教师在教学过程中将算法的步骤和流程图讲解清楚之后,将相应的Matlab程序展示给学生,讲解程序每一部分的功能和要点,并将计算过程和计算结果演示给学生。讲解过程中最重要的是,要将如何应用Matlab软件和所学算法解决实际问题的方法教给学生,让学生成为利用计算机和软件进行科学计算的能手。

2 融入数学建模的思想

在数值分析的教学中,理论脱离实际的问题仍然存在。通过课堂教学,学生能够掌握各种数值方法的基本思想、算法流程和理论分析,也通过做一些练习题来认识算法。不过,这些练习题一般规模很小且脱离实际问题,并不能真正地培养学生的科学计算能力。因此,课堂教学时引入一些规模较大且密切联系实际的问题,不仅能够激发学生的学习兴趣、培养学生的创新精神,而且能够培养学生的科学计算能力。为了突出教学主旨,所选问题要简明扼要,易于阐述清楚,与教学内容能够有机地融合在一起。例如,在拟合和插值这一部分,我们可以考虑以下这个问题:

正确的车与车之间的跟随距离对于安全驾驶很重要。文献[3]中给了一组车速与停止距离的数据,见表1。其中汽车的速度为v(英里/小时),司机的反应距离为dr(英尺),刹车距离为db(英尺),则总的停止距离为d=dr=db。

表1 停止距离的观测数据和预测数据

?

假设从司机决定需要停车到刹车起作用的时间里车辆继续以常速行驶,则司机的反应距离dr与速度v成比例dr∝v。假定是紧急停车且整个停车过程中作用的是最大的刹车力F,则刹车力所做的功Fdb应等于动能的变化mv2。而刹车力F一般与车的质量m成比例,所以刹车距离与速度之间的关系为。

用最小二乘法进行拟合,可以得到司机的反应距离dr与速度v的比例系数为

刹车距离db与速度平方v2的比例系数为

从而总的停止距离d的模型为

总之,所选问题应该重点突出,起到点睛作用,既能激发学生的创造精神和兴趣,又能与算法密切衔接,培养学生的科学计算能力。

3 上机实验解决实际问题

目前,学校有环境优越的机房供教学和上机实验,大部分学生也都拥有个人计算机。上机实验的硬件方面不成问题。要想真正激发学生的兴趣,培养他们的科学计算能力,关键是选一些简单的、与所学算法密切相关的实际问题,让他们自己动手,建立简单的数学模型,设计算法步骤,编写程序,分析计算结果。例如,在微分方程的数值解法这一章,可以给学生这样一个问题:某个银行的利息是按复利进行计算的,也就是说在计算复利时,所得的利息作为本金继续产生利息。设初期存款为1000元,年利率为5%。为了吸引存款人,银行设置了计算复利的几种不同期限:半年期、按季度和按月。银行声明它的复利是连续计算的,请建立相应的微分方程模型,并分别用Euler方法和改进的Euler方法计算存款在10年内的增长情况。

这个问题的数学模型很简单,但是计算量大,需要借助计算机来完成。在求解过程中,学生将繁杂的计算任务编写成程序提交给计算机来完成,一点鼠标结果就出来了,学生从中能够感受到利用所学算法解决实际问题的快乐,能激发他们进一步学习的愿望,有利于培养他们的创新精神和科学计算能力。

总的来说,数值分析是一门理论算法抽象、应用广泛、实用性强的学科。单纯地讲解各种算法的基本原理、计算步骤和理论分析,教学也就流于纸上谈兵,学生也会觉得枯燥无味、失去兴趣。为了避免这种现象,我们将数学建模的思想引入课堂教学,用Matlab软件实现算法,并且让学生上机实验解决实际问题。通过这些措施,激发了学生的学习兴趣,加深了学生对算法和理论的理解,提高了学生的科学计算能力,教学质量得以提高。

[1]蔡大用,白峰杉.高等数值分析[M].北京:清华大学出版社,1997.

[2]张志涌.精通 MATLABR2011a[M].北京:北京航空航天大学出版社,2011.

[3]F.R.Giordano,M.D.Weir,W.P.Fox.数学建模(英文版)[M].北京:机械工业出版社,2003.

猜你喜欢
科学计算刹车数值
数值大小比较“招招鲜”
《计算机程序设计》课程中科学计算思维能力的培养
关于理科生计算能力培养的探讨
基于Fluent的GTAW数值模拟
为什么突然刹车时人会向前倾?
还有94分
刹车系统:跑得快也要刹得住
基于MATLAB在流体力学中的数值分析
刹车边遇到爱
大学物理教学中培养科学计算能力的研究