第1章 引论 1
1.1从数学到计算 1
1.2误差理论初步 5
1.2.1误差的来源 5
1.2.2误差的度量 6
1.2.3误差的传播 9
1.2.4数值稳定性 11
1.3数值计算的若干原则 12
1.3.1避免两个相近数相减 12
1.3.2避免用绝对值过小的数作为除数 13
1.3.3要防止大数“吃掉”小数 13
1.3.4简化计算步骤,提高计算效率 14
1.3.5使用数值稳定的算法 15
本章小结 16
习题1 17
第2章 计算方法的数学基础 19
2.1微积分的有关概念和定理 19
2.1.1数列与函数的极限 19
2.1.2连续函数的性质 21
2.1.3罗尔定理和微分中值定理 21
2.1.4积分加权平均值定理 22
2.1.5权函数和函数的内积 23
2.1.6正交函数系 23
2.1.7勒让德多项式 25
2.2微分方程的有关概念和定理 26
2.2.1基本概念 26
2.2.2初值问题解的存在唯一性 28
2.3线性代数的有关概念和定理 28
2.3.1线性相关和线性无关 28
2.3.2方阵及其初等变换 30
2.3.3线性方程组解的存在唯一性 32
2.3.4特殊矩阵 33
2.3.5方阵的逆及其运算性质 35
2.3.6矩阵的特征值及其运算性质 36
2.3.7对称正定矩阵 39
2.3.8对角占优矩阵 40
2.3.9向量的内积 41
2.3.10向量、矩阵和连续函数的范数 41
2.3.11向量序列与矩阵序列的极限 46
本章小结 47
习题2 47
第3章 MATLAB编程基础 49
3.1 MATLAB R2018b简介 49
3.2 MATLAB R2018b的工作环境 51
3.2.1 MATLAB R2018b的工具箱 51
3.2.2 MATLAB R2018b的命令行窗口 53
3.2.3 MATLAB R2018b的工作区 54
3.2.4 MATLAB R2018b的当前文件夹 54
3.3 MATLAB的变量、常量和数据类型 55
3.3.1常量 55
3.3.2变量 56
3.3.3数据类型 56
3.4 MATLAB的数值运算 58
3.4.1向量运算 58
3.4.2矩阵运算 59
3.5 MATLAB的符号运算 64
3.5.1字符串运算 64
3.5.2符号表达式运算 65
3.5.3符号矩阵运算 68
3.5.4符号微积分运算 69
3.5.5符号方程求解 71
3.6 MATLAB图形可视化 73
3.6.1绘制二维图形 73
3.6.2绘制三维图形 74
3.7 MATLAB程序设计 75
3.7.1 MATLAB程序的控制结构 75
3.7.2 MATLAB文件 78
3.7.3 MATLAB R2018b程序调试方法 79
本章小结 81
习题3 81
第4章 方程求根 83
4.1引言 83
4.2二分法 84
4.3迭代法 87
4.3.1不动点迭代 87
4.3.2迭代法的收敛性 88
4.3.3迭代法的改善 95
4.4牛顿迭代法 96
4.4.1牛顿迭代公式及其几何意义 96
4.4.2牛顿迭代公式的收敛性 97
4.4.3重根情形 101
4.5弦截法 102
4.6算法实现 103
4.6.1 MATLAB编程实现 103
4.6.2 MATLAB函数实现 106
本章小结 107
习题4 108
第5章 解线性方程组的直接法 110
5.1引言 110
5.2高斯消去法 111
5.2.1顺序高斯消去法 111
5.2.2主元素高斯消去法 115
5.2.3高斯-约当消去法 117
5.3矩阵三角分解法 119
5.3.1高斯消去法与矩阵三角分解法 119
5.3.2直接三角分解法 120
5.4解三对角线性方程组的追赶法 124
5.5误差分析 127
5.5.1病态方程组与条件数 127
5.5.2病态方程组的解法 130
5.6算法实现 131
5.6.1 MATLAB编程实现 131
5.6.2 MATLAB函数实现 135
本章小结 136
习题5 137
第6章 解线性方程组的迭代法 139
6.1引言 139
6.2雅可比迭代法 141
6.3高斯-塞德尔迭代法 142
6.4迭代法的收敛性 144
6.5算法实现 151
6.5.1 MATLAB编程实现 151
6.5.2 MATLAB函数实现 155
本章小结 156
习题6 156
第7章 函数插值 159
7.1引言 159
7.1.1插值问题 159
7.1.2插值多项式的存在唯一性 160
7.2拉格朗日插值 161
7.2.1线性插值与抛物插值 161
7.2.2拉格朗日插值 163
7.2.3插值余项与误差估计 165
7.3牛顿插值 169
7.4埃尔米特插值 173
7.5分段低次插值 175
7.5.1高次插值与龙格现象 175
7.5.2分段线性插值 176
7.5.3分段三次埃尔米特插值 178
7.6样条插值 180
7.6.1三次样条插值函数 180
7.6.2三次样条插值函数的求法 182
7.7离散数据的曲线拟合 185
7.7.1曲线拟合问题 185
7.7.2多项式拟合 186
7.7.3正交多项式拟合 188
7.8算法实现 189
7.8.1 MATLAB编程实现 189
7.8.2 MATLAB函数实现 191
本章小结 195
习题7 195
第8章 数值积分与数值微分 199
8.1引言 199
8.1.1数值积分的必要性 199
8.1.2数值积分的基本思想 200
8.1.3代数精度 200
8.1.4插值型求积公式 202
8.2牛顿-柯特斯求积公式 204
8.2.1牛顿-柯特斯求积公式的导出 204
8.2.2牛顿-柯特斯求积公式的误差估计 207
8.3复合求积公式 209
8.3.1复合梯形求积公式 209
8.3.2复合辛普生求积公式 210
8.4外推算法与龙贝格算法 212
8.4.1变步长的求积公式 212
8.4.2外推算法 214
8.4.3龙贝格求积公式 214
8.5高斯求积公式 218
8.5.1高斯点与高斯求积公式 218
8.5.2高斯-勒让德求积公式 219
8.5.3高斯求积公式的稳定性和收敛性 222
8.6数值微分 223
8.6.1中点公式 223
8.6.2插值型微分公式 225
8.7算法实现 227
8.7.1 MATLAB编程实现 227
8.7.2 MATLAB函数实现 230
本章小结 233
习题8 233
第9章 常微分方程初值问题的数值解法 237
9.1引言 237
9.2欧拉公式 238
9.2.1欧拉公式及其意义 238
9.2.2欧拉公式的变形 239
9.3单步法的局部截断误差和方法的阶 242
9.4龙格-库塔方法 245
9.4.1龙格-库塔方法的基本思想 245
9.4.2二阶龙格-库塔方法的推导 246
9.4.3经典四阶龙格-库塔方法 249
9.5单步法的收敛性和稳定性 251
9.5.1单步法的收敛性 251
9.5.2单步法的稳定性 254
9.6算法实现 257
9.6.1 MATLAB编程实现 257
9.6.2 MATLAB函数实现 260
本章小结 263
习题9 264
第10章 矩阵特征值计算 266
10.1引言 266
10.2幂法及反幂法 268
10.2.1幂法 268
10.2.2反幂法 271
10.3 QR方法 272
10.3.1反射变换 272
10.3.2矩阵的QR分解 274
10.3.3 QR方法的实现 275
10.4雅可比方法 276
10.4.1平面旋转矩阵 276
10.4.2雅可比方法及其改进 278
10.5算法实现 280
10.5.1 MATLAB编程实现 280
10.5.2 MATLAB函数实现 286
本章小结 289
习题10 290
第11章 函数优化计算 291
11.1引言 291
11.2一元函数优化计算 292
11.2.1牛顿法 292
11.2.2拟牛顿法 294
11.2.3黄金分割法 294
11.3多元函数优化计算 296
11.3.1多元函数有最优解的条件 296
11.3.2多元函数数值求解的原则 297
11.3.3梯度法 298
11.3.4牛顿法 300
11.3.5共轭方向法 301
11.4算法实现 304
11.4.1 MATLAB编程实现 304
11.4.2 MATLAB函数实现 307
本章小结 309
习题11 309
附录A 计算方法实验 310
实验1 方程求根 311
实验2 解线性方程组的直接法 312
实验3 解三对角线性方程组的追赶法 313
实验4 解线性方程组的迭代法 314
实验5 函数插值 315
实验6 数值积分 316
实验7 数值微分 318
实验8 常微分方程初值问题的数值解法 319
实验9 矩阵特征值计算 320
实验10 函数优化计算 321
参考文献 323