本书介绍了数值方法的理论及实用知识,并讲述了如何利用MATLAB软件实现各种数值算法,以便为读者今后的学习打下坚实的数值分析与科学计算基础。教师可以根据不同的学习对象和学习目的选择相应章节,形成理论与实践相结合的学习策略。书中每个概念均以实例说明,同时还包含大量习题,范围涉及多个不同领域。 通过这些实例进一步说明数值方法的实际应用。本书强调利用MATLAB进行数值方法的程序设计,可提高读者的实践能力并加深对数值方法理论的理解。本书适合作为大专院校计算机、 工程和应用数学专业的教材和参考书。根据作者在网站上公布的勘误表,中译本已做了相应修改。采用本书作为教材的教师,可联系te_service@phei.com.cn获取相关教辅资料。
John H. Mathews 美国加利福尼亚州立大学富勒顿分校数学系教授,出版过多本数学著作。
第1章 预备知识
1.1 微积分回顾
1.1.1 极限和连续性
1.1.2 可微函数
1.1.3 积分
1.1.4 级数
1.1.5 多项式求值
1.1.6 习题
1.2 二进制数
1.2.1 二进制数
1.2.2 序列与级数
1.2.3 二进制分数
1.2.4 二进制移位
1.2.5 科学计数法
1.2.6 机器数
1.2.7 计算机精度
1.2.8 计算机浮点数
1.2.9 习题
1.3 误差分析
1.3.1 截断误差
1.3.2 舍入误差
1.3.3 舍去和舍入
1.3.4 精度损失
1.3.5 O(hn)阶逼近
1.3.6 序列的收敛阶
1.3.7 误差传播
1.3.8 数据的不确定性
1.3.9 习题
1.3.10算法与程序
第2章 非线性方程f(x)=0的解法
2.1 求解x=g(x)的迭代法
2.1.1 寻找不动点
2.1.2 不动点迭代的图形解释
2.1.3 考虑绝对误差和相对误差
2.1.4 习题
2.1.5 算法与程序
2.2 定位一个根的分类方法
2.2.1 波尔查诺二分法
2.2.2 试值法的收敛性
2.2.3 习题
2.2.4 算法与程序
2.3 初始近似值和收敛判定准则
2.3.1 检测收敛性
2.3.2 有问题的函数
2.3.3 习题
2.3.4 算法与程序
2.4 牛顿拉夫森法和割线法
2.4.1 求根的斜率法
2.4.2 被零除错误
2.4.3 收敛速度
2.4.4 缺陷
2.4.5 割线法
2.4.6 加速收敛
2.4.7 习题
2.4.8 算法与程序
2.5 埃特金过程、斯蒂芬森法和
米勒法(选读)
2.5.1 埃特金过程
2.5.2 米勒法
2.5.3 方法之间的比较
2.5.4 习题
2.5.5 算法与程序
第3章 线性方程组AX=B的数值解法
3.1 向量和矩阵简介
3.1.1 矩阵和二维数组
3.1.2 习题
3.2 向量和矩阵的性质
3.2.1 矩阵乘
3.2.2 特殊矩阵
3.2.3 非奇异矩阵的逆
3.2.4 行列式
3.2.5 平面旋转
3.2.6 MATLAB实现
3.2.7 习题
3.2.8 算法与程序
3.3 上三角线性方程组
3.3.1 习题
3.3.2 算法与程序
3.4 高斯消去法和选主元
3.4.1 选主元以避免a(p)pp=0
3.4.2 选主元以减少误差
3.4.3 病态情况
3.4.4 MATLAB实现
3.4.5 习题
3.4.6 算法与程序
3.5 三角分解法
3.5.1 线性方程组的解
3.5.2 三角分解法
3.5.3 计算复杂性
3.5.4 置换矩阵
3.5.5 扩展高斯消去过程
3.5.6 MATLAB实现
3.5.7 习题
3.5.8 算法与程序
3.6 求解线性方程组的迭代法
3.6.1 雅可比迭代
3.6.2 高斯赛德尔迭代法
3.6.3 收敛性
3.6.4 习题
3.6.5 算法与程序
3.7 非线性方程组的迭代法:赛德尔法和牛顿法(选读)
3.7.1 理论
3.7.2 广义微分
3.7.3 接近不动点处的收敛性
3.7.4 赛德尔迭代
3.7.5 求解非线性方程组的
牛顿法
3.7.6 牛顿法概要
3.7.7 MATLAB实现
3.7.8 习题
3.7.9 算法与程序
第4章 插值与多项式逼近
4.1 泰勒级数和函数计算
4.1.1 多项式计算方法
4.1.2 习题
4.1.3 算法与程序
4.2 插值介绍
4.2.1 习题
4.2.2 算法与程序
4.3 拉格朗日逼近
4.3.1 误差项和误差界
4.3.2 精度与O(hN+1)
4.3.3 MATLAB实现
4.3.4 习题
4.3.5 算法与程序
4.4 牛顿多项式
4.4.1 嵌套乘法
4.4.2 多项式逼近、节点和中心
4.4.3 习题
4.4.4 算法与程序
4.5 切比雪夫多项式(选读)
4.5.1 切比雪夫多项式性质
4.5.2 最小上界
4.5.3 等距节点
4.5.4 切比雪夫节点
4.5.5 龙格现象
4.5.6 区间变换
4.5.7 正交性
4.5.8 MATLAB实现
4.5.9 习题
4.5.10算法与程序
4.6 帕德逼近
4.6.1 连分式
4.6.2 习题
4.6.3 算法与程序
第5章 曲线拟合
5.1 最小二乘拟合曲线
5.1.1 求最小二乘曲线
5.1.2 幂函数拟合y=AxM
5.1.3 习题
5.1.4 算法与程序
5.2 曲线拟合
5.2.1 y=CeAx的线性化方法
5.2.2 求解y=CeAx的非线性最小
二乘法
5.2.3 数据线性化变换
5.2.4 线性最小二乘法
5.2.5 矩阵公式
5.2.6 多项式拟合
5.2.7 多项式摆动
5.2.8 习题
5.2.9 算法与程序
5.3 样条函数插值
5.3.1 分段线性插值
5.3.2 分段三次样条曲线
5.3.3 三次样条的存在性
5.3.4 构造三次样条
5.3.5 端点约束
5.3.6 三次样条曲线的适宜性
5.3.7 习题
5.3.8 算法与程序
5.4 傅里叶级数和三角多项式
5.4.1 三角多项式逼近
5.4.2 习题
5.4.3 算法与程序
5.5 贝塞尔曲线
5.5.1 伯恩斯坦多项式的性质
5.5.2 贝塞尔曲线的性质
5.5.3 习题
5.5.4 算法与程序
第6章 数值微分
6.1 导数的近似值
6.1.1 差商的极限
6.1.2 中心差分公式
6.1.3 误差分析和步长优化
6.1.4 理查森外推法
6.1.5 习题
6.1.6 算法与程序
6.2 数值差分公式
6.2.1 更多的中心差分公式
6.2.2 误差分析
6.2.3 拉格朗日多项式微分
6.2.4 牛顿多项式微分
6.2.5 习题
6.2.6 算法与程序
第7章 数值积分
7.1 积分简介
7.1.1 习题
7.2 组合梯形公式和辛普森公式
7.2.1 误差分析
7.2.2 习题
7.2.3 算法与程序
7.3 递归公式与龙贝格积分
7.3.1 龙贝格积分
7.3.2 习题
7.3.3 算法与程序
7.4 自适应积分
7.4.1 区间细分
7.4.2 精度测试
7.4.3 算法与程序
7.5 高斯勒让德积分(选读)
7.5.1 习题
7.5.2 算法与程序
第8章 数值优化
8.1 单变量函数的极小值
8.1.1 分类搜索方法
8.1.2 利用导数求极小值
8.1.3 习题
8.1.4 算法与程序
8.2 内德米德方法和鲍威尔方法
8.2.1 内德米德方法
8.2.2 鲍威尔方法
8.2.3 习题
8.2.4 算法与程序
8.3 梯度和牛顿方法
8.3.1 最速下降法(梯度方法)
8.3.2 牛顿方法
8.3.3 习题
8.3.4 算法与程序
第9章 微分方程求解
9.1 微分方程导论
9.1.1 初值问题
9.1.2 几何解释
9.1.3 习题
9.2 欧拉方法
9.2.1 几何描述
9.2.2 步长与误差
9.2.3 习题
9.2.4 算法与程序
9.3 休恩方法
9.3.1 步长与误差
9.3.2 习题
9.3.3 算法与程序
9.4 泰勒级数法
9.4.1 习题
9.4.2 算法与程序
9.5 龙格库塔方法
9.5.1 关于该方法的讨论
9.5.2 步长与误差
9.5.3 N=2的龙格库塔方法
9.5.4 龙格库塔费尔伯格方法
9.5.5 习题
9.5.6 算法与程序
9.6 预报校正方法
9.6.1 亚当斯巴什福斯莫尔顿
方法
9.6.2 误差估计与校正
9.6.3 实际考虑
9.6.4 米尔恩辛普森方法
9.6.5 误差估计与校正
9.6.6 正确的步长
9.6.7 习题
9.6.8 算法与程序
9.7 微分方程组
9.7.1 数值解
9.7.2 高阶微分方程
9.7.3 习题
9.7.4 算法与程序
9.8 边值问题
9.8.1 分解为两个初值问题:线性打靶法
9.8.2 习题
9.8.3 算法与程序
9.9 有限差分方法
9.9.1 习题
9.9.2 算法与程序
第10章 偏微分方程数值解
10.1 双曲型方程
10.1.1 波动方程
10.1.2 差分公式
10.1.3 初始值
10.1.4 达朗贝尔方法
10.1.5 给定的两个确定行
10.1.6 习题
10.1.7 算法与程序
10.2 抛物型方程
10.2.1 热传导方程
10.2.2 差分公式
10.2.3 克兰克尼科尔森法
10.2.4 习题
10.2.5 算法与程序
10.3 椭圆型方程
10.3.1 拉普拉斯差分方程
10.3.2 建立线性方程组
10.3.3 导数边界条件
10.3.4 迭代方法
10.3.5 泊松方程和亥姆霍茨方程
10.3.6 改进
10.3.7 习题
10.3.8 算法与程序
第11章 特征值与特征向量
11.1 齐次方程组:特征值问题
11.1.1 背景
11.1.2 特征值
11.1.3 对角化
11.1.4 对称性的优势
11.1.5 特征值范围估计
11.1.6 方法综述
11.1.7 习题
11.2 幂方法
11.2.1 收敛速度
11.2.2 移位反幂法
11.2.3 习题
11.2.4 算法与程序
11.3 雅可比方法
11.3.1 平面旋转变换
11.3.2 相似和正交变换
11.3.3 雅可比变换序列
11.3.4 一般步骤
11.3.5 使dpq和dqp为零
11.3.6 一般步骤小结
11.3.7 修正矩阵的特征值
11.3.8 消去apq的策略
11.3.9 习题
11.3.10算法与程序
11.4 对称矩阵的特征值
11.4.1 Householder法
11.4.2 Householder变换
11.4.3 三角形式归约
11.4.4 QR法
11.4.5 加速移位
11.4.6 习题
11.4.7 算法与程序
附录A MATLAB简介
部分习题答案
中英文术语对照
对于各个专业领域的学生而言,数值方法都是非常有用的。这一指导思想贯穿于本书的各个章节中,因此本书提供了丰富的范例与典型问题,帮助读者从理论与实践两方面提高数值分析的技能。本书尽可能地以图形和图表形式显示计算结果,以便读者更好地了解数值逼近的效果。本书利用MATLAB程序实现数值算法。
本书的重点在于帮助读者理解数值方法如何工作以及有哪些限制。由于需要兼顾理论、误差分析以及可读性,达到这个目标并不容易。在本书中,对每种方法都给出了以微积分基本结论为基础的推导,并进行了适当的误差分析,以使读者易于理解。通过这些学习,读者能够更好地理解微积分知识。采用MATLAB编程的计算机习题,为学生提供了锻炼科学计算编程能力的机会。
在本书中,简单的数值练习题可以用计算器或者掌上电脑完成,而较复杂的习题需要借助于MATLAB子程序。如何指导学生上机进行数值计算由各个教师完成,他们可以根据现有的计算机资源布置适当的教学任务。本书鼓励使用MATLAB子程序库,它们可以帮助学生实现计算机实验题中的数值分析组件。
本书的这个版本在第5章最后增加了一节,讨论贝塞尔曲线。对讨论数值优化的第8章也进行了扩充,介绍了单变量和多变量最优函数的直接方法和基于导数的方法。
笔者以前认为,无论使用哪种编程语言都可以学习这门课程。但后来笔者发现大多数学生(除计算机专业的学生外)都需要学习新的编程语言。MATLAB现在已经成为工程和应用数学必不可少的工具,它的最新版本也加强了编程方面的功能。因此笔者希望本书的MATLAB程序能使书中的内容更易掌握,使学习更为有效。
致谢
笔者对参与编辑、出版本书各个版本的所有人员表示感谢!笔者(John Mathews)首先要感谢加利福尼亚州立大学富勒顿分校的学生们。同时,感谢我的同事Stephen Goode,Mathew Koshy,Edward Sabotka,Harris Schultz和Soo Tang Tan在本书第一版中给予的支持;感谢Russell Egbert,William Gearhart,Ronald Miller和Greg Pierce对本书第二版的建议。笔者还要感谢加利福尼亚州立大学富勒顿分校数学系主任James Friel的鼓励。
许多评阅人对本书第一版提出了有效建议,包括兰德学院的Walter M. Patterson, III,中康涅狄格州立大学的George B. Miller,阿克伦大学的Peter J. Gingo,阿拉斯加大学费尔班克斯分校的Michael A. Freedman,加利福尼亚大学洛杉矶分校的Kenneth P. Bube。对于本书的第二版,笔者向罗格斯大学的Richard Bumby,美国陆军的Robert L. Curry,佛罗里达大学的Bruce Edwards以及坦普尔大学的David R. Hill致谢。
关于本书的第三版,笔者向乔治梅森大学的Tim Sauer,俄克拉荷马大学的Gerald M. Pitstick和Victor De Brunner,西弗吉尼亚大学的George Trapp,阿拉巴马大学享茨维尔分校的Tad Jarik,北卡罗莱纳州立大学的Jeffrey S. Scroggs,科罗拉多州立大学的Kurt Georg以及南伊利诺伊大学卡本代尔分校的James N. Craddock表示感谢。
本书第四版的评阅人是阿克伦大学的Kevin Kreider,华盛顿大学圣路易斯分校的Demetrio Labate,弗吉尼亚理工学院的Lee Johnson和路易斯安娜大学拉法叶分校的Azmy Ackleh。笔者对这些评阅人所付出的努力和提出的建议,表示深深的感谢。
恳请读者对本书不吝赐教,联系地址如下:
John H. Mathews
Mathematics Department
California State University
Fullerton,CA 92634
mathews@fullerton.edu
Kurtis D. Fink
Department of Mathematics
Northwest Missouri State University
Maryville,MO 64468
kfink@mail.nwmissouri.edu
我注意到本书在编写上非常注重细节。无论是公式的推导、定理的证明,还是MATLAB代码的实现,都力求做到严谨准确。作者在给出算法的同时,也常常会指出算法的潜在陷阱和需要注意的事项。比如,在讲解病态矩阵的求解时,书中会详细解释为什么对于病态矩阵,即使是数值上稳定的算法也可能产生较大的误差,并提供一些预处理的技术。这种对细节的关注,让我能够避免在实际应用中犯一些低级错误。而且,本书的排版也很精美,图表清晰,代码格式统一,阅读起来非常舒适。即使是篇幅较长的章节,也不会让人产生阅读疲劳。
评分坦白说,在我开始阅读这本书之前,我对MATLAB的掌握程度仅限于一些基础的矩阵运算和绘图功能。然而,本书将MATLAB作为一种强大的辅助工具贯穿始终,这一点对我这样希望将理论与实践相结合的学习者来说,简直是福音。作者并没有简单地给出MATLAB代码,而是非常细致地解释了每一段代码的含义,以及为什么这样写能够实现特定的数值算法。他们会从算法的逻辑出发,然后一步步地转化为MATLAB的实现。我印象最深刻的是在讲解数值积分和微分方程求解的部分,作者不仅给出了多种算法的原理,还提供了详细的MATLAB程序,并且会在程序中加入大量的注释,让我能够清晰地理解每一步操作背后的逻辑。更棒的是,书中还包含了很多需要读者自己动手去编写和修改代码的练习题,这些题目涵盖了从简单到复杂的各种场景,极大地激发了我通过实践来加深理解的动力。每次成功运行一段自己编写的代码,并看到它准确地求解出问题时,那种成就感是无可比拟的。
评分我一直认为,一本好的教材不仅要传授知识,更要激发学习者的兴趣。这本《数值方法(MATLAB版)(第四版)》在这方面做得非常出色。书中不仅有理论讲解和MATLAB实现,还穿插了大量的应用实例。这些实例取材于物理、工程、经济等多个领域,让我能够清晰地看到数值方法是如何解决实际问题的。例如,书中会用数值方法来模拟弹道轨迹、求解热传导方程、分析金融模型的走势等。这些鲜活的例子让我不再觉得数值方法是枯燥的数学公式,而是充满活力的工具,能够帮助我们理解和改造世界。每次看到一个实际问题是如何通过数值方法得到解决,我都会感到一种强烈的学习动力。
评分对于我这样希望在科学研究中应用数值方法的学生来说,本书的价值不仅仅在于它教授了多少种算法,更在于它培养了一种科学思维方式。书中很多章节在介绍完算法之后,都会安排“讨论”或“注意事项”之类的环节,作者会在这里引导读者思考算法的优缺点、适用范围以及与其他算法的比较。这种批判性思考的训练,让我不再是被动地接受知识,而是主动地去分析和权衡。比如,在讲解插值方法时,书中会对比拉格朗日插值、牛顿插值以及样条插值的各自特点,并分析它们在处理不同类型数据时的表现。这让我明白,没有一种数值方法是万能的,选择合适的方法需要结合具体的应用场景和数据特性。这种深入的分析,让我对数值方法的理解不再停留在“怎么做”,而是上升到了“为什么这么做”和“什么时候这么做”。
评分作为一个对数学理论有一定理解但缺乏系统训练的人,我常常在阅读一些纯数学理论书籍时感到吃力,因为它们往往过于抽象,难以与实际应用建立联系。而这本《数值方法(MATLAB版)(第四版)》恰恰解决了我的这个痛点。作者在讲解每一个数值方法时,都会非常清晰地阐述其数学原理,并且会分析该方法的收敛性、稳定性和误差来源。但与许多只停留在理论层面的书籍不同的是,他们会紧接着讨论这些理论在实际计算中可能遇到的问题,以及如何利用MATLAB来规避这些问题。例如,在讲解线性方程组的求解时,书中不仅介绍了高斯消元法、LU分解等经典方法,还深入探讨了条件数、病态矩阵等概念,并提供了MATLAB函数来判断矩阵的性质。这让我不仅学会了如何求解方程组,更理解了在实际应用中选择何种方法以及如何评估结果的可靠性。
评分这本书我入手大概有半年的时间了,期间断断续续地翻阅和学习。作为一名非计算机专业的理工科学生,我一直对数值计算在解决实际问题中的应用感到好奇,也常常被一些复杂的数学公式和理论所困扰。在朋友的推荐下,我选择了这本《数值方法(MATLAB版)(第四版)》。初拿到这本书的时候,就被它厚实但又不至于过于笨重的体量所吸引。封面设计简洁大方,虽然是第四版,但整体风格依然保持了学术书籍应有的严谨性。翻开第一页,我就被作者清晰的行文风格和由浅入深的讲解方式所打动。书中并没有一开始就堆砌那些令人望而生畏的数学符号和定理,而是从一些非常基础的概念入手,比如方程求根、插值、逼近等,通过直观的例子来解释这些数值方法的核心思想。我尤其喜欢作者在讲解每一章的开篇都会简要回顾相关的数学背景知识,并且会巧妙地引入实际工程或科学领域中遇到的问题,这让我立刻感受到数值方法并非空中楼阁,而是解决实际挑战的强大工具。
评分这本书的语言风格非常亲切,即使是在讲解复杂的数学概念时,作者也努力用清晰易懂的语言来表达。他们很少使用过于晦涩难懂的术语,即使使用了,也会立刻给出解释。我经常会感觉作者就像一位经验丰富的导师,耐心地一步步地引导我理解这些抽象的知识。举个例子,在解释迭代法的收敛性时,作者并没有直接抛出收敛判据,而是通过一个生动的例子,比如“下山”的比喻,来形象地说明迭代过程是如何一步步逼近真实解的。这种形象的比喻大大降低了理解门槛,让我能够更直观地把握算法的核心思想。这种“润物细无声”的教学方式,让我在不知不觉中就掌握了很多原本以为很难的知识点。
评分我尤其欣赏本书在章节安排上的循序渐进。它从最基础的方程求根开始,逐步过渡到线性代数、插值与逼近、数值积分与微分、非线性方程组、特征值问题,最后涉及到一些更高级的主题,比如最优化和偏微分方程的数值解法。这种结构化的组织方式,使得我可以很有条理地构建起我对数值方法的整体认知框架。每一章的内容都能够在前一章的基础上进行拓展和深化,不会出现突兀的跳跃。即使是我之前完全没有接触过的领域,通过本书的讲解,也能逐步理解其中的核心概念和算法。而且,每一章的结尾都会有总结性的回顾,帮助我巩固所学内容,并且常常会给出进一步阅读的建议,这对于我想要深入探索某个特定领域非常有帮助。
评分这本书的内容覆盖面非常广,几乎囊括了我在本科和研究生阶段会遇到的绝大多数数值计算的知识点。从基础的数值分析到一些相对前沿的数值方法,它都能提供一个扎实的起点。我特别喜欢书中对各种算法的理论分析,比如稳定性分析、误差传播分析等。这些分析虽然听起来有些“硬核”,但却能够帮助我深入理解算法的局限性和适用范围。例如,在讲解有限差分法求解偏微分方程时,书中会详细分析截断误差和离散化误差,并探讨如何通过改进差分格式来提高精度。这种严谨的分析让我不再盲目地套用公式,而是能够根据问题的特点来选择最合适的数值方法,并对计算结果的可靠性有一个清晰的认识。
评分总而言之,这本《数值方法(MATLAB版)(第四版)》是一本非常优秀的教材。它不仅内容全面、理论严谨,更重要的是,它将抽象的数学理论与MATLAB的实践应用紧密结合,让学习过程变得更加生动有趣。对于想要系统学习数值方法,并且希望将这些方法应用于实际问题的读者来说,这本书绝对是一个不二之选。我个人认为,这本书不仅仅是大学生的必修参考书,对于任何在科研和工程领域需要进行数值计算的从业人员来说,都具有很高的参考价值。它能够帮助我们建立起坚实的理论基础,掌握强大的计算工具,并且培养出解决复杂问题的科学思维。
评分质量可以。
评分简直是matlab使用宝典,很喜欢
评分还没认真看 应该对学习机器学习有帮助
评分书很好,正版图书,内容详尽,很棒
评分图书外观精美,内容专业细致,只是没来得及看呢
评分到图书管先借看了一下不错!
评分经典书籍,值得一看
评分还是非常不错的,推荐购买!!!!!
评分还没来得及仔细学习
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有