内容简介
计算方法是数值求解各类数学问题的算法的统称,在工程技术领域具有重要的应用价值。本书基于机械工程学科特色,系统阐释了数值计算的理论基础、典型算法及其工程应用场景。全书共7 章,内容包括计算方法简谈、非线性方程(组)求解、线性方程组求解、矩阵特征值问题、插值和拟合、数值积分以及常微分方程数值解。本书从程序实践角度阐述理论,应用案例丰富完整,并且给出了丰富的示例程序,还对相关知识进行了拓展,提供所有程序源代码,供读者参考学习,实用性非常强。
目录
前言
第1章计算方法简谈
1.1人脑中的数学和计算机中的数学
1.2计算机舍入误差
1.3计算稳定性:误差的传播和抑制
1.4计算效率核定方法:计算复杂度
1.4.1计算复杂度比较
1.4.2秦九韶算法——减少多项式乘法次数
1.5数值计算应注意的原则
1.5.1大数吃小数现象
1.5.2避免相近的两个数相减
1.5.3避免很小的数作除数
1.6良态和病态问题的衡量标准——问题的条件数
1.7“爱国者”反导系统失效事件
1.7.1问题背景
1.7.2时钟误差详解
1.7.3十进制小数转二进制的实现
第2章非线性方程(组)求解
2.1一元三次方程的求根公式
2.2二分法
2.3不动点迭代法
2.3.1不动点方程选择
2.3.2简单迭代法收敛定理
2.3.3先验估计和后验估计
2.3.4Aitken加速方法
2.4牛顿迭代法
2.4.1一元方程
2.4.2多元方程组
2.5割线法
2.6各方法比较
2.7太阳-地球拉格朗日点的确定
2.7.1问题背景
2.7.2圆形限制性三体运动模型
2.7.3数值求解
2.8平面和空间Stewart平台的运动
2.8.1Stewart平台简介
2.8.2二维平面Stewart平台运动位置求解
2.8.3空间Stewart平台运动位置求解
第3章线性方程组求解
3.1克拉默法则的计算开销
3.2直接法
3.2.1高斯消元法
3.2.2LU分解法
3.2.3追赶法(Thomas算法)
3.3基本迭代法
3.3.1雅可比迭代法
3.3.2高斯-赛德尔迭代法
3.3.3逐次超松弛迭代法
3.3.4基本迭代法对比
3.4线性方程组的条件数
3.5稳态楔形滑块的润滑问题
3.5.1问题背景
3.5.2数值离散
3.5.3直接法
3.5.4迭代法
3.5.5多重网格法
3.6机械密封系统传热问题
3.6.1问题背景
3.6.2密封系统的数学建模
3.6.3典型案例求解
第4章矩阵特征值问题
4.1乘幂法
4.1.1幂迭代法
4.1.2反幂迭代法
4.1.3加速技巧
4.2求解所有特征值的QR方法
4.2.1矩阵的豪斯霍尔德变换
4.2.2QR方法
4.2.3QR方法优化策略
4.3Google的PageRank算法的简单示例
4.3.1问题背景
4.3.2PageRank算法的数学模型
4.3.3用幂迭代法计算PageRank值
4.4灰度和彩色图像的压缩
4.4.1问题背景
4.4.2数学模型
4.4.3灰度图像压缩
4.4.4彩色图像压缩
4.5质量-弹簧系统的固有频率计算
4.5.1问题模型
4.5.2案例求解
第5章插值和拟合
5.1插值法
5.1.1拉格朗日插值和牛顿插值
5.1.2埃尔米特插值
5.1.3龙格现象和分段插值
5.1.4样条插值
5.2拟合法
5.3样条插值与艺术、工业设计
5.3.1问题背景
5.3.2艺术字体制作
5.3.3机械臂末端路径的插补
5.3.4机器人避障路径规划
5.3.5基于贝塞尔曲线的计算机辅助建模中的精细运动控制
5.4原子弹爆炸能量估计
5.4.1问题背景
5.4.2量纲分析法
5.4.3最小二乘法拟合求解过程
5.5卫星定位系统
5.5.1问题背景
5.5.2卫星定位系统的定位原理
5.5.3案例分析
第6章数值积分
6.1牛顿-科茨求积公式
6.2复化求积公式和外推技术
6.2.1复化梯形公式和辛普森公式
6.2.2龙贝格求积方法
6.3高斯型求积公式
6.4数值微分
6.5单摆运动周期
6.5.1问题背景
6.5.2模型分析
6.5.3数值求解
6.6自己动手构建高斯积分表
6.6.1问题背景
6.6.2高斯-勒让德积分表构造
6.6.3非标准权高斯积分表构造
第7章常微分方程数值解
7.1欧拉方法
7.1.1欧拉方法的构造
7.1.2欧拉方法的误差分析
7.1.3欧拉方法的稳定性分析
7.2龙格-库塔方法
7.2.1龙格-库塔方法的构造
7.2.2自适应步长龙格-库塔方法
7.3线性多步法
7.3.1线性多步法的构造
7.3.2常用的线性多步法
7.4一阶微分方程组和高阶微分方程的数值解法
7.5传染病模型
7.5.1问题模型
7.5.2数值求解
7.6汽车悬架系统的五自由度振动模型
7.6.1问题背景
7.6.2五自由度建模方法
7.6.3振动实例分析
7.7离心调速器的运动
7.7.1问题背景
7.7.2数学模型
7.7.3案例求解
参考文献
前言/序言
工程技术人员到底需要什么样的数学?如何培养相关专业学生运用数学的能力?我们无数次听到这样的声音——“从上课第一天到考试结束,都不知道自己学习的东西能做什么”“大学里学了很多数学课,当时并不知道这些数学知识有什么用”“为什么一上来就给我们讲抽象的概念,而不是从具体的例子开始呢”。平心而论,工科数学课程的知识传授是一个系统的工程,其讲授方式既受到课时安排、教师个人素养等客观因素的影响,又与数学学科特性密切相关——数学同时具有工具和自身逻辑两重特性。但不可否认,鲜活的案例能极大地提升学习者的学习积极性,甚至于深化学习者对数学概念及方法的理解程度。笔者一直记得初次看到诸如“用余弦定理将新闻文本分类”“搜索引擎的网页排序归结为矩阵特征向量计算”这些案例所带来的震撼。采用基于案例和项目的方式,引导学生从基础理论到实践应用,培养学生的模型思维和灵活运用数学的能力,已经成为高等教育行业内的共识。
“计算方法”(数学专业称之为“数值分析”)是当前国内理工科专业普遍开设的一门课程,其主要内容是研究使用计算机求解数学问题的方法,一般包括误差理论、线性或非线性方程(组)求解、插值和拟合、矩阵特征值或向量求解、数值积分或数值微分、常微分方程求解等。按照目前培养方案的任务分类方法,该门课程实际上担负着培养学生数学能力和信息能力的双重作用。
本书贯彻案例教学思维,对内容进行了精心的选择和编排,每一章均包含了基础篇和应用案例篇两个部分。基础篇主要是直接从程序实现的角度展示“计算方法”中各类算法的特性。应用案例篇则给出了大量的来源于科学和工程应用领域,特别是机械工程领域的实用案例,展示了如何使用 “计算方法”中各类算法解决实际问题。本书的主要特点可归纳为:
(1)从程序实践角度阐述理论。本书不平铺直叙基础理论,而着重从算例的程序运行结果说明数值算法的特性。以迭代法的先验估计和后验估计为例,书中比较了采用两类法则控制程序运行的迭代次数,论述了先验估计偏“悲观”而后验估计偏“乐观”的特性,得出先验估计适合于理论分析,后验估计则适合于程序控制的结论。
(2)应用案例丰富完整。本书十几个应用案例来源于多个领域,以机械工程为主,涵盖工程力学、信息技术等多个领域。每个案例均给出了背景知识介绍、数学建模过程、数值求解算法、代码实现和结果讨论。这些案例均经过精心的选择,既包括原子弹能量估计这样的经典杰作,也包括机器人路径规划这样的前沿内容。此外,本书案例的求解算法也覆盖了一般“计算方法”课程的全部内容,部分案例甚至关联多个内容,这有效展示了实际问题的解决范式。
(3)丰富的示例程序。本书采用MATLAB作为主要编程工具,结合MATLAB的强大计算功能,给出了所有示例的求解程序,特别适合入门级读者。示例代码可直接使用,也可在此基础上进一步发展。
(4)拓展内容。本书除了“计算方法”课程本身的相关内容,也进行了一定程度的知识拓展,如原子弹能量估计问题中给出了量纲分析方法的简单介绍,润滑问题求解中给出了简单的多重网格法的简单应用。
本书介绍的所有程序源代码均可通过扫描如下二维码免费获取。
本书的出版得到了北京交通大学本科生教学改革项目“机械工程专业应用数学类课程体系规划和案例库建设”及“《机械工程计算方法:程序实践和案例分析》教材建设”的支持,在此表示衷心的感谢。
由于作者水平所限,本书难免有不足乃至错误之处,敬请广大读者批评指正。
作者




















