小编m_g*_*cik的帖子

非交换的 symify(或简化)

我希望能够简化 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

有没有办法简化上面的字符串以保留xy的非交换性?

我发现有人已经在这里问过这个问题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

5
推荐指数
1
解决办法
3702
查看次数