我希望能够简化 Python 中字符串的数学表达式。有几种“可交换”的方法可以做到这一点。是否有一个不可交换的函数?
我知道sympy中的sympify可以做一些非交换工作,这里有一个例子:
from sympy import *
x=Symbol('x',commutative=False)
y=Symbol('y',commutative=False)
print sympify(3*x*y - y*x - 2*x*y)
Run Code Online (Sandbox Code Playgroud)
它将打印 x y -y x,但是如果我们将 sympify 应用于字符串,即
print sympify('3*x*y - y*x - 2*x*y')
Run Code Online (Sandbox Code Playgroud)
结果是0。
有没有办法简化上面的字符串以保留x和y的非交换性?
我发现有人已经在这里问过这个问题http://osdir.com/ml/python-sympy/2012-02/msg00250.html并且有人回答了http://osdir.com/ml/python-sympy/2012 -02/msg00255.html,但是该解决方案似乎一般不起作用。
我更愿意先问,如果没有立即解决方案,我想我必须自己编码。
python sympy mathematical-expressions python-2.7 commutativity