描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302486923丛书名: 国外计算机科学经典教材
◆ 以关键概念(如泰勒级数、收敛、条件数等)阐述理论
◆ 使用MATLAB的M文件表示算法,插图与表格清晰而准确
◆ 广泛使用实例演示以及工程和科学应用案例,使学生清楚地把握数值计算的每个步骤
◆ 各章末尾的习题丰富而实用,*版新增了一些更具挑战性的习题
第Ⅰ部分 建模、计算机与误差分析
第1章 数学建模、数值方法与问题
求解 3
提出问题 3
1.1 一个简单的数学模型 4
1.2 工程与科学中的守恒律 10
1.3 本书中涉及的数值方法 13
1.4 案例研究 15
1.5 习题 17
第2章 MATLAB基础 29
提出问题 29
2.1
MATLAB环境 30
2.2 赋值 31
2.2.1 标量 31
2.2.2 数组、向量和矩阵 33
2.2.3 冒号操作符 35
2.2.4 linspace和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.1 M文件 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
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.5
MATLAB函数:fzero 193
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.3
MATLAB函数:
fminbnd 224
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.1
MATLAB M文件:
GaussNaive 278
9.2.2 运算次数 279
9.3 选主元 281
9.3.1 MATLAB M文件:
GaussPivot 283
9.3.2 用高斯消元法计算
行列式 284
9.4 三对角方程组 285
9.5 案例研究:热杆模型 287
9.6 习题 290
第10章 LU分解 297
10.1 LU分解概述 298
10.2 高斯消元法与LU分解 299
10.2.1 使用选主元的LU分解 302
10.2.2
MATLAB函数:lu 304
10.3 楚列斯基分解 305
10.4
MATLAB的左除运算 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.2 MATLAB M文件:
GaussSeidel 332
12.1.3 松弛法 333
12.2 非线性方程组 335
12.2.1 逐次代换法 336
12.2.2 牛顿-拉弗森方法 337
12.2.3 MATLAB函数:
fsolve 342
12.3 案例研究:化学反应 343
12.4 习题 345
第13章 特征值 351
提出问题 351
13.1 数学背景 352
13.2 物理背景 356
13.3 幂方法 358
13.4
MATLAB函数:eig 360
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.1 MATLAB函数:rand 380
14.2.2 MATLAB函数:
randn 383
14.3 线性小二乘回归 384
14.3.1 “”拟合条件 385
14.3.2 直线的小二乘拟合 386
14.3.3 线性回归误差的量化 388
14.4 非线性关系的线性化 392
14.5 计算机应用 396
14.5.1 MATLAB M文件:
linregr 396
14.5.2 MATLAB函数:
polyfit和polyval 398
14.6 案例研究:酶动力学 398
14.7 习题 402
第15章 一般线性小二乘回归和
非线性回归 413
15.1 多项式回归 413
15.2 多重线性回归 416
15.3 一般线性小二乘回归 419
15.4 QR分解与反斜杆运算符 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.2 MATLAB函数:fft 450
16.6 功率谱 452
16.7 案例研究:太阳黑子 453
16.8 习题 455
第17章 多项式插值 459
提出问题 459
17.1 插值法导论 460
17.1.1 确定多项式的系数 461
17.1.2 MATLAB函数:
polyfit和polyval 462
17.2 牛顿插值多项式 463
17.2.1 线性插值 463
17.2.2 二次插值 465
17.2.3 牛顿插值多项式的
一般形式 466
17.2.4 MATLAB M文件:
Newtint 469
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
18.4.1 三次样条的推导 494
18.4.2 边界条件 497
18.5 MATLAB中的分段线性
插值 498
18.5.1 MATLAB函数:
spline 499
18.5.2 MAYTLAB函数:
interp1 500
18.6 多维插值 502
18.6.1 双线性插值 503
18.6.2 MATLAB中的
多维插值 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.3 MATLAB M文件:
trap 529
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.1 MATLAB M文件:
trapuneq 537
19.6.2 MATLAB函数:
trapz和cumtrapz 538
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.1 MATLAB的 M文件:
quadadapt 567
20.4.2 MATLAB函数:
integral 570
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.1 MATLAB函数:diff 592
21.7.2 MATLAB函数:
gradient 594
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.3 MATLAB的M文件
函数:eulode 619
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.3 MATLAB的M文件
函数:rk4sys 633
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.4 MATLAB应用:带绳索的
蹦极运动员 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.4
MATLAB函数:bvp4c 696
24.5 习题 698
附录A MATLAB内置函数 707
附录B MATLAB的M文件函数 709
附录C Simulink简介 711
本书的设计目标是满足一个学期的数值方法课程。对于希望学习和应用数值方法来解决工程与科学问题的学生来讲,本书正是为他们而编写的。同样,这些方法是由实际问题而不是由数学理论来驱动的。本书同时提供了足够的理论,可以让学生对这些方法及其不足有深入的认识。
MATLAB为该课程提供了一个非常棒的环境。尽管还可以选择其他的环境(如Excel/VBA、Mathcad)或语言(如Fortran 90、C ),但就目前来说,方便的编程特性与强大的内置数值函数的完美结合让我们选择了MATLAB。一方面,MATLAB的M文件编程环境可以让学生以结构化和一致的方式适度地实现一些高级算法。另一方面,MATLAB的内置数值函数增强了学生的能力,让他们可以求解更加困难的问题,而不用试着“重复一些简单的问题”。
本书在第4版中保留了第3版的基本内容、组织结构和教学原理。特别是,第4版特意保留了会话式的写作风格,使得本书深入浅出,易于阅读。本书试图直接与读者对话,并有意设计,旨在成为自学的工具书。
也就是说,这个版本与之前的版本相比,在三个方面有所不同:(1)新材料;(2)新增习题以及修订的习题;(3)新增了介绍Simulink的附录C。
(1) 新内容。在一些主题中,增加了一些新内容,并增强介绍了一些章节。补充的主要内容包括一些先前版本中未提到的MATLAB函数(如fsolve、integrated、bvp4c),在积分和优化问题方面,一些蒙特卡罗方法的新应用,以及MATLAB将参数传递给函数的新方法。
(2) 新增习题。既修改了章末的大部分习题,也新增了各种新习题。特别是,已经做出了努力,在每一章中包含若干比前一版更具挑战性和更困难的新习题。
(3) 新增关于Simulink的简短入门介绍,让学生在阅读这个课题之前,先阅读这个入门介绍。虽然我知道一些教授可能不会选择教授Simulink,但是我将这个内容涵盖在本书内,旨在作为讲解该内容的教学辅助手段。
除了增加这些习题和材料之外,第4版与第3版非常相似。尤其是,尽可能地保留大多数有益于增强教学效果的优秀特征,包括广泛地使用实例演示以及工程和科学应用案例。与前一版一样,本书同样尽可能地满足学生的使用需求。为此,本书努力做到让解释更直接、更实用。
尽管本书的基本目的是增强学生的能力,让他们能够更好地进入数值问题求解领域,但是还有一个目的就是让学生在学习时感到激动和愉悦。我相信积极主动的学生会喜爱工程与科学、问题求解、数学,当然还有编程,他们终会获得更好的职业。如果本书能够培养他们对这些主题的激情和兴趣,那么我认为这种努力就取得了成功。
评论
还没有评论。