sympy简化无法识别二项式的平方

问题描述

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

screenshot

有没有办法让 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)

解决方法

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

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

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

+- 此处用于表示“加或减”。