**** 介绍 **** 完成本教程最多需要 3-4 小时。你可以阅读本教程的 HTML 或 PDF 版本, 或者在 Sage Notebook 中点击 ``Help``,然后点击 ``Tutorial`` 以交互方式在 Sage 中完成教程。 虽然 Sage 的大部分是使用 Python 实现的,但阅读本教程并不需要 Python 背景。 可能你会在某个时点希望学习 Python(一门非常有趣的语言!),有很多优秀的免费资源可以帮助你: Python 初学者指南 [PyB]_ 列出了许多选择。如果你只是想快速试用 Sage,那么本教程是很好的起点。例如: :: sage: 2 + 2 4 sage: factor(-2007) -1 * 3^2 * 223 sage: A = matrix(4,4, range(16)); A [ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15] sage: factor(A.charpoly()) x^2 * (x^2 - 30*x - 80) sage: m = matrix(ZZ,2, range(4)) sage: m[0,0] = m[0,0] - 3 sage: m [-3 1] [ 2 3] sage: E = EllipticCurve([1,2,3,4,5]); sage: E Elliptic Curve defined by y^2 + x*y + 3*y = x^3 + 2*x^2 + 4*x + 5 over Rational Field sage: E.anlist(10) [0, 1, 1, 0, -1, -3, 0, -1, -3, -3, -3] sage: E.rank() 1 sage: k = 1/(sqrt(3)*I + 3/4 + sqrt(73)*5/9); k 36/(20*sqrt(73) + 36*I*sqrt(3) + 27) sage: N(k) 0.165495678130644 - 0.0521492082074256*I sage: N(k,30) # 30 "bits" 0.16549568 - 0.052149208*I sage: latex(k) \frac{36}{20 \, \sqrt{73} + 36 i \, \sqrt{3} + 27} .. _installation: 安装 ==== 如果你的电脑没有安装 Sage,只是想尝试一些命令,可以在 http://sagecell.sagemath.org 上在线使用。 请参阅 Sage 主页 [SA]_ 文档中的安装指南,了解如何在你的电脑上安装 Sage。以下是一些简要说明。 #. Sage 下载文件附带所有所需组件。换句话说,虽然 Sage 使用 Python、IPython、PARI、GAP、Singular、Maxima、NTL、GMP 等, 你不需要单独安装它们,因为它们已经包含在 Sage 发行版中。 但是,要使用某些 Sage 功能,例如 Macaulay 或 KASH,你必须确保电脑已经安装了相关程序。 #. Sage 的预编译二进制版本(可以在 Sage 官网上找到)可能比源代码版本更容易和更快安装。只需解压文件并运行 ``sage``。 #. 如果你想使用 SageTeX 包(允许你将 Sage 计算结果嵌入到 LaTeX 文件中), 你需要让 TeX 发行版识别 SageTeX。请参阅 `Sage 安装指南 <http://doc.sagemath.org/html/en/>`_ 中的“让 TeX 识别 SageTeX”章节(这个链接 `<../installation/index.html>`_ 会为你打开安装指南)。 其实非常简单;你只需要设置一个环境变量或复制一个文件到 TeX 的搜索目录中。 如何使用 SageTeX 的文档位于 ``$SAGE_ROOT/venv/share/texmf/tex/latex/sagetex/``, 其中 "``$SAGE_ROOT``" 指的是 Sage 的安装目录,例如 ``/opt/sage-9.6``。 使用 Sage 的方法 ================ Sage 可以通过多种方式使用: - **Notebook 图形界面:** 运行 ``sage -n jupyter``; 请参阅 `Jupyter 在线文档 <https://jupyter-notebook.readthedocs.io/en/latest/notebook.html>`_, - **交互式 Shell:** 请参阅 :ref:`chapter-interactive_shell`, - **编写程序:** 在 Sage 中编写解释和编译的程序(请参阅 :ref:`section-loadattach` 和 :ref:`section-compile`) - **编写脚本:** 编写使用 Sage 库的独立 Python 脚本(请参阅 :ref:`section-standalone`). Sage 的长期目标 =============== - **实用:** Sage 的目标受众包括学习数学的学生(从高中到研究生)、教师和研究数学家。 旨在提供可以用于探索和实验代数、几何、数论、微积分、数值计算等数学构造的软件。 Sage 能够帮助用户更方便地进行数学对象的交互实验。 - **高效:** Sage 追求快速。它使用高度优化的成熟软件,如 GMP、PARI、GAP 和 NTL,因此在某些操作上非常快速。 - **免费开源:** 源代码必须免费提供且可读,用户可以了解系统的实际运作,并能够更容易地进行扩展。 正如数学家通过仔细阅读或浏览证明来深入理解定理一样,用户应该能够通过阅读带有文档的源代码来理解计算过程。 如果在发表的论文中使用 Sage 进行计算,读者将始终可以免费访问 Sage 及其所有源代码, 你甚至可以归档和重新分发你使用的 Sage 版本。 - **易于编译:** Sage 应该易于从源代码编译,适用于 Linux、OS X 和 Windows 用户,这使得用户修改系统更加灵活。 - **协作:** 提供与大多数其他计算机代数系统的强大接口, 包括 PARI、GAP、Singular、Maxima、KASH、Magma、Maple 和 Mathematica。 Sage 旨在统一和扩展现有数学软件。 - **文档齐全:** 提供教程、编程指南、参考手册和操作指南,包含大量示例和背景数学讨论。 - **可扩展:** 能够定义新的数据类型或从内置类型派生,并能够使用多种编程语言编写的代码。 - **用户友好:** 功能易于理解,文档和源代码易于查看,并且提供高水平的用户支持。