答案 0 :(得分:46)
(完全披露:我是SymPy的首席开发人员)
你应该首先理解的是SymPy和Sage并不完全相同。 SymPy是一个纯粹的Python库,可以完成计算机代数。 Sage是一个开源数学软件的集合。 Sage试图将所有主要的开源数学软件聚集在一起,并将它们粘合在一起形成一个有用的系统。实际上, Sage包含SymPy 作为其系统之一。
以下是每个(有偏见的)事实的简短列表(我不会称之为利弊,只是事实):
**
,因为它在Python中,而不是^
,因为它在许多其他系统中。 from sympy import init_session; init_session()
(如果你只是想要打印,请将init_session
替换为init_printing
而不是导入一切)。 1/2
,它将返回一个有理数。 x^2
给出x平方,而不是Xor(x, 2)
。我不确定它是否默认为您自动定义变量。这意味着您在交互式Sage会话中执行的操作可能无法直接转换为Python脚本。另一方面,这对于交互式使用非常有用(顺便说一句,SymPy还有isympy -I
做了类似的事情。)也许这不是你想要的。你可能想要一些实际的数学特征。但正如我所说,Sage包含SymPy,因此根据定义,SymPy的每个功能都将成为Sage的一个功能。在实践中,情况不一定是这样,因为Sage默认情况下并不总是使用SymPy(我不确定它的实际状态是什么),因此如果你想使用它,你可能需要手动调用SymPy来自Sage内部。