【问题标题】:sympy simplify cannot recognize square of a binomialsympy 简化无法识别二项式的平方
【发布时间】:2021-05-05 17:58:10
【问题描述】:

我有几个表达式,如果简化能够像屏幕截图中那样识别二项式的平方,那么简化将大大改善。

有没有办法让 sympy/simplify 做到这一点?

import sympy as sp
a, b = sp.symbols('a, b', positive=True)
sp.simplify(sp.sqrt(a**2))
test = a + b - sp.sqrt(a**2+b**2+2*a*b)
sp.simplify(test)

【问题讨论】:

  • 贴出代码而不是图片就好了
  • 你可以使用factor(test, deep=True)
  • 感谢@Oscar Benjamin,这完成了这项工作!

标签: python sympy simplify


【解决方案1】:

--- 这是 0,但 sympy/simplify 无法识别二项式的平方

不,不是,问题不在于同情,而在于你对数学的理解。

a + b - sqrt(a\*\*2 + b\*\*2 + 2\*a\*b)不等于0,它等于(a + b) +- (a + b)或者换句话说;它等于02 * (a + b),这是因为sqrt((a + b)**2) 等于+- (a + b)

+-在这里表示“加号或减号”。

【讨论】:

  • 查看sqrt 的文档:它返回principal value,在正输入的情况下它将是正根。
  • 我认为你错过了 a 和 b 被假定为正的事实
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多