Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SymPy-如何检查两项是否相等但不相同_Python_Sympy - Fatal编程技术网

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的。