梁锦华
(苏州工业职业技术学院 江苏 苏州:215104)
计算数学是当代数学科学的重要分支,是伴随着计算机的出现而迅速发展并获得广泛应用的新兴交叉学科,是数学及计算机实现其在高科技领域应用的必不可少的纽带和工具。计算与理论和实验相并列,已经成为当今世界科学活动的第三种手段,这是二十世纪后半叶最重要的科技进步之一[1]。
计算数学是关于计算方法的数学理论,即可靠性、复杂性和收敛性的研究。上世纪五十年代起,北京大学和吉林大学在国内率先成立了计算数学专业,同时中国科学院的计算技术所和一些重点大学合作开始形成了计算数学的研究方向,一大批重视数学研究的专家投入到了计算数学的研究和教学之中,典型的有徐献瑜先生、胡祖织先生、冯康先生。1980年当选为中国科学院学部委员的冯康院士是中国计算数学研究的开拓者,他独立创造了有限元方法、自然归化和自然边界元方法,开辟了辛几何和辛格式计算方法研究新领域,为组建和指导我国计算数学队伍做出了重大贡献。在他的指导下,中国科学院计算技术研究所承担了大量的国防和国民经济各部门的实际计算任务,在天气数值预报、大型水坝应力计算、核武器内爆分析与计算、中子迁移方程计算、航天运输工具的高速空气动力学计算、大庆油田地下油水驱动问题、飞机机翼气动力颤振性计算、汽轮机叶片流场计算、流体力学稳定性计算等方面取得了一系列学术上有创见性的理论成果及实际应用,并为计算机及其应用的普及推广做出了开创性的成绩。纵观计算数学的发展,恰恰可以看出当今科学的变迁与信息的时代特征。计算数学从一种纯数学的计算方法研究渐渐形成了当今的科学与工程计算、计算机数值实验与模拟的方法、理论研究的一个复杂的系统工程。计算数学的方法和理论,本身并不是数学学科的产物,它是首先来源于实际计算的需要,而寻求于数学方法和手段,形成为计算数学。它是以“计算”为目标的数学方法和理论。随着计算技术和计算机科学及其它学科需求的发展,计算数学的内涵、方法和理论,一直在不断地发生着改变。
当代计算机科学的发展,引起或者正在引起整个科学,从内容、方法到研究手段上的改变,也将导致科学的重新分化和组合。计算数学的研究已经不能脱离具体的应用学科,因为只有这样才有生命力,才会有所开拓和创新。我们已经看到,计算数学方法在许多学科的应用与结合,扩展了相关学科的新形势,形成了该学科的新方向。例如计算流体动力学、计算水动力学、计算燃烧学、计算化学、计算生物学,等等举不胜举的新的交叉学科。同样地,其它学科向计算数学的渗透,也引起了计算数学的相应的研究方向,譬如:激波等间断解的问题,使计算数学的弱解方法和理论带来的新天地;多相界面的运动问题导致“运动界面追踪的数值模拟方法”的探索和研究等。所以说今天的计算数学和计算科学更多的是科学与工程中的数值计算、数值逼近、计算机数值模拟和计算机实验。它不仅是数学理论、手段和方法,它又与科学和工程计算实际密切关联,依托于计算机科学的软硬件环境和发展的交叉学科[2]。
计算数学的课程内容较广泛,它有“数值分析(误差分析、函数逼近、数值积分、方程求根和常微分方程数值解)”,“线性代数方程数值解法”,“偏微分方程数值解法”,“程序设计”等等,对于非数学专业的学生来说,要学这么多的内容,笔者认为既无必要,也同培养目标所背离。那么对更一般的高职学校来说,是否有开设计算数学课程的必要呢?现在大多高等学校都开设有计算机专业,高职院校也同样。而对于计算机信息与软件专业的学生来说,有必要在它的数学课程中渗透计算数学的基础知识和计算方法的学习,它不需要面面俱到,也不需要太专业。这样所培养出来的计算机毕业生就会有一技之长,将来就有可能成为一个真正的工程技术人员。课程涉及的计算数学主要是数值计算方面的运用与编程。所以在高职数学学习中,必需灌输和训练以下几种计算数学中的常用思想与方法:
算法是解决或执行任务的过程,它能够一步一步地在图灵机或现代的计算机上执行。随着计算机和软件的普及,算法已成为世界所有大学计算机最重要的核心课程之一。算法研究的典型问题包括计算机最常用的分类、排序、搜索、遍历、集合运算等。算法的常用设计方法包括循环、递归、分治、动态规划、线性规划、搜索与枚举、启发式搜索等。算法的主要分析方法是建立与算法相应的数学公式,来计算该算法所用的运行时间和存储空间(称为算法的性能分析)。通过这样严格的数学训练可以获得一种直觉的对算法性能的估计能力,这种能力是计算机研究人员必须具备的。所以说算法是计算机与数学的共同语言和方法,也是数学与计算机的沟通桥梁。
迭代法是一种重要的逐次逼近方法。这种方法用某个固定公式反复校正有关数值,使之逐步精细化,最后得到满足精度要求的结果。例如用迭代法求非线性方程 f(x)=0问题,首先我们设法将它化为等价的 x=g(x)形式,该式为隐式的。如果给出根的某个近似值xk将它代入右端,则 x=g(x)立即变成显式的 xk+1=g(xk),这就是一个固定的迭代公式,这样,给定的初始近似值 x0出发,按上述的迭代公式可以得到一个数列 x0,x1,x2,…,xk,….如果这个数列有极限,则称迭代公式 xk+1=g(xk)是收敛的,这时数列{xk}的极限值就是方程 f (x)=0的根。
递推是数学计算的一种特殊方法,它的原理是将一个复杂的计算化为多次重复的简单计算,这种重复在算法中称为循环。其方法运用在多项式求值上就是著名的秦九韶法,通过一次式的反复计算,由同一公式的多次重复,逐步得出高次多项式的值,这种手段有计算机的实现,其优点尤为凸现,它能起到化繁为简的作用。
这是计算方法常用的一种逼近手段,它的思路是将非线性问题线性化,即在局部范围内用曲线的切线来替代曲线。如牛顿法解非线性方程 f(x)=0的根 x*。由于 x*的几何解释就是表示曲线 y=f (x)与 x轴的交点的横坐标。设 xk是交点x*的某个近似位置,过曲线 y=f(x)上的对应点 Pk(xk,f (xk))引切线,并将该切线与 x轴的交点 xk+1作为根 x*新的近似位置。这样得到的交点 xk+1必满足切线方程为 y=f(xk)+f′(xk)(x-xk),因而就是牛顿迭代公式的计算结果,正是由于这个缘故,牛顿法亦称为切线法。
累加是微积分的思想方法,同时也是计算方法研究的一种重要途径。用复化梯形公式:
综上所述,递推法、迭代法、切线逼近法、累加法、化繁为简法在计算方法的研究中常常互相渗透互相联系。如牛顿法解非线性方程是以切线逼近法和迭代法的结合,复化梯形公式求定积分是累加和切线逼近法的结合。这些方法都是用极限思想研究不同数值问题的具体表现。极限思想是从有限中找到无限,从暂时中找到永久,并且使之确定下来的一种运动辩证思想。解非线性方程的牛顿法是一个迭代过程,是极限无限变化过程中的某个阶段,一方面计算机快速而有效的计算可以完成这个阶段,给出计算结果的数值表,另一方面分析此数值表能够帮助我们判断此算法的收敛性和收敛的快慢程度。当然我们还可以用极限的思想构造其他解非线性方程的数值解法,并分析每一种数值方法的实用性和有效性[3]。用计算机解决极限问题,计算机专业学生比较一般学生更能有直观和深刻的理解,而这里计算数学的灵活运用更能加深极限思想的体现,计算机快速有效的计算同时能使学生产生了极大的计算乐趣和信心,帮助他有效地理解和实施教学中的任务和目标。
由实际问题应用有关科学知识和数学理论建立数学模型这一过程,通常是应用数学的任务;而根据数学模型提出求解的计算方法直到编出程序算出结果,进而对计算结果进行分析,这一过程则是计算数学的任务。可见计算数学是一门与计算机使用密切结合的实用性很强的数学课程,它既有纯数学的高度抽象性与严密科学性的特点,又有应用广泛性与实际实验的高度技术性的特点,其研究对象往往涉及许多学科等科学领域。为此,应用计算数学的知识,可以有效地解决一些数学建模问题,从而帮助学生将数学知识学以致用,甚至可以将数学问题计算机化,石钟慈教授所著的《第三种科学方法—计算机时代的科学计算》及张景中所著的《计算机怎样解几何题—谈谈自动推理》都从计算数学着手进行了详细的研究和分析。如果结合科学和工程的实际,例如流体、波动和工程现象的数值计算、计算机模拟和计算机实验,并且辅以计算机的图象、动画和虚拟现实的显示,那么其收效必然更显著。如今国外已经推出了许多优秀的商业应用数值软件,例如Phoenics、Fluent、Ansys等,可以数值模拟各种不同的物理、力学、燃烧、湍流等的复杂科学和工程计算问题,而且还有针对各种具体目的的商业软件和免费软件,如网格生成和绘图软件等。这些软件的制作精良,其中采用了许多最先进的数值方法,最现代的计算机信息技术和计算机图形学方法。同样,STYR (数学统计应用软件)和CUMSS(China University Mathematics and Statistics Software)都是我国开发的大型综合数值软件库。相信计算机信息与软件专业的高职学生能运用计算数学的这些基本思想和方法,运用在以后的工作实践之中,理论与实践相融,一定可以掌握并设计编写出更符合解决实际问题的方案,为计算机科学作出更大的贡献,开发出更多有实际意义的应用软件。
[1] 余德浩.有限元、自然边界元与辛几何算法[J].高等数学研究, 2001,(4):5-7.
[2] 刘儒勋.从在科大的切身感受谈计算数学的普及、教育和发展[C].天津:全国科学计算与信息教育暨普及工作研讨会, 2001:3.
[3] 柳景霜.对计算方法教学的认识[J].内蒙古师范大学学报:教育科学版,2002,(5):45-46.
武汉工程职业技术学院学报2010年4期