【问题标题】:Collecting all terms involving factor in sympy收集所有涉及 sympy 因素的术语
【发布时间】:2020-08-06 06:38:57
【问题描述】:

我有一个表达式,其中三个术语涉及r**2,我想将它们收集在一起并分解出r**2

>>> foo = a**2*r**2 + 2*a*b*x*r + 2*a*b*r**2 + b**2 + 2*b**2*r + b**2*r**2
>>> foo
 2  2          2                2  2      2      2
a ⋅r  + 2⋅a⋅b⋅r  + 2⋅a⋅b⋅r⋅x + b ⋅r  + 2⋅b ⋅r + b

simplify 根本不会改变表达式。

在我的实际用例中,foo 实际上是一个子表达式:我将除以 r**2 的系数,因此该项将抵消,所有内容都在平方根之下。

所以一般的问题是:如果我想实现子表达式的转换,例如考虑到某些术语,我如何在子表达式上执行此操作,而不是整个表达式?

【问题讨论】:

    标签: sympy


    【解决方案1】:

    你可以使用collect:

    In [84]: collect(foo, r**2)
    Out[84]:
                   2      2    2 ⎛ 2            2⎞
    2⋅a⋅b⋅r⋅x + 2⋅b ⋅r + b  + r ⋅⎝a  + 2⋅a⋅b + b ⎠
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-09
      • 2013-07-06
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多