SageMath
SageMath (原 Sage) 是一个使用 Python 作为主要语言的数值和符号数学计算程序。它旨在提供 Maple、Matlab 和 Mathematica 等商业程序的替代程序。
SageMath 支持以下功能:
- 微积分: 使用 Maxima 与 SymPy。
- 线性代数: 使用 GSL、 SciPy 与 NumPy。
- 统计: 使用 R (通过 RPy) 与 SciPy。
- 图形: 使用 matplotlib.
- 一个使用 IPython 的交互式 shell。
- 访问 Python 模块,如 PIL、SQLAlchemy 等。
安装[编辑 | 编辑源代码]
- sagemath包 包含命令行版本;
- sagemath-doc包 从命令行获取 HTML 文档和内联帮助。
sage -i
安装它们,事实上,如果使用 pacman 安装了 SageMath,该命令将不起作用。用法[编辑 | 编辑源代码]
SageMath 主要使用 Python 作为脚本语言,并进行了一些修改,使其更适合数学计算。
SageMath 命令行[编辑 | 编辑源代码]
SageMath 可通过命令行启动:
$ sage
有关 SageMath 命令行的信息,请参阅此页面。
命令行基于 IPython shell,因此您可以在 SageMath 中使用它的所有技巧。有关 IPython 的详尽教程,请参阅社区维护的 IPython Cookbook。
不过要注意的是,在某些情况下(如绘图),使用它并不十分方便。例如,当您尝试绘制某幅图时:
sage: plot(sin,(x,0,10))
SageMath 会在外部应用程序中打开绘图。
Jupyter Notebook[编辑 | 编辑源代码]
SageMath 还为 Jupyter 笔记本提供了内核。要使用它,请使用以下命令启动笔记本
$ jupyter notebook
并在"新建... "下拉菜单中选择 "SageMath"。SageMath Jupyter 笔记本支持通过 %display latex
命令输出 LaTeX,如果安装了 jmol包 则支持 3D 绘图。
Sage Notebook[编辑 | 编辑源代码]
Notebook(sage-notebookAUR)是更适合 SageMath 高级使用的界面。
要从命令行启动笔记本服务器,请执行:
$ sage -n jupyter
您可以从浏览器 http://localhost:8080 访问该笔记本,并需要登录。
不过,如果你只是为个人使用而运行服务器,而不是在互联网上运行,那么登录就会很麻烦。您可以使用以下命令启动笔记本,无需登录,并在浏览器中自动弹出:
$ sage -c "notebook(automatic_login=True)"
Cantor[编辑 | 编辑源代码]
Cantor 是 KDE Edu 项目中的一个应用程序。它是各种数学应用程序(如 Maxima、SageMath、Octave、Scilab 等)的前端。有关如何将其与 SageMath 结合使用的详细信息,请参阅 Sage wiki 上的 Cantor 页面。
Cantor 可以通过 cantor包 软件包安装,也可以作为 kde-applications包组 或 kde-education包组 组的一部分安装。
可选附加项目[编辑 | 编辑源代码]
SageTeX[编辑 | 编辑源代码]
如果您的系统上安装了 TeX Live,您可能会对使用 SageTeX 感兴趣,这是一个可以在 LaTeX 文件中加入 SageMath 代码的软件包。TeX Live 会自动识别 SageTeX,因此您可以立即开始使用它。
下面举一个简单的例子,说明如何在 TEX 文档中加入 Sage 2D 绘图(假设使用 pdflatex
):
- 在文件前言中加入
sagetex
软件包,并使用常见的
\usepackage{sagetex}
- 创建一个
sagesilent
环境,在其中插入代码:
\begin{sagesilent} dob(x) = sqrt(x^2 - 1) / (x * arctan(sqrt(x^2 - 1))) dpr(x) = sqrt(x^2 - 1) / (x * log( x + sqrt(x^2 - 1))) p1 = plot(dob,(x, 1, 10), color='blue') p2 = plot(dpr,(x, 1, 10), color='red') ptot = p1 + p2 ptot.axes_labels(['$\\xi$','$\\frac{R_h}{\\max(a,b)}$']) \end{sagesilent}
- 创建绘图,例如在
float
环境中:
\begin{figure} \begin{center} \sageplot[width=\linewidth]{ptot} \end{center} \end{figure}
- 按以下步骤编译您的文件:
$ pdflatex <doc.tex> $ sage <doc.sagetex.sage> $ pdflatex <doc.tex>
- 您就可以查看输出文档了。
SageTeX 的完整文档可在 CTAN 上获取。
问题解决[编辑 | 编辑源代码]
TeX Live 无法识别 SageTex[编辑 | 编辑源代码]
如果 TeX Live 安装程序找不到 SageTex 软件包,可以尝试以下步骤(以根用户身份或使用本地文件夹):
- 将文件复制到 texmf 目录:
# cp /opt/sage/local/share/texmf/tex/* /usr/share/texmf/tex/
- 刷新 TeX Live:
# texhash /usr/share/texmf/ texhash: Updating /usr/share/texmf/.//ls-R... texhash: Done.