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.