新书推荐 |《Python科学计算(原书第2版)》

新书推荐

《Python科学计算(原书第2版)》

点击上图了解及购买

活学活用Python科学计算软件包,动手实现复杂的算法,解决不同科研领域的问题。

内容简介

相对于传统的Matlab和Mathematica等昂贵的商业软件包,Python科学计算软件包以其开源、免费、库资源丰富的特点,赢得了广大科技工作者和理工科学生的青睐。本书讲解如何使用Python科学计算软件包来实现和测试复杂的数学算法,第2版针对Jupyter笔记本用户更新了部分代码,并新增了讲解SymPy的章节。

书中首先简要介绍Python相关知识,涵盖IPython、NumPy和SymPy,以及二维和多维图形的绘制。这些知识旨在为读者提供必要的基础,而非呈现Python语言的所有细节。之后,书中讨论了三个不同领域的应用实例,涉及常微分方程、偏微分方程和多重网格,并展示了处理Fortran遗留代码的方法。读者可以在这些实例的基础上举一反三,尝试采用合适的附加模块来解决自己所在领域的实际问题。

作者简介

约翰•M. 斯图尔特(John M. Stewart) 剑桥大学应用数学和理论物理系荣誉退休教授,国王学院终身研究员,于2016年逝世。40多年来,他一直是相对论与引力小组的核心成员,引领着关于相对论动力学理论、宇宙微扰理论和数值相对论的研究工作。他的著作包括《Non-equilibrium Relativistic Kinetic Theory》(1971)和《Advanced General Relativity》(1991)。

译者简介

江红 华东师范大学副教授,博士。1994年毕业于复旦大学计算机系。曾荣获上海市教学成果一等奖、华东师范大学教学成果一等奖、华东师范大学优秀任课教师奖等荣誉。

余青松 华东师范大学高级工程师。1990年毕业于华东师范大学并留校任教。编著计算机相关教材30余本,在国内外学术期刊和学术会议上发表科技论文近百篇。

目录

出版者的话

译者序

第2版前言

第1版前言

第1章 导论1

1.1 科学计算软件1

1.2 本书的规划3

1.3 Python能与编译语言竞争吗7

1.4 本书的局限性8

1.5 安装Python和附加软件包8

第2章 IPython入门9

2.1 Tab键代码自动补全功能9

2.2 自省9

2.3 历史命令11

2.4 魔法命令11

2.5 IPython实践:扩展示例13

2.5.1 使用IPython终端的工作流程14

2.5.2 使用IPython笔记本的工作流程14

第3章 Python简明教程18

3.1 输入Python代码18

3.2 对象和标识符19

3.3 数值类型20

3.3.1 整型20

3.3.2 实数21

3.3.3 布尔值22

3.3.4 复数23

3.4 名称空间和模块23

3.5 容器对象25

3.5.1 列表25

3.5.2 列表索引26

3.5.3 列表切片26

3.5.4 列表的可变性27

3.5.5 元组28

3.5.6 字符串29

3.5.7 字典29

3.6 Python的if语句30

3.7 循环结构31

3.7.1 Python的for循环结构31

3.7.2 Python的continue语句32

3.7.3 Python的break语句33

3.7.4 列表解析33

3.7.5 Python的while循环34

3.8 函数35

3.8.1 语法和作用范围35

3.8.2 位置参数38

3.8.3 关键字参数38

3.8.4 可变数量的位置参数38

3.8.5 可变数量的关键字参数39

3.8.6 Python的输入/输出函数39

3.8.7 Python的print函数40

3.8.8 匿名函数42

3.9 Python类简介42

3.10 Python程序结构44

3.11 素数:实用示例45

第4章 NumPy49

4.1 一维数组50

4.1.1 初始构造函数51

4.1.2 “相似”构造函数52

4.1.3 向量的算术运算52

4.1.4 通用函数54

4.1.5 向量的逻辑运算符55

4.2 二维数组58

4.2.1 广播58

4.2.2 初始构造函数59

4.2.3 “相似”构造函数61

4.2.4 数组的运算和通用函数61

4.3 多维数组62

4.4 内部输入和输出62

4.4.1 分散的输出和输入62

4.4.2 NumPy文本文件的输出和输入64

4.4.3 NumPy二进制文件的输出和输入65

4.5 外部输入和输出65

4.5.1 小规模数据65

4.5.2 大规模数据66

4.6 其他通用函数66

4.6.1 最大值和最小值66

4.6.2 求和与乘积67

4.6.3 简单统计67

4.7 多项式67

4.7.1 根据数据求多项式系数68

4.7.2 根据多项式系数求数据68

4.7.3 系数形式的多项式运算68

4.8 线性代数68

4.8.1 矩阵的基本运算68

4.8.2 矩阵的特殊运算70

4.8.3 求解线性方程组71

4.9 有关NumPy的更多内容和进一步学习71

4.9.1 SciPy71

4.9.2 SciKits72

第5章 二维图形73

5.1 概述73

5.2 绘图入门:简单图形74

5.2.1 前端74

5.2.2 后端74

5.2.3 一个简单示例图形75

5.2.4 交互式操作77

5.3 面向对象的Matplotlib77

5.4 笛卡儿坐标绘图78

5.4.1 Matplotlib绘图函数78

5.4.2 曲线样式79

5.4.3 标记样式79

5.4.4 坐标轴、网格线、标签和标题80

5.4.5 一个稍复杂的示例:傅里叶级数的部分和81

5.5 极坐标绘图82

5.6 误差条83

5.7 文本与注释84

5.8 显示数学公式84

5.8.1 非LaTeX用户85

5.8.2 LaTeX用户86

5.8.3 LaTeX用户的替代方案86

5.9 等高线图87

5.10 复合图形89

5.10.1 多个图形89

5.10.2 多个绘图90

5.11 曼德尔布罗特集:实用示例91

第6章 多维图形96

6.1 概述96

6.2 降维到二维96

6.3 可视化软件97

6.4 可视化任务示例97

6.5 孤立波的可视化98

6.5.1 交互式操作任务98

6.5.2 动画任务100

6.5.3 电影任务101

6.6 三维对象的可视化102

6.7 三维曲线103

6.7.1 使用mplot3d可视化曲线103

6.7.2 使用mlab可视化曲线105

6.8 简单曲面106

6.8.1 使用mplot3d可视化简单曲面106

6.8.2 使用mlab可视化简单曲面108

6.9 参数化定义的曲面109

6.9.1 使用mplot3d可视化Enneper曲面109

6.9.2 使用mlab可视化Enneper曲面110

6.10 居里叶集的三维可视化111

第7章 SymPy:一个计算机代数系统113

7.1 计算机代数系统113

7.2 符号和函数114

7.3 Python和SymPy之间的转换116

7.4 矩阵和向量117

7.5 一些初等微积分118

7.5.1 微分118

7.5.2 积分118

7.5.3 级数与极限119

7.6 等式、符号等式和化简120

7.7 方程求解121

7.7.1 单变量方程122

7.7.2 具有多个自变量的线性方程组122

7.7.3 更一般的方程组124

7.8 常微分方程的求解125

7.9 在SymPy中绘图127

第8章 常微分方程132

8.1 初值问题132

8.2 基本思想132

8.3 odeint函数135

8.3.1 理论背景135

8.3.2 谐波振荡器136

8.3.3 范德波尔振荡器139

8.3.4 洛伦兹方程140

8.4 两点边值问题142

8.4.1 概述142

8.4.2 边值问题的公式化143

8.4.3 简单示例144

8.4.4 线性特征值问题145

8.4.5 非线性边值问题147

8.5 延迟微分方程151

8.5.1 模型方程151

8.5.2 更一般的方程及其数值解152

8.5.3 逻辑斯谛方程153

8.5.4 麦克-格拉斯方程155

8.6 随机微分方程157

8.6.1 维纳过程158

8.6.2 It?微积分158

8.6.3 It?与斯特拉托诺维奇随机积分162

8.6.4 随机微分方程的数值求解162

第9章 偏微分方程:伪谱方法169

9.1 初边值问题169

9.2 直线法170

9.3 有限差分空间导数170

9.4 周期问题的谱技术空间导数方法171

9.5 空间周期问题的IVP172

9.6 非周期问题的谱技术174

9.7 f2py概述176

9.7.1 使用标量参数的简单示例177

9.7.2 向量参数178

9.7.3 使用多维参数的简单示例179

9.7.4 f2py的其他特征180

9.8 f2py真实案例181

9.9 实用示例:伯格斯方程182

9.9.1 边界条件:传统方法183

9.9.2 边界条件:惩罚方法183

第10章 案例研究:多重网格187

10.1 一维情形188

10.1.1 线性椭圆型方程188

10.1.2 平滑众数和粗糙众数188

10.2 多重网格工具189

10.2.1 松弛法189

10.2.2 残差与误差191

10.2.3 延拓和限制192

10.3 多重网格算法193

10.3.1 双重网格算法194

10.3.2 V循环算法195

10.3.3 完全多重网格算法195

10.4 简单的Python多重网格实现196

10.4.1 实用函数197

10.4.2 平滑函数198

10.4.3 多重网格函数200

附录A 安装Python环境205

附录B 伪谱方法的Fortran77子程序213

参考文献218

新书推荐 |《Python科学计算(原书第2版)》_第1张图片

你与世界

只差一个

公众号

你可能感兴趣的:(可视化,python,人工智能,编程语言,机器学习)