第1章 数值计算导论 1
1.1 概述 1
1.1.1 数值计算与数值算法 1
1.1.2 数值计算的问题与策略 2
1.1.3 数值计算软件 4
1.2 误差分析基础 6
1.2.1 数值计算的近似 6
1.2.2 误差及其分类 7
1.2.3 问题的敏感性与数据传递误差估算 11
1.2.4 算法的稳定性 14
1.3 计算机浮点数系统与舍入误差 15
1.3.1 计算机浮点数系统 16
1.3.2 舍入与机器精度 18
1.3.3 浮点运算的舍入误差 20
1.3.4 抵消现象 21
1.4 保证数值计算的准确性 22
1.4.1 减少舍入误差的几条建议 22
1.4.2 影响结果准确性的主要因素 25
评注 26
算法背后的历史:浮点运算的先驱——威廉·卡亨 27
练习题 28
上机题 29
第2章 非线性方程求根 31
2.1 引言 31
2.1.1 非线性方程的解 31
2.1.2 问题的敏感性 32
2.2 二分法 32
2.2.1 方法原理 32
2.2.2 算法稳定性和结果准确度 34
2.3 不动点迭代法 36
2.3.1 基本原理 36
2.3.2 全局收敛的充分条件 37
2.3.3 局部收敛性 38
2.3.4 稳定性与收敛阶 39
2.4 牛顿迭代法 41
2.4.1 方法原理 41
2.4.2 重根的情况 43
2.4.3 判停准则 44
2.4.4 牛顿法的问题 44
2.5 割线法与抛物线法 45
2.5.1 割线法 45
2.5.2 抛物线法 46
2.6 实用的方程求根技术 47
2.6.1 阻尼牛顿法 47
2.6.2 多项式方程求根 48
2.6.3 通用求根算法zeroin 48
应用实例:城市水管应埋于地下多深? 51
2.7 非线性方程组和有关数值软件 52
2.7.1 非线性方程组 52
2.7.2 非线性方程求根的相关软件 54
评述 55
算法背后的历史:牛顿与牛顿法 56
练习题 57
上机题 58
第3章 线性方程组的直接解法 60
3.1 基本概念与问题的敏感性 60
3.1.1 线性代数中的有关概念 60
3.1.2 向量范数与矩阵范数 63
3.1.3 问题的敏感性与矩阵条件数 66
3.2 高斯消去法 70
3.2.1 基本的高斯消去法 70
3.2.2 高斯-若当消去法 72
3.3 矩阵的LU分解 76
3.3.1 高斯消去过程的矩阵形式 76
3.3.2 矩阵的直接LU分解算法 80
3.3.3 LU分解的用途 83
3.4 选主元技术与算法稳定性 84
3.4.1 为什么要选主元 84
3.4.2 使用部分主元技术的LU分解 86
3.4.3 其他选主元技术 90
3.4.4 算法的稳定性 91
3.5 对称正定矩阵与带状矩阵的解法 92
3.5.1 对称正定矩阵的Cholesky分解 92
3.5.2 带状线性方程组的解法 96
应用实例:稳态电路的求解 98
3.6 有关稀疏线性方程组的实用技术 99
3.6.1 稀疏矩阵基本概念 100
3.6.2 MATLAB中的相关功能 102
3.7 有关数值软件 105
评述 107
算法背后的历史:威尔金森与数值分析 108
练习题 109
上机题 111
第4章 线性方程组的迭代解法 113
4.1 迭代解法的基本理论 113
4.1.1 基本概念 113
4.1.2 1阶定常迭代法的收敛性 114
4.1.3 收敛阶与收敛速度 117
4.2 经典迭代法 119
4.2.1 雅可比迭代法 119
4.2.2 高斯-赛德尔迭代法 120
4.2.3 逐次超松弛迭代法 122
4.2.4 三种迭代法的收敛条件 124
应用实例:桁架结构的应力分析 127
4.3 共轭梯度法 129
4.3.1 最速下降法 129
4.3.2 共轭梯度法 132
4.4 各种方法的比较 135
4.4.1 迭代法之间的比较 136
4.4.2 直接法与迭代法的对比 139
4.5 有关数值软件 140
评述 141
算法背后的历史:雅可比 142
练习题 143
上机题 145
第5章 矩阵特征值计算 147
5.1 基本概念与特征值分布 147
5.1.1 基本概念与性质 147
5.1.2 特征值分布范围的估计 151
5.2 幂法与反幂法 153
5.2.1 幂法 153
5.2.2 加速收敛的方法 157
5.2.3 反幂法 159
应用实例:Google的PageRank算法 161
5.3 矩阵的正交三角化 163
5.3.1 Householder变换 164
5.3.2 Givens旋转变换 166
5.3.3 矩阵的QR分解 167
5.4 所有特征值的计算与QR算法 171
5.4.1 收缩技术 171
5.4.2 基本QR算法 172
5.4.3 实用QR算法的有关技术 174
5.5 有关数值软件 178
评述 179
算法背后的历史:A.Householder与矩阵分解 180
练习题 181
上机题 184
第6章 函数逼近与函数插值 186
6.1 函数逼近的基本概念 186
6.1.1 函数空间 186
6.1.2 函数逼近的不同类型 189
6.2 连续函数的最佳平方逼近 191
6.2.1 一般的法方程方法 191
6.2.2 用正交函数族进行逼近 195
6.3 曲线拟合的最小二乘法 198
6.3.1 问题的矩阵形式与法方程法 199
6.3.2 用正交化方法求解最小二乘问题 203
应用实例:原子弹爆炸的能量估计 206
6.4 函数插值与拉格朗日插值法 208
6.4.1 插值的基本概念 208
6.4.2 拉格朗日插值法 209
6.4.3 多项式插值的误差估计 212
6.5 牛顿插值法 214
6.5.1 基本思想 214
6.5.2 差商与牛顿插值公式 215
6.6 分段多项式插值 220
6.6.1 高次多项式插值的病态性质 220
6.6.2 分段线性插值 221
6.6.3 分段埃尔米特插值 222
6.6.4 保形分段插值 225
6.7 样条插值函数 226
6.7.1 三次样条插值 227
6.7.2 三次样条插值函数的构造 228
6.7.3 B-样条函数 231
评述 232
算法背后的历史:拉格朗日与插值法 234
练习题 235
上机题 237
第7章 数值积分与数值微分 239
7.1 数值积分概论 239
7.1.1 基本思想 239
7.1.2 求积公式的积分余项与代数精度 241
7.1.3 求积公式的收敛性与稳定性 242
7.2 牛顿-柯特斯公式 243
7.2.1 柯特斯系数与几个低阶公式 243
7.2.2 牛顿-柯特斯公式的代数精度 245
7.2.3 几个低阶公式的余项 246
7.3 复合求积公式 247
7.3.1 复合梯形公式 247
7.3.2 复合辛普森公式 248
7.3.3 步长折半的复合求积公式计算 250
7.4 Remberg积分算法 251
7.4.1 复合梯形公式的余项展开式 251
7.4.2 理查森外推法 252
7.4.3 Romberg算法 253
7.5 自适应积分算法 255
7.5.1 自适应积分的原理 256
7.5.2 一个具体的自适应积分算法 256
7.6 高斯求积公式 259
7.6.1 一般理论 259
7.6.2 高斯-勒让德积分公式及其他 262
应用实例:探月卫星轨道长度计算 264
7.7 数值微分 265
7.7.1 基本的有限差分公式 266
7.7.2 插值型求导公式 267
7.7.3 数值微分的外推算法 269
评述 270
算法背后的历史:“数学王子”高斯 272
练习题 273
上机题 274
第8章 常微分方程初值问题的解法 276
8.1 引言 276
8.1.1 问题分类与可解性 276
8.1.2 问题的敏感性 277
8.2 简单的数值解法与有关概念 279
8.2.1 欧拉法 279
8.2.2 数值解法的稳定性与准确度 281
8.2.3 向后欧拉法与梯形法 283
8.3 龙格-库塔方法 285
8.3.1 基本思想 285
8.3.2 几种显式R-K公式 286
8.3.3 显式R-K公式的稳定性与收敛性 290
8.3.4 自动变步长的R-K方法 291
8.4 多步法 293
8.4.1 多步法公式的推导 293
8.4.2 Adams公式 296
8.4.3 更多讨论 299
8.5 常微分方程组与实用技术 300
8.5.1 1阶常微分方程组 300
8.5.2 MATLAB中的实用ODE求解器 303
应用实例:洛伦兹吸引子 306
评述 308
算法背后的历史:“数学家之英雄”欧拉 309
练习题 311
上机题 313
附录A 有关数学记号的说明 314
附录B MATLAB简介 316
附录C 部分习题答案 336
索引 339
参考文献 345