SageMath - Arch Linux 中文维基

跳转到内容

# SageMath

来自 Arch Linux 中文维基

相关文章

- Matlab
- Octave
- Mathematica

翻译状态：

- 本文（或部分内容）译自 SageMath，最近一次同步于 2025-01-12，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

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 软件包是作为 sagemath包 软件包的可选依赖或 AUR 软件包提供的。请注意，无需使用 `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

注意：SageMath Flask 笔记本已被弃用，改用 Jupyter 笔记本。所有新工作表都推荐使用 Jupyter 笔记本。

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.

## 参见

- 官方网站
- SageMath Documentation
- Planet Sage
- SageMath Wiki
- Software Used by SageMath
- Kevin Stephen 的 SageMath 学习笔记（简体中文）
  - 视频版

分类：​

- 数据分析

SageMath
添加话题