SageMath

来自 ArchWiki

SageMath (之前为 Sage) 是一个用于数值和符号数学计算的程序,它使用 Python 作为其主要语言。 它的目的是为 Maple、Matlab 和 Mathematica 等商业程序提供替代方案。

SageMath 提供以下支持

安装

  • sagemath 包含命令行版本;
  • sagemath-doc 用于 HTML 文档和来自命令行的在线帮助。
注意: 许多 Sage 软件包作为 可选依赖 存在于 sagemath 软件包中或在 AUR 中,因此必须将它们作为普通的 Arch 软件包额外安装,才能利用其功能。 请注意,无需使用 sage -i 安装它们,实际上,如果您使用 pacman 安装了 SageMath,则此命令将不起作用。

使用方法

SageMath 主要使用 Python 作为脚本语言,并进行了一些 修改,使其更适合数学计算。

SageMath 命令行

可以从命令行启动 SageMath

$ sage

有关 SageMath 命令行的信息,请参阅 此页面

该命令行基于 IPython shell,因此您可以使用 IPython shell 的所有 技巧 与 SageMath 一起使用。 有关 IPython 的全面教程,请参阅社区维护的 IPython Cookbook

但是请注意,对于某些用途(例如绘图),它不是很方便。 当您尝试绘制某些内容时,例如

sage: plot(sin,(x,0,10))

SageMath 会在一个外部应用程序中打开该图。

Jupyter Notebook

SageMath 还为 Jupyter notebook 提供了一个内核。 要使用它,请使用以下命令启动 notebook

$ jupyter notebook

并在下拉“New...”菜单中选择“SageMath”。 SageMath Jupyter notebook 通过 %display latex 命令支持 LaTeX 输出,如果安装了 jmol,则支持 3D 绘图。

Sage Notebook

注意: SageMath Flask notebook 已弃用,转而使用 Jupyter notebook。 建议所有新工作表都使用 Jupyter notebook。

更适合 SageMath 高级使用的界面是 Notebook (sage-notebookAUR)。

要从命令行启动 Notebook 服务器,请执行

$ sage -n jupyter

可以从浏览器 https://127.0.0.1:8080 访问该 notebook,并且需要您登录。

但是,如果您仅为个人使用(而不是通过互联网)运行服务器,则登录将成为一种麻烦。 您可以改为在不要求登录的情况下启动 Notebook,并使用以下命令使其自动在浏览器中弹出

$ sage -c "notebook(automatic_login=True)"

Cantor

Cantor 是 KDE Edu Project 中包含的应用程序。 它充当 Maxima、SageMath、Octave、Scilab 等各种数学应用程序的前端。 有关如何将其与 SageMath 一起使用的更多信息,请参阅 Sage wiki 上的 Cantor 页面

可以使用 cantor 软件包或作为 kde-applicationskde-education 组的一部分安装 Cantor。

可选附加组件

SageTeX

如果您的系统上安装了 TeX Live,您可能会对 使用 SageTeX 感兴趣,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 软件包,您可以尝试以下步骤(以 root 身份或使用本地文件夹)

  • 将文件复制到 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.

参见