全书共分6大部分。第1部分介绍数值方法的背景知识、MATLAB的软件环境和编程模式,后5部分集中介绍数值方法的主要应用领域,具体包括求根与最大化、线性代数方程组的求解、曲线拟合、数值积分与微分以及常微分方程数值解。本书不但介绍各类数值方法的基本原理和基于MATLAB的实现,而且非常注重实际应用和计算能力的训练,除了针对基本内容给出相应的典型实例外,还在每章的末尾提供大量实用的习题,有助于读者进一步巩固所学的知识。
第Ⅰ部分建模、计算机与误差分析
第1章数学建模、数值方法与问题
求解3
提出问题3
1.1一个简单的数学模型4
1.2工程与科学中的守恒律10
1.3本书中涉及的数值方法13
1.4案例研究15
1.5习题17
第2章MATLAB基础29
提出问题29
2.1MATLAB环境30
2.2赋值31
2.2.1标量31
2.2.2数组、向量和矩阵33
2.2.3冒号操作符35
2.2.4linspace和logspace函数36
2.2.5字符串36
2.3数学运算38
2.4使用内置函数42
2.5绘图45
2.6其他资源49
2.7案例研究:探索性数据
分析49
2.8习题51
第3章编写MATLAB程序59
提出问题59
3.1M文件60
3.1.1脚本文件60
3.1.2函数文件61
3.1.3变量的作用域63
3.1.4全局变量64
3.1.5子函数66
3.2输入/输出67
3.3结构化编程71
3.3.1决策71
3.3.2循环79
3.3.3动画83
3.4嵌套与缩进85
3.5将函数传入M文件88
3.5.1匿名函数88
3.5.2函数函数89
3.5.3传递参数92
3.6案例研究:蹦极运动员的速度93
3.7习题97
第4章舍入与截断误差111
提出问题111
4.1误差112
4.1.1准确度与精度112
4.1.2误差定义113
4.1.3迭代计算的计算机算法116
4.2舍入误差118
4.2.1计算机中数的表示118 [3]
4.2.2计算机中数的算术运算123
4.3截断误差125
4.3.1泰勒级数125
4.3.2泰勒级数展开的余项129
4.3.3用泰勒级数估计截断误差131
4.3.4数值差分132
4.4总数值误差136
4.4.1数值微分的误差分析137
4.4.2数值误差的控制139
4.5粗差、模型误差和数据不确定性140
4.5.1粗差140
4.5.2模型误差141
4.5.3数据不确定性141
4.6习题141
第Ⅱ部分求根与最优化
第5章求根:划界法149
提出问题149
5.1工程和科学领域中的求根问题150
5.2图形法151
5.3划界法与初始猜测值153
5.4二分法157
5.5试位法163
5.6案例研究:温室气体与雨水166
5.7习题169
第6章方程求根:开方法177
6.1简单不动点迭代178
6.2牛顿-拉弗森方法182
6.3割线法187
6.4布伦特法189
6.4.1逆二次插值189
6.4.2布伦特法算法191
6.5MATLAB函数:fzero193
6.6多项式195
6.7案例研究:管道摩擦力198
6.8习题202
第7章最优化213
提出问题213
7.1简介与背景214
7.2一维最优化216
7.2.1黄金分割搜索217
7.2.2抛物线插值222
7.2.3MATLAB函数:fminbnd224
7.3多维最优化225
7.4案例研究:平衡与
极小势能227
7.5习题229
第Ⅲ部分线性方程组
第8章线性代数方程和矩阵245
提出问题245
8.1矩阵代数概述247
8.1.1矩阵符号247
8.1.2矩阵的运算规则249
8.1.3将线性代数方程组表示成矩阵形式256
8.2用MATLAB求解线性代数方程组257
8.3案例研究:电路中的电流和电压258
8.4习题262
第9章高斯消元法269
9.1求解小型方程组270
9.1.1绘图法270
9.1.2行列式和克拉默法则271
9.1.3未知数消元法274
9.2朴素高斯消元法275
9.2.1MATLABM文件:GaussNaive278
9.2.2运算次数279
9.3选主元281
9.3.1MATLABM文件:GaussPivot283
9.3.2用高斯消元法计算行列式284
9.4三对角方程组285
9.5案例研究:热杆模型287
9.6习题290
第10章LU分解297
10.1LU分解概述298 [3]
10.2高斯消元法与LU分解299
10.2.1使用选主元的LU分解302
10.2.2MATLAB函数:lu304
10.3楚列斯基分解305
10.4MATLAB的左除运算308
10.5习题308
第11章矩阵求逆和条件数311
11.1矩阵的逆311
11.1.1逆矩阵的计算311
11.1.2激励-响应计算313
11.2误差分析和方程组的条件数315
11.2.1向量和矩阵范数316
11.2.2矩阵条件数317
11.2.3用MATLAB计算范数和条件数319
11.3案例研究:室内空气污染320
11.4习题323
第12章迭代法329
12.1线性方程组:高斯-赛德尔329
12.1.1收敛性与对角占优332
12.1.2MATLABM文件:GaussSeidel332
12.1.3松弛法333
12.2非线性方程组335
12.2.1逐次代换法336
12.2.2牛顿-拉弗森方法337
12.2.3MATLAB函数:
fsolve342
12.3案例研究:化学反应343
12.4习题345
第13章特征值351
提出问题351
13.1数学背景352
13.2物理背景356
13.3幂方法358
13.4MATLAB函数:eig360
13.5案例研究:特征值与
地震362
13.6习题364
第Ⅳ部分曲线拟合
第14章线性回归373
提出问题373
14.1统计学回顾374
14.1.1描述统计学375
14.1.2正态分布377
14.1.3用MATLAB计算描述统计学量378
14.2随机数和模拟380
14.2.1MATLAB函数:rand380
14.2.2MATLAB函数:randn383
14.3线性最小二乘回归384
14.3.1“最佳”拟合条件385
14.3.2直线的最小二乘拟合386
14.3.3线性回归误差的量化388
14.4非线性关系的线性化392
14.5计算机应用396
14.5.1MATLABM文件:linregr396
14.5.2MATLAB函数:polyfit和polyval398
14.6案例研究:酶动力学398
14.7习题402
第15章一般线性最小二乘回归和
非线性回归413
15.1多项式回归413
15.2多重线性回归416
15.3一般线性最小二乘回归419
15.4QR分解与反斜杆运算符421
15.5非线性回归422
15.6案例研究:实验数据拟合424
15.7习题427
第16章傅里叶分析435
提出问题435
16.1使用正弦函数进行曲线拟合436
16.2连续傅里叶级数442
16.3频域和时域444
16.4傅里叶积分和变换447
16.5离散傅里叶变换(DFT)447
16.5.1快速傅里叶变换(FFT)449
16.5.2MATLAB函数:fft450
16.6功率谱452
16.7案例研究:太阳黑子453
16.8习题455
第17章多项式插值459
提出问题459
17.1插值法导论460
17.1.1确定多项式的系数461
17.1.2MATLAB函数:polyfit和polyval462
17.2牛顿插值多项式463
17.2.1线性插值463
17.2.2二次插值465
17.2.3牛顿插值多项式的一般形式466
17.2.4MATLABM文件:
Newtint469
17.3拉格朗日插值多项式470
17.4逆插值473
17.5外插值和振荡474
17.5.1外插值474
17.5.2振荡476
17.6习题478
第18章样条和分段插值485
18.1样条导论485
18.2线性样条487
18.3二次样条490
18.4三次样条493 [3]
18.4.1三次样条的推导494
18.4.2边界条件497
18.5MATLAB中的分段线性
插值498
18.5.1MATLAB函数:
spline499
18.5.2MAYTLAB函数:
interp1500
18.6多维插值502
18.6.1双线性插值503
18.6.2MATLAB中的多维插值504
18.7案例研究:传热505
18.8习题508
第Ⅴ部分积分与微分
第19章数值积分公式519
提出问题519
19.1导论和背景520
19.1.1什么是积分520
19.1.2工程和科学中的积分521
19.2牛顿-科特斯公式523
19.3梯形法则524
19.3.1梯形法则的误差525
19.3.2复合梯形法则527
19.3.3MATLABM文件:trap529
19.4辛普森法则530
19.4.1辛普森1/3法则531
19.4.2复合辛普森1/3法则532
19.4.3辛普森3/8法则534
19.5高阶牛顿-科特斯公式536
19.6非等距积分537
19.6.1MATLABM文件:trapuneq537
19.6.2MATLAB函数:trapz和cumtrapz538
19.7开型方法540
19.8多重积分541
19.9案例研究:用数值积分计算功543
19.10习题546
第20章函数的数值积分555
20.1导论555
20.2龙贝格积分556
20.2.1理查森外推法556
20.2.2龙贝格积分公式558
20.3高斯求积561
20.3.1待定系数法562
20.3.2两点高斯-勒让德公式的推导563
20.3.3更多点的公式566
20.4自适应求积分567
20.4.1MATLAB的M文件:quadadapt567
20.4.2MATLAB函数:integral570
20.5案例研究:均方根电流570
20.6习题574
第21章数值微分581
提出问题581
21.1导论和背景582
21.1.1什么是微分582
21.1.2工程和科学中的微分583
21.2高精度微分公式585
21.3理查森外推法588
21.4不等距数据的导数589
21.5含误差数据的导数与
积分590
21.6偏导数591
21.7用MATLAB计算数值
微分592
21.7.1MATLAB函数:diff592
21.7.2MATLAB函数:
gradient594
21.8案例研究:向量场的
可视化596
21.9习题597
第Ⅵ部分常微分方程
第22章初值问题613
提出问题613
22.1概述614
22.2欧拉法615
22.2.1欧拉法的误差分析617
22.2.2欧拉法的稳定性618
22.2.3MATLAB的M文件函数:eulode619
22.3欧拉法的改进620
22.3.1休恩法620
22.3.2中点方法624
22.4龙格-库塔方法625
22.4.1二阶龙格-库塔方法626
22.4.2古典四阶龙格-库塔方法627
22.5方程组630
22.5.1欧拉法630
22.5.2龙格-库塔方法631
22.5.3MATLAB的M文件函数:rk4sys633
22.6案例研究:捕食者-猎物模型与混沌635
22.7习题639
第23章自适应方法和刚性方程组647
23.1自适应龙格-库塔方法647
23.1.1求解非刚性方程组的MATLAB函数649
23.1.2事件653
23.2多步方法655
23.2.1非自启动休恩法655
23.2.2误差估计658
23.3刚性659
23.4MATLAB应用:带绳索的蹦极运动员664
23.5案例研究:普林尼的间歇式喷泉665
23.6习题669
第24章边值问题679
提出问题679
24.1导论和背景680
24.1.1什么是边值问题680
24.1.2工程和科学中的
边值问题681
24.2打靶法684
24.2.1导数边界条件686
24.2.2非线性ODE的打靶法688
24.3有限差分法690
24.3.1导数边界条件692
24.3.2非线性ODE的有限差分法694
24.4MATLAB函数:bvp4c696
24.5习题698
附录AMATLAB内置函数707
附录BMATLAB的M文件函数709
附录CSimulink简介711