图书目录

目  录

 

第 I 部分  建模、计算机和误差分析

第1章  数学建模、数值方法和问题

求解 3

1.1  一个简单的数学模型 4

1.2  工程与科学中的守恒定律 9

1.3  本书所涉及的数值方法 11

1.4  案例研究:自由落体 12

习题 14

第2章  Python基础 24

2.1  Spyder/IPython运行环境 25

2.2  赋值 26

2.2.1  标量 26

2.2.2  数组、向量和矩阵 27

2.2.3  下标和下标的范围 30

2.2.4  arange、linspace和logspace函数 30

2.2.5  字符串 31

2.3  数学运算 33

2.4  使用内置函数 37

2.5  制图 41

2.6  其他资源 47

2.7  案例研究:探索性数据分析 48

习题 51

第3章  Python编程 57

3.1  Python脚本文件 58

3.1.1  Python脚本 58

3.1.2  Python函数 59

3.1.3  变量作用域 61

3.2  输入和输出 63

3.3  结构化编程 66

3.3.1  决策流程 66

3.3.2  关于参数的更多信息 70

3.3.3  循环 71

3.4  嵌套和缩进 76

3.5  带有函数名称参数的Python函数 79

3.5.1  lambda函数 79

3.5.2  函数-函数 80

3.5.3  参数传递 83

3.6  案例研究:蹦极者的速度计算 85

习题 88

第4章  舍入和截断误差 100

4.1  误差 100

4.1.1  准确度和精确度 101

4.1.2  误差定义 101

4.1.3  迭代计算的计算机算法 104

4.2  舍入误差 106

4.2.1  计算机中数字的表示法 106

4.2.2  计算机中数字的算术运算 111

4.3  截断误差 113

4.3.1  泰勒级数 113

4.3.2  泰勒级数式的余数 116

4.3.3  使用泰勒级数估计截断误差 118

4.3.4  数值微分 118

4.4  总数值误差 122

4.4.1  数值微分的误差分析 122

4.4.2  数值误差的控制 125

4.5  错误、模型误差和数据不确定性 125

4.5.1  错误 125

4.5.2  模型误差 126

4.5.3  数据不确定性 126

习题 126

第Ⅱ部分  求根和最优化

第5章  求根:交叉法 133

5.1  工程和科学应用中的求根问题 133

5.2  图形和试错法 134

5.3  交叉法和初步猜测 137

5.4  二分法 140

5.5  试位法 146

5.6  案例研究:温室气体和雨水 148

习题 152

第6章  根:开型法 159

6.1  不动点迭代 160

6.2  韦格斯坦法 164

6.3  牛顿-拉夫逊法 168

6.4  正割法 174

6.5  布伦特法 175

6.5.1  逆二次插值法 175

6.5.2  布伦特法的算法 177

6.6  Python SciPy函数:brentq 179

6.7  多项式 180

6.8  案例研究:管道摩擦 183

习题 188

第7章  优化 198

7.1  背景介绍 199

7.2  一维优化 201

7.2.1  黄金分割搜索 201

7.2.2  抛物线插值 207

7.2.3  Python的SciPy函数:

minimize_scalar 208

7.3  多维优化 210

7.4  案例研究:平衡和最小势能 212

习题 214

第Ⅲ部分  线性方程组

第8章  线性代数方程与矩阵 226

8.1  矩阵代数概述 227

8.1.1  矩阵符号 228

8.1.2  矩阵运算规则 229

8.1.3  用矩阵形式表示线性代数方程 237

8.2  用Python求解线性代数方程 238

8.3  案例研究:电路中的电流和

电压 240

习题 243

第9章  高斯消元法 249

9.1  求解少量方程 249

9.1.1  图解法 250

9.1.2  行列式和克莱默法则 251

9.1.3  消除未知数法 253

9.2  朴素高斯消元法 254

9.2.1  Python函数:gaussnaive 256

9.2.2  运算计数 258

9.3  主元 260

9.3.1  Python函数:gausspivot 261

9.3.2  用高斯消元法求行列式 262

9.4  三对角方程组 263

9.5  案例研究:加热棒模型 265

习题 268

第10章  LU因式分解法 275

10.1  LU分解法概述 275

10.2  LU分解的高斯消元 276

10.2.1  涉及主元消元的LU分解 279

10.2.2  应用Python的LU分解法 281

10.3  乔里斯基分解法 282

10.4  Python的np.linalg.solve函数 284

习题 285

第11章  矩阵的逆和条件 287

11.1  矩阵的逆 287

11.1.1  计算逆矩阵 287

11.1.2  刺激-响应计算 289

11.2  错误分析和系统状态 290

11.2.1  向量和矩阵范数 291

11.2.2  矩阵条件数 292

11.2.3  用Python计算范数和

条件数 293

11.3  案例研究:室内空气污染 294

习题 297

第12章  迭代法 302

12.1  线性方程组:高斯-赛德尔法 302

12.1.1  收敛性和对角优势 304

12.1.2  Python函数:gaussseide1 304

12.1.3  松弛 306

12.2  非线性系统 307

12.2.1  逐次代换法 307

12.2.2  牛顿-拉夫逊法 309

12.2.3  Python SciPy函数:root 313

12.3  案例研究:化学反应 314

习题 316

第13章  特征值 321

13.1  特征值和特征向量——

基础知识 322

13.2  特征值和特征向量的应用 324

13.2.1  二阶微分方程的一阶等价

方程 325

13.2.2  特征值和特征向量在微分

方程解中的作用 325

13.2.3  特征值和纯振荡的常微分

方程 326

13.3  物理场景-质量-弹簧系统 329

13.4  幂法 331

13.5  Python NumPy函数:eig和

eigvals 333

13.6  案例研究:特征值与地震 334

习题 338

第Ⅳ部分  曲线拟合

第14章  直线线性回归 346

14.1  统计学回顾 347

14.1.1  描述性统计 347

14.1.2  正态分布 351

14.1.3  使用Python进行描述性统计 354

14.2  随机数和模拟 357

14.2.1  均匀分布中的随机数 357

14.2.2  正态分布中的随机数 359

14.3  直线最小二乘回归 361

14.3.1  “最佳”拟合的标准 362

14.3.2  直线的最小二乘拟合 363

14.3.3  绘制直线的“荒岛”法 365

14.3.4  线性回归误差的量化 365

14.4  非线性关系的线性化 370

14.5  计算机应用 375

14.5.1  Python函数:strlinregr 375

14.5.2  Python NumPy函数:

polyfit和polyval 378

14.6  案例研究:酶动力学 379

习题 382

第15章  一般线性回归和非线性回归 393

15.1  多项式回归 393

15.2  多元线性回归 397

15.3  一般线性最小二乘回归 399

15.4  回归中的模型建立与选择 403

15.5  非线性回归 409

15.6  案例研究:拟合实验数据 414

习题 417

第16章  傅里叶分析 424

16.1  用正弦函数进行曲线拟合 425

16.2  连续傅里叶级数 430

16.3  频域和时域 432

16.4  傅里叶积分和变换 435

16.5  离散傅里叶变换(DFT) 435

16.5.1  快速傅里叶变换(FFT) 436

16.5.2  Python SciPy函数:fft 437

16.6  功率谱 439

16.7  案例研究:太阳黑子 440

习题 442

第17章  多项式插值法 446

17.1  插值法简介 447

17.1.1  确定多项式系数 447

17.1.2  Python NumPy函数:

polyfit和polyval 449

17.2  牛顿插值多项式 449

17.2.1  线性插值 449

17.2.2  二次插值 451

17.2.3  牛顿插值多项式的一般形式 452

17.2.4  Python函数Newtint 454

17.3  拉格朗日插值多项式 455

17.4  逆插值 458

17.5  外推法和振荡 458

17.5.1  外推法 458

17.5.2  振荡 461

习题 463

第18章  样条和分段插值 469

18.1  样条简介 469

18.2  线性样条 471

18.3  二次样条 477

18.4  三次样条 478

18.4.1  三次样条的推导 479

18.4.2  末端条件 482

18.5  Python中的分段插值 483

18.5.1  Python SciPy模块的interpolate

函数:CubicSpline 485

18.5.2  附加的Python SciPy插值函数:

interp1d和PchipInterpolator 487

18.6  多维插值 488

18.6.1  双线性插值 489

18.6.2  Python中的多维插值 490

18.7  数据序列的平滑 491

18.7.1  三次样条平滑 491

18.7.2  LOESS平滑法 494

18.8  案例研究:湖中的热传导 499

习题 501

第Ⅴ部分  微积分

第19章  数值积分方程 511

19.1  背景简介 512

19.1.1  什么是积分 512

19.1.2  工程与科学中的积分 512

19.2  牛顿-科特斯方程 514

19.3  梯形法则 516

19.3.1  梯形法则的误差 516

19.3.2  复合梯形法则 517

19.3.3  Python函数:trap 520

19.4  辛普森法则 521

19.4.1  辛普森1/3 法则 521

19.4.2  复合辛普森1/3法则 522

19.4.3  辛普森3/8法则 524

19.5  高阶牛顿-科特斯方程 526

19.6  不等段积分 526

19.6.1  Python函数:trapuneq 527

19.6.2  Python函数:trapz和

trap_cumulative 528

19.7  开放式方法 530

19.8  多重积分 531

19.9  案例研究:数值积分的计算 533

习题 536

第20章  函数的数值积分 543

20.1  简介 543

20.2  Romberg积分 544

20.2.1  Richardson外推 544

20.2.2  Romberg积分算法 546

20.3  高斯求积法 548

20.3.1  待定系数法 548

20.3.2  两点高斯-勒让德公式的推导 550

20.3.3  高点公式 552

20.4  自适应求积法 553

20.4.1  Python函数:quadadapt 553

20.4.2  Python SciPy积分函数:

quad 555

20.5  案例研究:均方根电流 556

习题 559

第21章  数值导数 565

21.1  背景简介 566

21.1.1  什么是导数 566

21.1.2  工程与科学的导数 567

21.2  高精度导数公式 568

21.3  Richardson 外推法 571

21.4  不等间距数据的导数 572

21.5  有误差数据的导数和积分 573

21.6  偏导数 574

21.7  Python数值求导 574

21.7.1  Python NumPy函数:diff 574

21.7.2  Python NumPy函数:

gradient 577

21.8  案例研究:场的可视化 579

习题 580

第Ⅵ部分  常微分方程

第22章  初值问题 594

22.1  概述 595

22.2  欧拉法 595

22.2.1  欧拉法的误差分析 597

22.2.2  欧拉法的稳定性 598

22.2.3  Python函数:eulode 599

22.3  改进欧拉法 601

22.3.1  Heun方法 601

22.3.2  中点法 604

22.4  Runge-Kutta方法 605

22.4.1  二阶Runge-Kutta法 605

22.4.2  经典四阶 Runge-Kutta法 606

22.5  方程组 608

22.5.1  欧拉法 609

22.5.2  Runge-Kutta法 610

22.5.3  Python 函数:rk4sys 611

22.6  案例研究:捕食者—猎物

模型和变体 614

习题 618

第23章  自适应方法和刚性系统 625

23.1  自适应Runge-Kutta方法 625

23.1.1  RKF 4/5算法的Python函数:

rkf45 626

23.1.2  求解IVP ODE的Python函数:

SciPy solve_ivp积分函数 630

23.1.3  事件 633

23.2  多步法 636

23.2.1  非自启动Heun方法 636

23.2.2  误差估计 638

23.3  刚度 639

23.4  Python 应用:带绳的蹦极者 644

23.5  案例研究:普林尼的间歇喷泉 646

习题 649

第24章  边值问题 659

24.1  背景简介 660

24.1.1  什么是边值问题 660

24.1.2  工程和科学中的边值问题 660

24.2  打靶法 663

24.2.1  导数边界条件 665

24.2.2  非线性常微分方程的打靶法 667

24.3  有限差分法 669

24.3.1  导数边界条件 671

24.3.2  非线性 ODE 的有限差分

方法 673

24.4  Python函数:solve_bvp 674

习题 676

—扫封底二维码下载以下内容—

附录A  Matplotlib 685

附录B  三次样条平滑 705

附录C  Python内置关键字:函数、方法、

操作符、类型 710

附录D  书中用到的Python函数和脚本 713

参考文献 715