原版前言 关于本书 本书是为数值近似方法的理论和应用系列课程编写的教材。它主要设计为适用于已完 成至少第一年的普通高等微积分课程的数学、理科和工科专业的低年级学生。熟悉矩阵代 数和徽分方程的基本知识也会有所帮助,但并不必先修这些课程,因为本教材对这些内容进 行了适当的介绍。 《数值分析》先前的各种版本已被广泛使用。有时我们强调的是作为近似方法基础的数 学分析,而不是方法本身,而有时情况则相反。对于工科和计算机科学专业的低年级研究生 以及国际大学第一年所开设的分析入门课程,本书也可作为主要的参考资料。我们致力于 使本书适用于各种层次的读者且不降低最初的目标: 介绍现代近似方法:解释如何、为什么和何时可用这些方法;为进一步学习数值分析和 科学计算打下一个坚实的基础。 本书包含足以满足一年的学习的内容,但我们希望各位读者将本书用作一个学期的教 材。此时,学生应学会判别需要用数值方法求解的问题的类型,理解运用数值方法时所发生 的误差传播的例子。学生能精确逼近不能准确求解的问题的解,学习估计近似值误差界的 方法。本教材的其余部分可作为该课程未讨论过的一些方法的参考资料。无论作为一学年 或一学期的教材都与本书的目标相一致。 实际上本教材中的每个概念都通过例子进行了说明,本版包含了2000多道在课堂测试 过的习题,这些题目覆盖了从方法与算法的基本应用到理论的推广与扩展。此外,习题集包 含了许多工程领域的实际问题以及物理学、计算机科学、生物学和社会学中的应用问题。所 选取的应用问题简要地说明了数值方法如何应用于现实生活中以及为何往往必须采用数值 方法。 目前,已开发许多软件包可进行符号数学计算。其中,学术环境下最流行的软件包为 Derive°、Maple'和Mathematica"。对于常用的计算机系统,其学生版价格合理。虽然这些 软件包在性能和价格方面存在显著差别,但是它们都可以完成一般的代数和徽积分运算。 在研究近似方法时,配备一个符号计算软件包是很有用的。我们的例子和习题中的大部分 结果是采用准确值可以确定的问题而产生的,因为这允许监控近似方法的性能。准确解使 用符号计算通常可以容易地得到。此外,对于许多数值方法,误差分析需要对函数的高阶导 数或偏导数求界,这可能是冗长乏味的工作,即使掌握了微积分方法,帮助也不大。用符号
原版前言 计算可以快速求得导数,对其稍加分析常有助于用符号计算来求导数的界。 由于Maple的广泛发行,我们选择它作为标准软件包,但稍作修改也可代之使用Derive 或Mathematica。当我们认为一个计算机代数系统非常有用时,就多增加一些例子和习题。 当问题不能用Mple精确求解时,我们讨论了它所采用的近似方法。 本版新增内容 第七版包含新增加的两个主要部分。第七章增加了预处理共轭梯度法,使得数值求解 线性方程组的内容更加完整。它作为一种求解正定线性方程组的迭代近似方法介绍,用其 近似求解大型稀疏线性方程组特别有用。 第十章增加了关于同伦和延拓方法一节。它们为近求解非线性方程组提供了一种截然 不同的方法,此方法最近已引起广泛的关注。 我们在书中也增加了大量的Maple代码,因为在第六版中读者发现这种特点很有用。 我们已将所有的Maple代码更新至其第六版,该版本是本书印刷时的最新版本。熟悉本书 以前版本的读者会发现,实际上每页在某些方面都有所改进。所有的参考资料已经被更新 和修改,也增加了新的习题。我们期望这些改变有助于数值分析的教学和研究:本书大部分 更新的内容来自于将其讲授给我们的学生时所进行的修改。 本版的另一个重要的改进是网址: http:/ww.as.ysu.edu/-faires /Numerical-Analysis 此网址将放置随软件改变的更新程序,并刊登读者对本书所作评论的回复。我们也可 能以用户可以下载的PDF文件的形式增加在以后的版本中可能包含的新内容。希望这将 延长第七版的使用周期,同时使得本书的内容不断保持更新。 算法 像以前版本那样,对本教材中的每个方法,我们给出一个详细的结构化的算法而未列出 程序代码。所有算法都以可编程的形式给出,即使编程经验有限的人也可以编写。 本书原版包含一张用算法求解典型习题的程序软盘。每个算法的程序是用Fortran、 Pascal和C编写的。另外,我们用Maple、Mathematica和MATLAB编写了程序,MATLAB 是广泛用于线性代数应用问题中的计算机软件包。这样可保证对多数常见的计算系统都有 一组程序可用。 同本书原版一起出版的还有《学生学习指导》,它说明了如何调用这些程序,这对于编程 经验有限的人是有用的。学习指导还包含许多问题的解题答案。 Brooks/Cole出版公司向教师提供了载有本书所有习题答案的教师手册。教师手册用 软盘中的程序对本版中的计算结果进行了重新计算,以保证在各种程序设计系统之间的相 容性
原版前言 0 由书中的算法能编写出得到书中例子和习题正确结果的程序,但我们未尝试编写通用 的专业软件。特别地,这些算法不总是按时间或存储空间的要求编写出最有效的程序。当 编写一个非常高效的算法与编写能较好描述方法重要特点的另一略微不同算法之间发生冲 突时,我们总是采用后者。 关于程序盘 在本书原版最后封页上所附的CD含有本书中所有算法的各种形式的程序以及用Post Script"(PS)和Adobe"Portable Document(PDF)形式给出的本书《学生学习指导》中的范例。 对于每个算法,都有C、Fortran、Maple、Mathematica,MATLAB和Pascal程序,且对一些 系统有依赖于正在运行的软件的特定版本的多个程序。每个程序用与本材密切相关的范 例来说明,使你能按最初选择的编程语言运行程序以观察到其输入和输出的形式。然后,稍 微改动程序就可将程序用于其他问题。棉入和输出的形式在每个程序设计系统下尽可能一 样。使教师用程序可进行一般性讨论而不用担心每个学生所用的程序设计系统不同。 所设计的程序可在最低配置的计算机上运行。只要求有运行MS-DOS、Windows或 Macintosh操作系统的计算机。当然,需要相应的软件,如Pascal、Fortran和C的编译器,或 某个计算机代数系统(Maple、.Mathematica和MATLAB)。在所附的光盘上有六个子目录, 每个子目录对应于一种计算机语言和相应的数据文件。 所有程序用ASCII文件或工作表给出。它们可用任何产生标准ASCIⅡ文件的编辑器或 文字处理器更改。(它们通常也称为“纯文本”文件。) 同程序文件并存的还有大量的README文件,这样可单独解释不同程序设计系统的特 性。README文件同时以ASCII和PDF文件形式给出。随着不断开发出新的软件,算法 会被改进并故到本书的网址上。 推荐的课程概要 “数值分析”的设计允许教师在选择主题和理论的严格程度以及强调应用几方面具有灵 活性。为此对于本教材中未阐明的结果和能显示方法实际重要性的应用,皆提供了详细的 参考资料。书中引用的参考文献易在高等院校图书馆里查到,并更新以反映本书出版时最 新版本的文献。我们也引用了一些潜在读者可以查到的原始研究论文。 下面的流程图说明了学习各章的先期要求。唯一不符合此流程图之处在3.4节的第一 页的脚注进行了说明。对于流程图中大部分可能生成的序列,本书作者在美国Youngstown 州立大学进行了教学尝试
原版前言 第一事 第二章第六章☐第三章 第十束第七#第八幸第西兼第五章 第九廉 第十一兼上 第十二章 致谢 我们感到十分幸运的是有这么多的学生和同事和我们交流他们对于本书以前各版本的 感受。我们认真考虑了所有建议,并试图采纳所有与本书的理念相一致的建议。我们特别 感谢抽出时间来和我们联系,并且告诉我们在后续版本可以进行哪些改进的所有人。 我们愿特别感谢 Glen Granzow,Idaho州立大学 Jose Miguel,Universidad Peruana Cayetano Heredia,Lima,Peru John M.Neuberger,.Northern Arizona大学 L.G.de Pillis,Harvey Mudd学院 非常感谢他们的贡献。 我们要特别感谢我们的朋友、以前的学生、Ball州立大学的Jim Baglama。Jim对本版进 行了全面的审阅,特别在更新软件的评述部分和参考资料方面提供了帮助。最令人高兴的 是看到我们的学生在此行业领域有深入进展。 对本书做出贡献(但以完全不同的方式)的是我们的编辑和出版者Gary Ostedt。Gary 一直是我们这个项目的杰出管理者和很好的个人朋友。我们将会非常怀念他的指导和帮 助。借此机会我们希望他在即将从Brooks/Cole出版公司退休后的生活中万事如意。 正如我们在本书以前各版本中所做的,在准备第七版时,我们利用了Youngstown州立 大学学生的帮助。在这一版中,Laurie Marinelli是我们的得力助手,我们对她的全部工作表 示感谢。我们也对Youngstown州立大学的院系同事和行政部门表示感谢,感谢他们所提供 的机会和便利,使本书的出版顺利完成
原版前言 V 最后,我们想感谢这些年来使用和采纳《数值分析》的各版本的全体同仁。十分美好的 是听到如此多的学生和新教师采用本书作为开始学习数值方法的教材。我们希望这一版保 持此趋势,并增加学生学习数值分析的乐趣。如果你有任何可吸收进本书下一版的改进建 议,我们将对此十分感谢。你可通过下面的电子邮件地址同我们联系。 Richard L.Burden burden@math.ysu.edu J.Douglas Faires faires@math.ysu.edu