引言

Sage是什么?

Sage(请参阅http://sagemath.org))是一个全面的数学软件系统,用于纯数学和应用数学的许多领域的计算。我们使用主流编程语言PYTHON(参见http://python.org),或其编译后的变体Cython.从Sage高效地使用用C/C++编写代码也非常容易。

这篇文章的作者在2005年开始了Sage项目。

Sage是免费和开源的,这意味着您可以更改Sage的任何部分并重新分发结果,而无需支付任何许可费,而且Sage还可以利用商业数学软件的强大功能,例如Magma和数学,如果您碰巧可以访问这些封闭源代码的商业系统的话。

本文档假定您事先不了解Python或Sage。我们的目标是帮助数学家使用Sage进行涉及数值域和模形式的计算。

TODO:文章概述

当您阅读本文时,请尝试Sage中的每个示例,并确保它如我所说的那样工作,并做所有的练习。此外,您应该尝试输入类似的示例,并检查您得到的输出是否与您预期的一致。

使用Sage

要使用Sage,请将其安装在您的计算机上,然后使用命令行或通过启动Sage来使用笔记本 sage -n

我们将Sage会议展示如下:

sage: factor(123456)
2^6 * 3 * 643

这意味着如果您键入 factor(123456) 作为对Sage的输入,那么您将获得 2^6 * 3 * 643 作为输出。如果您使用的是Sage命令行,请键入 factor(123456) 然后按Enter;如果您通过Web浏览器使用Sage笔记本,请键入 factor(123456) 输入单元格,然后按Shift-Enter组合键;在输出单元格中,您将看到 2^6 * 3 * 643

在尝试了 factor 命令(现在就这样做!),您应该尝试分解其他一些数字。

备注

如果因数为负数会发生什么情况?有理数?

您还可以使用Sage绘制2D和3D图片。例如,以下输入将每个正整数的素除数绘制为 \(500\)

sage: line([(n, len(factor(n))) for n in [1..500]])
Graphics object consisting of 1 graphics primitive

并且,此示例绘制了类似的3D绘图::

sage: import warnings
sage: warnings.simplefilter('ignore', UserWarning)
sage: v = [[len(factor(n*m)) for n in [1..15]] for m in [1..15]]
sage: list_plot3d(v, interpolation_type='clough')
Graphics3d Object

Sage-帕里-岩浆生态系统

  • The main difference between Sage and Pari is that Sage is vastly larger than Pari with a much wider range of functionality, and has many more data types and much more structured objects. Sage实际上包含了PARI,典型的Sage安装需要将近1G的磁盘空间,而典型的PARI安装要灵活得多,只需要几兆字节。Sage中包含了许多从未在Pari中实现的数论算法,并且Sage具有有助于可视化数论思想的2D和3D图形以及图形用户界面。Pari和Sage都是免费和开源的,这意味着任何人都可以阅读或更改这两个程序中的任何内容,软件也是免费的。

  • The biggest difference between Sage and Magma is that Magma is closed source, not free, and difficult for users to extend. 这意味着除了核心Magma开发人员之外,大多数Magma代码都不能更改,因为Magma本身包含超过200万行编译的C代码,再加上大约50万行解释的Magma代码(任何人都可以阅读和修改)。在设计Sage时,我们继承了Magma的一些优秀的设计思想,如父级、元素、类别层次。

  • Any mathematician who is serious about doing extensive computational work in algebraic number theory and arithmetic geometry is strongly urged to become familiar with all three systems ,因为他们都有自己的利弊。Pari流畅而小巧,Magma在算术几何中具有许多独特的计算功能,而Sage在大多数数学领域拥有广泛的功能、一个大型的开发人员社区和许多独特的新代码。