第一章 简述软件学习背景 1
1.1 Sage软件简介 1
1.1.1 什么是Sage或者Sagemath?有何特点? 1
1.1.2 Sage为什么以Python作为编程语言? 3
1.1.3 Sage软件的产生和发展 3
1.1.4 Sage软件的基本功能 4
1.1.5 Sage软件的运行方式 5
1.2 Sage软件的学习方法 5
1.2.1 从读书开始 5
1.2.2 从实践开始 5
1.3 Sage在网络上的运行和计算 6
1.3.1 注册与登录 6
1.3.2 创建工程与文件管理 7
1.3.3 创建程序文件与在线计算 8
1.3.4 简单计算与作图 9
1.3.5 账户管理与信息变更 11
第二章 软件的基本操作 13
2.1 软件的下载与安装 13
2.1.1 在Windows下面进行安装Sage 13
2.1.2 VirtualBox的安装 14
2.1.3 Sage.ova的安装 14
2.1.4 Sage Notebook程序运行结果的存储 16
2.2 软件的组织结构以及相关组件的调用方法 21
2.2.1 Sage软件的功能结构图 21
2.2.2 Sage软件紧密相关组件 21
2.3 基本数据类型、运算级别、精度控制 22
2.3.1 基本数值类型与序列类型 22
2.3.2 Python中的常用关键字 24
2.3.3 运算符及其运算级别 24
2.3.4 数值计算的精度控制 26
2.3.5 Python中的内建函数 27
2.3.6 Python中的几个容易忽略的语法 28
2.4 Sage软件基本操作归纳 28
2.4.1 数据结构、常用命令、符号函数 28
2.4.2 基本输入与输出 34
2.4.3 绘图类型与图片保存格式 35
2.4.4 二维图常见类型和绘图命令 35
2.4.5 三维图常见类型以及绘图函数 37
2.4.6 获取帮助模式 38
2.4.7 模块调用与安装方法 39
2.4.8 文本与图片中的Latex格式化输出 40
2.5 定义函数、类、模块 41
2.5.1 定义函数、六个基本常用函数 41
2.5.2 定义类 43
2.5.3 创建模块 44
2.6 循环结构控制 45
2.6.1 if条件语句进行循环控制 45
2.6.2 for循环控制 46
2.6.3 while当循环控制 47
2.6.4 循环语句的相互嵌套实例 48
2.6.5 循环语句的CPU耗时 49
2.7 基于Python的界面编写——Boa constructor 49
2.7.1 Boa的安装 49
2.7.2 Boa中创建工程与添加控件 51
2.7.3 在Boa中添加控件动作与程序运行 52
2.7.4 将Boa程序py文件打包成exe文件 54
2.7.5 在框架中添加菜单栏、工具栏、状态栏 60
2.7.6 在窗口中添加notebook,进行分页设计 62
2.7.7 StaticText、TextCtrl、SpinCtrl中的赋值与取值 63
2.7.8 进度条gauge的使用 65
第三章 Sage软件的应用展示 67
3.1 数值计算方面 67
3.1.1 作为高级计算器 67
3.1.2 产生复数的运算 68
3.1.3 矩阵运算与操作 68
3.1.4 求解定积分 69
3.1.5 线性方程组求解 70
3.1.6 分解因式 71
3.2 符号运算方面 71
3.2.1 复杂表达式的化简 71
3.2.2 使用微积分进行公式推导 72
3.2.3 多项式方程的求解 73
3.2.4 常微分方程的求解 74
3.2.5 级数展开 80
3.2.6 拉普拉斯变换 80
3.3 绘图功能 80
3.3.1 常用的数学函数名称的写法 80
3.3.2 常见二维函数的绘图 81
3.3.3 多个函数绘图的控制 84
3.3.4 极坐标函数的二维绘图 85
3.3.5 条状二维图的绘制 90
3.3.6 参数函数二维图的绘制 91
3.3.7 复变函数图的绘制 94
3.3.8 等高线二维图的绘制 101
3.3.9 隐函数二维图的绘制 112
3.3.10 区域二维图的绘制 117
3.3.11 密度二维图的绘制 118
3.3.12 盘状图的绘制 118
3.3.13 网络图的绘制 119
3.3.14 矢量场图的绘制 132
3.3.15 点图的绘制 134
3.3.16 散点图的绘制 134
3.3.17 文本图的绘制 135
3.3.18 三维函数图绘制 135
3.3.19 含有交互功能的三维函数图绘制 143
3.3.20 含参数函数三维图的绘制 145
3.3.21 隐函数三维图的绘制 148
3.3.22 箭头状图的绘制 150
3.3.23 贝兹曲线图的绘制 150
3.3.24 参数函数表面三维图的绘制 151
3.3.25 旋转三维图的绘制 151
3.3.26 三维矢量图的绘制 153
3.3.27 三维列表图的绘制 154
3.3.28 多面体图的绘制 156
3.3.29 渲染图的绘制 159
3.3.30 绘图方式不同时的比较 166
3.4 三维图浏览设置与绘图应用实例 168
3.4.1 多角度图形方法研究函数的性质 170
3.4.2 综合练习实例:晶体的点阵结构 173
3.4.3 综合练习实例:头戴斗篷的飞人 174
3.4.4 动画制作 174
3.5 使用matplotlib进行静态绘图 175
3.5.1 绘制正弦曲线图与三维散点图 175
3.5.2 绘制二维曲线图 178
3.5.3 绘制函数图 178
3.5.4 绘制随机数图 179
3.5.5 绘制三维等高线图 180
3.5.6 绘制三维空间曲线图 184
3.5.7 绘制饼形图 187
3.5.8 绘制基于极坐标与直角坐标的作图 188
3.5.9 绘制平行排列图 189
3.5.10 绘制平面矢量图 191
3.6 使用matplotlib进行动态绘图 195
3.6.1 数据更新时动态绘图 195
3.6.2 数据随机动态绘图 197
3.6.3 数据衰减动态绘图 199
3.7 数据拟合 200
3.7.1 线性拟合 200
3.7.2 非线性拟合 201
3.7.3 数据拟合补充说明 202
3.8 数理统计 204
3.8.1 描述性统计 204
3.8.2 假设检验 210
3.9 公式排版与网页交互 210
3.9.1 Latex的安装与数学公式排版 210
3.9.2 proTeXt的安装和调试 211
3.9.3 基于Sage的网页交互 212
3.10 利用pylab进行绘图 222
3.10.1 绘制三维曲面及其投影图 222
3.10.2 绘制二维等高线图 223
3.10.3 使用imshow命令绘图 224
3.10.4 使在图片中显示公式 224
第四章 Sage软件与其他软件(包)之间的交互 226
4.1 数值计算与Python 226
4.1.1 NumPy 226
4.1.2 Scipy 229
4.1.3 Cvxopt 231
4.2 编译代码之间的交互 231
4.2.1 从Fortran到Python(F2py) 231
4.2.2 从C/C++到 Python(Weave) 232
4.2.3 从MPI到Python(mpi4py) 232
4.3 并行计算 233
4.4 可视化 233
4.4.1 使用Easyviz的例子 234
4.4.2 下载和安装Mayavi 234
4.4.3 使用Mayavi的已有范例 239
4.4.4 Mayavi中工程文件和二维图像的保存 242
4.4.5 Mayavi中使用命令编程的过程 243
4.4.6 Mayavi中绘制三维图 245
4.4.7 Mayavi中使用mlab模块进行动画编程 275
4.4.8 Mayavi中的设置 278
第五章 软件Sage在物理领域中的应用实例 279
5.1 Sage在牛顿力学中的应用实例 279
5.1.1 Sage求解运动学问题 279
5.1.2 Sage求解动力学问题 287
5.1.3 Sage求解刚体转动问题 288
5.1.4 变质量物体的运动 295
5.2 Sage在热学领域的应用实例 296
5.2.1 理想气体的状态方程 296
5.2.2 光子热输运问题中的权重因子函数 297
5.3 Sage在光学领域的应用实例 297
5.3.1 波动光学经典知识回顾 297
5.3.2 牛顿环 299
5.4 Sage在电磁学领域的应用实例 301
5.4.1 电偶极子周围的电场线和等势面 301
5.4.2 真空中带电体周围某点的静电场 304
5.4.3 真空中的稳恒磁场 306
5.4.4 运动线圈的动生电动势 308
5.4.5 运动金属杆的感应电动势与时间的函数关系 309
5.5 Sage在相对论领域的应用实例 310
5.5.1 相对论体积、质量和密度 310
5.6 Sage在量子力学领域的应用实例 312
5.6.1 求解量子力学中的本征值和本征矢的问题 312
附录 317
附录一Sage软件的模块组成 317
附录二数学相关特殊函数问题 322
附录三物理常数的调用 323
附录四Python的一些集成开发环境 330
附录五Sage中常用的模块函数和方法 331
参考文献 335
Sage中常用的颜色名称及其代码 337