介绍

什么是Sage?

Sage(见http://sagemath.org)是一个综合的数学软件系统,用于计算许多领域的纯数学和应用数学。我们使用主流编程语言Python编写Sage程序(参见http://python.org),或其编译的变体Cython。SCAGE也很容易有效地使用C/C++编写的代码。

本文作者于2005年启动了Sage项目。

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

本文档假定您事先不知道Python或Sage。我们的目标是帮助数论者使用Sage进行涉及数域和模形式的计算。

TODO:文章概述

在阅读本文时,请尝试Sage中的每个示例,并确保事情如我所说的那样有效,并完成所有练习。此外,您应该通过输入类似的示例进行试验,并检查您得到的输出是否与您期望的一致。

使用Sage

要使用Sage,请将其安装到您的计算机上,然后使用命令行或通过启动Sage as来使用笔记本 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绘制二维和三维图片。例如,下面的输入绘制每个正整数的素数 \(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和Pari的主要区别在于Sage比Pari大得多,功能范围更广,拥有更多的数据类型和更结构化的对象。 Sage实际上包括Pari,一个典型的Sage安装需要将近1gb的磁盘空间,而典型的Pari安装要灵活得多,只使用几兆字节。Sage中包含了许多数论算法,但这些算法从未在Pari中实现过,Sage具有二维和三维图形,有助于数论思想的可视化,以及图形用户界面。Pari和Sage都是免费和开源的,这意味着任何人都可以阅读或更改任何程序中的任何内容,而且软件是免费的。

  • Sage和Magma最大的区别是Magma是封闭源,不是免费的,用户很难扩展。 这意味着,除了核心岩浆开发者之外,大多数岩浆是无法改变的,因为岩浆本身有超过200万行编译的C代码,加上大约50万行解释的岩浆代码(任何人都可以阅读和修改)。在设计Sage的时候,我们继承了Magma的一些优秀的设计思想,比如父元素、元素、类别层次。

  • 任何认真从事代数数论和算术几何学的大量计算工作的数学家都强烈要求熟悉这三种系统 ,因为他们都有自己的优点和缺点。Pari简洁小巧,Magma在算术几何学中有许多独特的计算功能,Sage在大多数数学领域都有广泛的功能,一个大型的开发人员社区,以及许多独特的新代码。