Python SymPy-如何检查两项是否相等但不相同
对于我最近的项目,我必须使用Python SymPy-如何检查两项是否相等但不相同,python,sympy,Python,Sympy,对于我最近的项目,我必须使用sympy检查两个术语是否相等或相同 示例: x+2=5和x+5=8-这两个术语相等(等效),但不完全相同 x+2=5和x+2=5-它们是相等和相同的 问题: 有可能区分“相等”和“相同”吗?如果是-我如何实现这一点?如果使用=,您将得到结构相同的对象的答案。检查数学等式需要某种简化,使两个表达式在结构上相同。对于您给出的方程式,可以执行以下任一操作: >>> from sympy import * >>> var('x') x
sympy
检查两个术语是否相等或相同
示例:
-这两个术语相等(等效),但不完全相同x+2=5和x+5=8
-它们是相等和相同的x+2=5和x+2=5
有可能区分“相等”和“相同”吗?如果是-我如何实现这一点?如果使用
=
,您将得到结构相同的对象的答案。检查数学等式需要某种简化,使两个表达式在结构上相同。对于您给出的方程式,可以执行以下任一操作:
>>> from sympy import *
>>> var('x')
x
>>> a=Eq(x+2,5)
>>> b=Eq(x+5,8)
>>> a.equals(b)
False
>>> solve(a)==solve(b)
True
>>> a.lhs-a.rhs == b.lhs-b.rhs
True
>>> abs(a.lhs-a.rhs) == abs(b.rhs-b.lhs)
True
我不知道你想做什么。再见,非常感谢!它将从shell开始工作。但是我想从PHP开始python脚本。因此,我将参数(a和b)传递给python脚本:
a=sys.argv[1]
b=sys.argv[2]a1=parse_expr(a,transformations=transformations,evaluate=False)b1=parse_expr(b,transformations=transformations,evaluate=False)print(a1.equals(b1)),但我没有得到任何响应。我对此不确定。但是请注意,许多例程,如solve
都有用于Eq的变通方法,可以将它们更改为表达式:eqn->eqn.lhs-eqn.rhs。您可以在上面的示例中看到,当与equals进行比较时,这两个等式是如何给出False的。