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
新增話題