【问题标题】:Collecting rationals with sympy collect_const用 sympy collect_const 收集理性
【发布时间】:2017-08-10 10:51:19
【问题描述】:

collect_const 的 Sympy(版本 1.1.1)文档说使用 Numbers=False 选项,“不会收集浮点数或 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

我错过了什么吗?

提前致谢。

【问题讨论】:

    标签: sympy simplification


    【解决方案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”更改为“.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

    【讨论】:

      猜你喜欢
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-21
      • 1970-01-01
      • 2015-04-14
      • 2022-11-28
      相关资源
      最近更新 更多