(充分披露:我是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(实际情况我不确定),因此如果您想从Sage中使用SymPy,可能需要手动调用它。
y,z = var('y,z')
。如果不这样做,就会出现NameError
。Sympy不是Sage中积分的默认算法,但使用关键字参数algorithm ='sympy'
可以强制其使用sympy。另一个Sympy的小点是:它有一个ascii-art漂亮的打印机来呈现符号方程。我已经多次将Sympy导入Sage的命令行中,只是为了使用这个特性。 - Matthew