第Ⅰ部分 建模、计算机与误差分析第1章 数学建模、数值方法与问题求解 3
1.1 一个简单的数学模型 4
1.2 工程与科学中的守恒律 10
1.3 本书中涉及的数值方法 13
1.4 习题 14
第2章 MATLAB基础 19
2.1 MATLAB环境 20
2.2 赋值 21
2.2.1 标量 21
2.2.2 数组、向量和矩阵 23
2.2.3 冒号操作符 25
2.2.4 linspace和logspace函数 26
2.3 数学运算 26
2.4 使用内置函数 30
2.5 绘图 33
2.6 其他资源 36
2.7 案例研究:探索性数据分析 37
2.8 习题 39
第3章 编写MATLAB程序 45
3.1 M文件 46
3.1.1 脚本文件 46
3.1.2 函数文件 47
3.1.3 子函数 49
3.2 输入输出 50
3.3 结构化编程 54
3.3.1 决策 55
3.3.2 循环 62
3.4 嵌套与缩进 66
3.5 将函数传入M文件 69
3.5.1 匿名函数 69
3.5.2 函数函数 71
3.5.3 传递参数 73
3.6 案例研究:蹦极运动员的速度 74
3.7 习题 78
第4章 舍入与截断误差 85
4.1 误差 86
4.1.1 准确度与精确度 86
4.1.2 误差定义 87
4.2 舍入误差 90
4.2.1 计算机中数的表示 90
4.2.2 计算机中数的算术运算 95
4.3 截断误差 97
4.3.1 泰勒级数 98
4.3.2 泰勒级数展开的余项 101
4.3.3 用泰勒级数估计截断误差 103
4.3.4 数值差分 104
4.4 总数值误差 108
4.4.1 数值微分的误差分析 109
4.4.2 数值误差的控制 111
4.5 粗差、模型误差和数据不确定性 112
4.5.1 粗差 112
4.5.2 模型误差 113
4.5.3 数据不确定性 113
4.6 习题 113
第Ⅱ部分 求根与最优化 121
第5章 求根:划界法 121
5.1 工程和科学领域中的求根问题 122
5.2 图形法 123
5.3 划界法与初始猜测值 125
5.4 二分法 129
5.5 试位法 134
5.6 案例研究:温室气体与雨水 137
5.7 习题 141
第6章 方程求根:开方法 147
6.1 简单不动点迭代 148
6.2 牛顿-拉弗森方法 152
6.3 割线法 157
6.4 MATLAB函数:fzero 159
6.5 多项式 162
6.6 案例研究:管道摩擦力 165
6.7 习题 169
第7章 最优化 175
7.1 简介与背景 176
7.2 一维最优化 178
7.2.1 黄金分割搜索 179
7.2.2 抛物线插值 184
7.2.3 MATLAB函数:fminbnd 186
7.3 多维最优化 187
7.4 案例研究:平衡与极小势能 189
7.5 习题 190
第Ⅲ部分 线性方程组 203
第8章 线性代数方程和矩阵 203
8.1 矩阵代数概述 205
8.1.1 矩阵符号 205
8.1.2 矩阵的运算规则 207
8.1.3 将线性代数方程组表示成矩阵形式 212
8.2 用MATLAB求解线性代数方程组 213
8.3 案例研究:电路中的电流和电压 215
8.4 习题 218
第9章 高斯消元法 223
9.1 求解小型方程组 224
9.1.1 绘图法 224
9.1.2 行列式和克拉默法则 225
9.1.3 未知数消元法 228
9.2 朴素高斯消元法 229
9.2.1 MATLABM文件:Gauss Naive 232
9.2.2 运算次数 233
9.3 选主元 235
9.4 三对角方程组 238
9.5 案例研究:热杆模型 240
9.6 习题 242
第10章 LU分解 249
10.1 LU分解概述 250
10.2 高斯消元法与LU分解 251
10.3 楚列斯基分解 256
10.4 MATLAB的左除运算 259
10.5 习题 259
第11章 矩阵求逆和条件数 263
11.1 矩阵的逆 263
11.1.1 逆矩阵的计算 263
11.1.2 激励-响应计算 265
11.2 误差分析和方程组的条件数 267
11.2.1 向量和矩阵范数 268
11.2.2 矩阵条件数 269
11.2.3 用MATLAB计算范数和条件数 271
11.3 案例研究:室内空气污染 272
11.4 习题 275
第12章 迭代法 279
12.1 线性方程组:高斯-赛德尔 279
12.1.1 收敛性与对角占优 282
12.1.2 MATLABM文件:GaussSeidel 282
12.1.3 松弛法 283
12.2 非线性方程组 284
12.2.1 逐次代换 285
12.2.2 牛顿—拉弗森 286
12.3 案例研究:化学反应 291
12.4 习题 293
第Ⅳ部分 曲线拟合 299
第13章 线性回归 299
13.1 统计学回顾 300
13.1.1 描述统计学 300
13.1.2 正态分布 303
13.1.3 用MATLAB计算描述统计学量 304
13.2 线性最小二乘回归 306
13.2.1 “最佳”拟合条件 307
13.2.2 直线的最小二乘拟合 308
13.2.3 线性回归误差的量化 310
13.3 非线性关系的线性化 314
13.4 计算机应用 317
13.4.1 MATLABM文件:linregr 317
13.4.2 MATLAB函数:polyfit和polyval 319
13.5 案例研究:酶动力学 320
13.6 习题 324
第14章 一般线性最小二乘回归和非线性回归 333
14.1 多项式回归 333
14.2 多重线性回归 336
14.3 一般线性最小二乘回归 339
14.4 QR分解与反斜杆运算符 342
14.5 非线性回归 343
14.6 案例研究:拟合正弦曲线 344
14.7 习题 348
第15章 多项式插值 355
15.1 插值法导论 356
15.1.1 确定多项式的系数 357
15.1.2 MATLAB函数:polyfit和polyval 358
15.2 牛顿插值多项式 359
15.2.1 线性插值 359
15.2.2 二次插值 361
15.2.3 牛顿插值多项式的一般形式 362
15.2.4 MATLABM文件:Newtint 365
15.3 拉格朗日插值多项式 366
15.4 逆插值 368
15.5 外插值和振荡 370
15.5.1 外插值 370
15.5.2 振荡 372
15.6 习题 373
第16章 样条和分段插值 379
16.1 样条导论 379
16.2 线性样条 381
16.3 二次样条 384
16.4 三次样条 387
16.4.1 三次样条的推导 388
16.4.2 边界条件 391
16.5 MATLAB中的分段线性插值 392
16.5.1 MATLAB函数:spline 393
16.5.2 MAYTLAB函数:interpl 394
16.6 多维插值 396
16.6.1 双线性插值 396
16.6.2 MATLAB中的多维插值 398
16.7 案例研究:传热 399
16.8 习题 402
第Ⅴ部分 积分与微分 411
第17章 数值积分公式 411
17.1 导论和背景 412
17.1.1 什么是积分 412
17.1.2 工程和科学中的积分 413
17.2 牛顿-科特斯公式 415
17.3 梯形法则 416
17.3.1 梯形法则的误差 417
17.3.2 复合梯形法则 419
17.3.3 MATLABM文件:trap 421
17.4 辛普森法则 422
17.4.1 辛普森1/3法则 423
17.4.2 复合辛普森1/3法则 424
17.4.3 辛普森3/8法则 426
17.5 高阶牛顿-科特斯公式 428
17.6 非等距积分 429
17.6.1 MATLABM文件:trapuneq 429
17.6.2 MATLAB函数:trapz和cumtrapz 430
17.7 开型方法 432
17.8 多重积分 433
17.9 案例研究:用数值积分计算功 435
17.10 习题 438
第18章 函数的数值积分 445
18.1 导论 445
18.2 龙贝格积分 446
18.2.1 理查森外推法 446
18.2.2 龙贝格积分公式 448
18.3 高斯求积 451
18.3.1 待定系数法 452
18.3.2 两点高斯-勒让德公式的推导 453
18.3.3 更多点的公式 456
18.4 自适应求积 457
18.5 案例研究:均方根电流 459
18.6 习题 462
第19章 数值微分 467
19.1 导论和背景 468
19.1.1 什么是微分 468
19.1.2 工程和科学中的微分 469
19.2 高精度微分公式 471
19.3 理查森外推法 474
19.4 不等距数据的导数 475
19.5 含误差数据的导数与积分 476
19.6 偏导数 477
19.7 用MATLAB计算数值微分 478
19.7.1 MATLAB函数:diff 478
19.7.2 MATLAB函数:gradient 480
19.8 案例研究:向量场的可视化 482
19.9 习题 484
第Ⅵ部分 常微分方程 499
第20章 初值问题 499
20.1 概述 500
20.2 欧拉法 501
20.2.1 欧拉法的误差分析 503
20.2.2 欧拉法的稳定性 504
20.2.3 MATLAB的M文件函数:eulode 505
20.3 欧拉法的改进 506
20.3.1 休恩法 506
20.3.2 中点方法 510
20.4 龙格-库塔方法 511
20.4.1 二阶龙格-库塔方法 512
20.4.2 古典四阶龙格-库塔方法 513
20.5 方程组 516
20.5.1 欧拉法 516
20.5.2 龙格-库塔方法 517
20.5.3 MATLAB的M文件函数:rk4sys 519
20.6 案例研究:捕食者-猎物模型与混沌 521
20.7 习题 525
第21章 自适应方法和刚性方程组 533
21.1 自适应龙格-库塔方法 533
21.2 多步方法 539
21.2.1 非自启动休恩法 539
21.2.2 误差估计 542
21.3 刚性 543
21.4 MATLAB应用:带绳索的蹦极者 548
21.5 案例研究:普林尼的间歇式喷泉 549
21.6 习题 552
第22章 边值问题 557
22.1 导论和背景 558
22.1.1 什么是边值问题 558
22.1.2 工程和科学中的边值问题 559
22.2 打靶法 562
22.2.1 导数边界条件 564
22.2.2 非线性ODE的打靶法 566
22.3 有限差分法 568
22.3.1 导数边界条件 570
22.3.2 非线性ODE的有限差分法 572
22.4 习题 574
附录A 特征值 581
附录B MATLAB内置函数 591
附录C MATLAB的M文件函数 593
参考文献 595