3.1.2Python函数 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.1lambda函数 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.6PythonSciPy函数: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.3Python的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.1Python函数:gaussnaive 256
9.2.2运算计数 258
9.3主元 260
9.3.1Python函数:gausspivot 261
9.3.2用高斯消元法求行列式 262
9.4三对角方程组 263
9.5案例研究:加热棒模型 265
习题 268
第10章LU因式分解法 275
10.1LU分解法概述 275
10.2LU分解的高斯消元 276
10.2.1涉及主元消元的LU分解 279
10.2.2应用Python的LU分解法 281
10.3乔里斯基分解法 282
10.4Python的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.2Python函数:gaussseide1 304
12.1.3松弛 306
12.2非线性系统 307
12.2.1逐次代换法 307
12.2.2牛顿-拉夫逊法 309
12.2.3PythonSciPy函数: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.5PythonNumPy函数: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.1Python函数:strlinregr 375
14.5.2PythonNumPy函数:
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.2PythonSciPy函数:fft 437
16.6功率谱 439
16.7案例研究:太阳黑子 440
习题 442
第17章多项式插值法 446
17.1插值法简介 447
17.1.1确定多项式系数 447
17.1.2PythonNumPy函数:
polyfit和polyval 449
17.2牛顿插值多项式 449
17.2.1线性插值 449
17.2.2二次插值 451
17.2.3牛顿插值多项式的一般形式 452
17.2.4Python函数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.5Python中的分段插值 483
18.5.1PythonSciPy模块的interpolate
函数:CubicSpline 485
18.5.2附加的PythonSciPy插值函数:
interp1d和PchipInterpolator 487
18.6多维插值 488
18.6.1双线性插值 489
18.6.2Python中的多维插值 490
18.7数据序列的平滑 491
18.7.1三次样条平滑 491
18.7.2LOESS平滑法 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.3Python函数: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.1Python函数:trapuneq 527
19.6.2Python函数:trapz和
trap_cumulative 528
19.7开放式方法 530
19.8多重积分 531
19.9案例研究:数值积分的计算 533
习题 536
第20章函数的数值积分 543
20.1简介 543
20.2Romberg积分 544
20.2.1Richardson外推 544
20.2.2Romberg积分算法 546
20.3高斯求积法 548
20.3.1待定系数法 548
20.3.2两点高斯-勒让德公式的推导 550
20.3.3高点公式 552
20.4自适应求积法 553
20.4.1Python函数:quadadapt 553
20.4.2PythonSciPy积分函数:
quad 555
20.5案例研究:均方根电流 556
习题 559
第21章数值导数 565
21.1背景简介 566
21.1.1什么是导数 566
21.1.2工程与科学的导数 567
21.2高精度导数公式 568
21.3Richardson外推法 571
21.4不等间距数据的导数 572
21.5有误差数据的导数和积分 573
21.6偏导数 574
21.7Python数值求导 574
21.7.1PythonNumPy函数:diff 574
21.7.2PythonNumPy函数:
gradient 577
21.8案例研究:场的可视化 579
习题 580
第Ⅵ部分常微分方程
第22章初值问题 594
22.1概述 595
22.2欧拉法 595
22.2.1欧拉法的误差分析 597
22.2.2欧拉法的稳定性 598
22.2.3Python函数:eulode 599
22.3改进欧拉法 601
22.3.1Heun方法 601
22.3.2中点法 604
22.4Runge-Kutta方法 605
22.4.1二阶Runge-Kutta法 605
22.4.2经典四阶Runge-Kutta法 606
22.5方程组 608
22.5.1欧拉法 609
22.5.2Runge-Kutta法 610
22.5.3Python函数:rk4sys 611
22.6案例研究:捕食者—猎物
模型和变体 614
习题 618
第23章自适应方法和刚性系统 625
23.1自适应Runge-Kutta方法 625
23.1.1RKF4/5算法的Python函数:
rkf45 626
23.1.2求解IVPODE的Python函数:
SciPysolve_ivp积分函数 630
23.1.3事件 633
23.2多步法 636
23.2.1非自启动Heun方法 636
23.2.2误差估计 638
23.3刚度 639
23.4Python应用:带绳的蹦极者 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.4Python函数:solve_bvp 674
习题 676
—扫封底二维码下载以下内容—
附录AMatplotlib 685
附录B三次样条平滑 705
附录CPython内置关键字:函数、方法、
操作符、类型 710
附录D书中用到的Python函数和脚本 713
参考文献 715