有什么区别SymPy http://www.sympy.org/ and Sage https://www.sagemath.org/又名 SageMath?
(全面披露:我是 SymPy 的首席开发人员)
您应该了解的第一件事是 SymPy 和 Sage 并不完全相同。 SymPy 是一个纯 Python 库,用于计算机代数。 Sage 是开源数学软件的集合。 Sage 试图将所有主要的开源数学软件聚集在一起,并将其粘合成一个有用的系统。实际上,Sage 包括 SymPy作为其系统之一。
以下是每个事实的简短列表(有偏见的)(我不会称它们为优点或缺点,只是事实):
SymPy
- SymPy 是完全独立的。除了 Python 之外,它没有任何依赖项。
- 尽管是独立的,但功能齐全作为计算机代数系统。如果你想做数字,我们鼓励你使用其他库科学的Python生态系统 http://www.scipy.org/about.html.
- SymPy 已获得 BSD 许可。对于许多人来说,这并不重要,但如果您想将 SymPy 包含在其他内容中,很高兴知道您几乎可以使用代码做任何您想做的事情。
- SymPy 不会尝试改变 Python。 SymPy 的理念是 Python 做得很好,因此它应该以 Python 的方式做事。例如,求幂的运算符是
**
就像 Python 中一样,而不是^
就像在许多其他系统中一样。
- SymPy 可以用作库。由于 SymPy 只是一个 Python 模块,因此您只需导入它并在任何使用 Python 的地方使用它即可。有很多非常酷的应用程序和库在后台使用 SymPy 来执行符号(在许多情况下,在您甚至可能没有意识到正在使用符号的地方)。
Sage
- Sage 包含开源世界中您可能想要进行数学计算的所有内容(包括 SymPy)。这包括许多对数字有用的库,例如八度。
- Sage 是 GPL。如果您喜欢整个 FSF 软件自由 shpel,那么给您更多的权力。如果您的应用程序未获得 GPL 许可,您就无法在自己的应用程序中重用源代码。
- Sage 很难用作库。另一方面,它有一个非常漂亮的笔记本界面。如果你想用 SymPy 做同样的事情,推荐的方法是使用 IPython 笔记本并运行
from sympy import init_session; init_session()
在顶部(替换init_session
with init_printing
如果您只想打印而不是导入所有内容)。
- Sage 在 Python 之上包含了一些 DSL。例如,您可以输入
1/2
不包装整数文字,它将返回一个有理数。x^2
给出 x 的平方,而不是Xor(x, 2)
。我不确定它是否默认自动为您定义变量。这意味着您在交互式 Sage 会话中执行的操作可能不会直接转换为 Python 脚本。另一方面,这对于交互式使用很有用(顺便说一句,SymPy 也有isympy -I
做了一些类似的事情)。
也许这不是您想要的。您可能想要一些实际的数学特征。但正如我所说,Sage 包含 SymPy,因此根据定义,SymPy 的每个功能都将是 Sage 的功能。在实践中,情况不一定如此,因为Sage默认情况下并不总是使用SymPy(我不确定当前的状态实际上是什么),所以如果你想使用它,你可能必须手动调用SymPy来自圣人内部。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)