collect_const
的Sympy(版本1.1.1)文档说明使用Numbers=False
选项,"不会收集Float或Rational"。这使您认为理性通常由collect_const
收集,但它们似乎不是:
>>> from sympy import *
>>> x, y, z = symbols('x y z')
>>> collect_const(2*x - 2*y - 2*z, 2)
2*(x - y - z)
>>> collect_const(x/2 - y/2 - z/2, 1/2)
x/2 - y/2 - z/2
我错过了什么吗?
提前感谢。
答案 0 :(得分:1)
我认为有点错误。参数Numbers
似乎与算术运算符" /"无关。从你的例子:
>>> from sympy import *
>>> x, y, z = symbols('x y z')
>>> collect_const(x/2 - y/2 - z/2, 1/2, Numbers=False)
x/2 - y/2 - z/2
>>> collect_const(x/2 - y/2 - z/2, 1/2, Numbers=True)
x/2 - y/2 - z/2
它似乎不会影响表达。但是,如果我们改变" / 2" for" .5 *"结果完全不同:
>>> collect_const(.5*x - .5*y - .5*z, 1/2, Numbers=False)
.5*x - .5*y - .5*z
>>> collect_const(.5*x - .5*y - .5*z, 1/2, Numbers=True)
.5*(x - y - z)
无论如何,我已经Github创建了Issue
。