PYTHON应用数值方法——解决工程和科学问题
- ISBN:9787302645153
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:696
- 出版时间:2024-01-01
- 条形码:9787302645153 ; 978-7-302-64515-3
本书特色
我们正处在一个信息技术高速发展的时代,大数据与人工智能推动着传统技术的智能化变革,对科学和工程技术人员的理论素养与实践能力的要求越来越高。在此技术变革时代背景下,一名合格的技术人员在学术界和工程界立身的基础就是能够发现和分析问题,以及掌握解决问题的工程实践手段。
Python是目前能*大限度地满足这种需求的语言之一, 它具有易学易懂、胶水语言的灵活性及丰富的第三方支持库特性,是技术人员入门、进阶的利器,几乎可满足当前学术界和工程界各个领域的需求。但令人遗憾的是,目前市面上很少有书籍提供从发现和分析问题到工程实践的完整解决方案。本书可满足在校学生在理论和算法学习方面的需求,并提供详细的源代码:按照从相关概念定义、理论分析、算法实现再到源代码示例的逻辑撰写,介绍Python在数值计算中的应用。本书译者充分结合自身在计算理论与工程实践方面的丰富经验,保证了相关理论知识与编程技巧的正确传达。
内容简介
《Python应用数值方法——解决工程和科学问题》是为想要学习和应用数值方法来解决工程和科学问题的学生撰写的。书中提供了足够丰富的理论知识。如果读过本书的姊妹篇《工程与科学数值方法的MATLAB实现(第4版)》,就会发现过渡到Python程序是无缝的!不需要事先具有Python编程经验。 本书以解决问题为导向,强调理论联系实际。各章均引入实际的工程和科学问题,提供从相关概念定义、理论分析到算法实现的全套解决方案。每章末尾安排有课后习题,方便读者在巩固所学知识的同时,进一步提升自己编写代码和解决问题的水平。
目录
第 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
作者简介
StevenC.Chapra是塔夫茨大学土木与环境工程系名誉教授和Louis Berger讲座教授。他的其他著作包括Surface Water-QualityModeling、《工程数值方法(第6版)》和《工程与科学数值方法的MATLAB实现(第4版)》。Steven博士获得曼哈顿学院和密歇根大学的工程学学位。主要研究方向为地表水质建模和环境工程中的高级计算机应用。Steven是ASCE(美国土木工程学会)的院士和终身会员,并因学术贡献获得多个奖项,包括鲁道夫·赫林奖以及梅利亚姆·威利杰出作家奖。Steven还被公认为得克萨斯农工大学、科罗拉多大学和塔夫茨大学工程系的杰出教师和顾问。 David E. Clough于1975年加入科罗拉多大学化学与生物工程系。他于2017年从科罗拉多退休,后担任名誉教授。David博士获得了凯斯西储大学和科罗拉多大学的化学工程学位。他在应用计算、过程自动化和各种过程建模方面拥有丰富经验,重点研究的课题包括聚合、高温催化反应器、流化床、明渠流、生物医学仪器和太阳能热反应器。
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥19.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
贝叶斯推理与机器学习
¥139.3¥199.0