§ 1 计算机数值方法的研究对象与特点
计算机的飞速发展,正在日益影响着人们对传统数值分析(即计算方法)的认识。
近几十年来,人们越来越认识到计算方法的学习与研究离不开计算机,仅靠数学理论的演绎和推导还不能完整地解决实际中的数值问题,只有与计算机科学相结合,才能研制出实用的好算法。
而且好的算法必须变成数值软件后才有可能为社会创造更大的财富。
实践证明,计算方法正在日趋明显地成为数学与计算机科学的交叉性学科。
科学计算已和理论计算、实验并列为三大科学方法。
数学与计算机科学的密切关系,历史已做了回答,可以说计算机科学是吸吮着数学的**而成长起来的。
德国数学家Leibniz在研究组合数学时发现的二进制编码是电子计算机诞生的基础;Von Neumann提出了用流程图描述计算机运行过程后,软件的开发研究才得以发展和遍地开花;流行一时的结构化程序设计也是Bohm和Jacopini证明的一条数学原理“任何单入口和单出口,且没有‘死循环'的程序,都能由三种最基本的控制结构构造出来”的产物,当前流行的面向对象程序设计也与代数学密切相关。
另一方面,计算机的诞生和发展,给数学增加了新的血液,对数学的发展产生了不可估量的影响。
借助于计算机可以证明玄妙的数学定理、揭示某些数学规律,以及求解许多原来令人一筹莫展的数学模型问题;由于并行计算机的诞生和发展,促使数学工作者去研究适应新一代计算机发展需要的算法——并行算法。
总之,计算机科学的发展,可以使数学上灵活的推演和运算变成遵循某种规律的算法设计,从而为发展数值软件奠定了基础。
因此,计算方法也得到更快发展,大量适合计算机求解的现代数值方法随之产生,并被广泛使用,成为当代科学计算的主要方法。
使用传统的计算方法解决实际问题,不但要求使用者具有一定的数学修养,而且还应具有相当的编程能力,因而使计算方法的广泛应用受到了影响。
为解决这些问题,科学计算工作者经过长时间努力,将数值方法设计成算法,进而编制成数值软件,并逐步形成数值软件产业,为广大用户打开了方便之门。
当今,已有不少集各种数值算法和符号演算于一体的综合数学软件包,如在国内外广为流行的Mathematica, Matlab,Maple等,它们已成为科技工作者、工程技术人员不可缺少的工具。
数学软件的开发技术还在不断发展,目前流行着两种软件开发方法:一是面向过程的“自顶向下,逐步细化”的结构化方法;二是面向对象的“自下向上”的组装式开发方法,其主要工具是“类”——一种特殊模块,由它可组装成数值算法和求解程序。
虽然后者是最近发展起来的开发技术,但是,由于它编程简便,使用方便,已成为当前软件开发技术的主流。
数学软件包的引进与开发,给工程技术人员使用数值方法求解各种数值问题带来了极大的方便。
但是,如果工程技术人员仅知道如何使用这些数学软件,一旦出现问题就难于解决;再者,有不少工程技术人员需要结合各自的具体需求灵活使用软件包,或者自己设计专用算法。
因此,虽然有了各种软件包,工程技术人员掌握数值方法和算法设计基础还是很有必要的,这可以使他们真正成为使用数学软件包的“主人”。
为此,我们编写了《计算机数值方法》,为即将走上工作岗位从事工程技术和科学教育工作的大学生打下使用计算机解决数值问题的基础。
本教程不追求完美的数学演绎、论证以及详尽的公式推导,也不以数学课程的类别为序来讲述数值方法,而尽量以数值方法间的内在联系为主线,着重介绍数值方法及它们之间的关系与结构,力求少而精,使读者用较少的学时能对一般常用数值方法有较多的了解与掌握并为进一步研究新算法奠定基础。
本书主要内容:
①数值方法的基本内容
②算法及其设计
③误差分析简介
§ 2 数值方法的基本内容
好恐怖的玩意儿,感觉在复习线代和高数。爆炸,不看了。