编辑推荐
Python是一种迅速得到科学界广泛认可的计算机编程语言。本书的目的在于为Python学习者提供帮助,使他们可以通过自学掌握足以开展物理建模工作的编程技能,包括设置开源Python的编程环境,以及使用Python完成一些常见的科学运算任务,例如数据的导入和导出、数据的可视化、数值分析和模拟等。本书无需读者具备任何的编程经验。本书侧重于基础性内容,并介绍了一些广泛适用的技术,包括:● Python编程基础与脚本;● 数值数组;● 二维和三维绘图;● 蒙特卡洛模拟;● 数值方法,包括常微分方程求解;● 图像处理;● 动画。为了清晰地阐述新的知识点,本书提供了丰富的代码例子和练习,并给出了相应的解答。
内容简介
Python 是一种得到广泛应用的编程语言。《Python物理建模初学者指南》旨在帮助Python 学习者掌握足够的Python编程技能以进行物理建模。《Python物理建模初学者指南》全书分为8 章和5 个附录,包括Python 基础知识、数据结构与程序控制、数据输入和输出、Python 高级知识和高级技术等,其中贯穿了三次不同方向和难度的物理建模上机实验。附录部分介绍了Python 的安装、错误消息、版本差异以及可供深入学习的话题。《Python物理建模初学者指南》本书适合Python 初学者阅读,尤其适合想要用Python 进行科学计算和物理建模的读者学习参考。
作者简介
Jesse M.Kinder拥有宾州大学的物理学和天文学博士学位,并在康奈尔大学完成了量子化学方向上的博士后工作,曾在凯斯西储大学教授物理课程,目前在新墨西哥州的里约兰町担任顾问。Philip Nelson是宾州大学的物理学教授。他也是Biological Physics和Physical Models of Living Systems两本书的作者。译者简介盖磊,物理学硕士,计算机博士。当前是一名科研人员,具有丰富的Python科学建模实践经验,也是一位科技图书译者。
目录
- 第1 章 Python入门 1
- 1.1 算法与算法思想 1
- 1.1.1 算法思想 2
- 1.1.2 状态 3
- 1.1.3 “a=a 1”是什么意思 4
- 1.1.4 符号和数字的对比 5
- 1.2 启动Python 6
- 1.2.1 IPython 控制台 7
- 1.2.2 错误信息 13
- 1.2.3 如何获取帮助 13
- 1.2.4 好的做法:记录日志 15
- 1.3 Python 模块 15
- 1.3.1 import 15
- 1.3.2 from...import 16
- 1.3.3 NumPy和PyPlot模块 17
- 1.4 Python 表达式 18
- 1.4.1 数字 18
- 1.4.2 算术操作和预定义函数 19
- 1.4.3 好的做法:变量命名 21
- 1.4.4 更多的函数相关信息 22
- 第2 章 数据结构与程序控制 24
- 2.1 对象和方法 24
- 2.2 列表、元组和数组 27
- 2.2.1 创建列表和元组 28
- 2.2.2 NumPy数组 28
- 2.2.3 为数组填充值 30
- 2.2.4 数组的连接 32
- 2.2.5 访问数组元素 33
- 2.2.6 数组和赋值 34
- 2.2.7 数组切片 35
- 2.2.8 数组展平 37
- 2.2.9 更改数组形状 38
- 2.2.10 以列表和数组为索引 38
- 2.3 字符串 39
- 2.3.1 使用format 方法格式化字符串 41
- 2.3.2 使用“%”格式化字符串 43
- 2.4 循环 43
- 2.4.1 for 循环 44
- 2.4.2 while 循环 46
- 2.4.3 循环长时间运行 46
- 2.4.4 死循环 47
- 2.5 数组操作 47
- 2.5.1 矢量化数学 48
- 2.5.2 数组化简 50
- 2.6 脚本 51
- 2.6.1 Editor 窗格 52
- 2.6.2 其他编辑器 53
- 2.6.3 调试的第一步 54
- 2.6.4 好的做法:做注释 57
- 2.6.5 好的做法:使用命名参数 61
- 2.6.6 好的做法:注意单位问题 62
- 2.7 或有行为:分支 63
- 2.7.1 if 语句 64
- 2.7.2 真值的处理 65
- 2.8 嵌套 65
- 第3 章 数据输入、结果输出 67
- 3.1 导入数据 68
- 3.1.1 获取数据 68
- 3.1.2 将数据导入Python 70
- 3.2 导出数据 73
- 3.2.1 脚本 73
- 3.2.2 数据文件 74
- 3.3 数据可视化 77
- 3.3.1 plot 及相关命令 77
- 3.3.2 绘图的调整与装饰 81
- 3.3.3 误差条 83
- 3.3.4 3D图形 84
- 3.3.5 多重绘图 85
- 3.3.6 子绘图 87
- 3.3.7 保存图形 87
- 3.3.8 在其他应用中使用图形 88
- 第4 章 首次上机实验 90
- 4.1 艾滋病病毒载量模型 90
- 4.1.1 探究模型 91
- 4.1.2 匹配实验数据 92
- 4.2 细菌实验 93
- 4.2.1 探究模型 93
- 4.2.2 匹配实验数据 94
- 第5 章 Python进阶 96
- 5.1 自定义函数 97
- 5.1.1 定义Python函数 97
- 5.1.2 更新函数 100
- 5.1.3 参数、关键字和缺省值 101
- 5.1.4 返回值 102
- 5.1.5 函数式编程 103
- 5.2 随机数和模拟 105
- 5.2.1 模拟抛硬币 105
- 5.2.2 生成轨迹线 106
- 5.3 直方图和条形图 107
- 5.4 等势线绘图和曲面 109
- 5.4.1 生成绘图点网格 109
- 5.4.2 等势线绘图 110
- 5.4.3 曲面绘图 111
- 5.5 非线性方程的数学求解 111
- 5.5.1 一般实函数 112
- 5.5.2 多项式的复数根 113
- 5.6 求解线性等式 114
- 5.7 数值积分 115
- 5.7.1 对预定义函数积分 116
- 5.7.2 对自定义函数积分 117
- 5.7.3 对震荡函数积分 117
- 5.7.4 参数依赖性 118
- 5.8 微分方程的数值解 118
- 5.8.1 问题重构 119
- 5.8.2 ODE求解 120
- 5.8.3 参数依赖 122
- 5.9 向量场和流线图 123
- 5.9.1 向量场 123
- 5.9.2 流型 124
- 第6 章 第二次上机实验 126
- 6.1 生成和绘制轨迹 126
- 6.2 绘制位移分布 127
- 6.3 少见事件 129
- 6.3.1 泊松分布 129
- 6.3.2 等待时间 131
- 第7 章 更多的技术 133
- 7.1 图像处理 133
- 7.1.1 图像和数字数组 134
- 7.1.2 操作图像 135
- 7.2 动画 135
- 7.2.1 创建动画 136
- 7.2.2 保存动画 137
- 7.3 分析计算 141
- 7.3.1 SymPy软件包 141
- 7.3.2 Wolfram Alpha 142
- 第8 章 第三次上机实验 145
- 8.1 卷积 146
- 8.1.1 Python 的图像处理工具 146
- 8.1.2 图像平均 148
- 8.1.3 使用高斯滤波器做平滑 149
- 8.2 图像去噪 149
- 8.3 特征强调 150
- 继续努力 152
- 附录A 安装Python 154
- A.1 安装Python 和Spyder 154
- A.1.1 图形界面安装 155
- A.1.2 命令行安装 156
- A.2 设置Spyder 159
- A.2.1 工作目录 159
- A.2.2 交互图形 159
- A.2.3 脚本模块 159
- A.2.4 重启 160
- A.3 加速 160
- A.4 保持版本最新 161
- A.5 安装FFmpeg 161
- 附录B 错误和错误消息 164
- B.1 Python错误概述 165
- B.2 一些常见的错误 166
- 附录C 比较Python 2与Python 3 170
- C.1 除法 171
- C.2 用户输入 171
- C.3 打印命令 172
- C.4 更多帮助 173
- 附录D 深入学习 174
- D.1 赋值语句 174
- D.2 内存管理 177
- D.3 函数 177
- D.4 作用域 178
- D.4.1 命名冲突 180
- D.4.2 作为参数传递变量 181
- D.5 总结 182
- 附录E 练习的解答 183
- 致谢 189
- 参考文献 190