我正在尝试比较两个方程,以确定它们在数学上是否等价使用
SymPy
。例如,我有字符串 2y = x^2 + x
,我想看看它在数学上是否等价于 y = x^2 + 2x - x - y
(通过一些基本代数你可以看到它们是等价的)。这不必是数学上严格的,只需处理绝大多数相对简单的情况即可。
我的另一个限制是我不一定知道字符串中存在的变量名称。它可以有 x,它可以有 y,它可以有 t,等等,因为我正在创建一个前端服务,并且我不希望用户必须担心这些定义。
我知道在比较表达式时,最佳实践方法是使用
.equals()
或 sympify(Ex2 - Ex1)==0
。然而,我认为处理方程时并不那么简单,因为你必须处理比例和其他情况(例如,x=2y 与 2x=4y 相同)。我在网上看到的另一种处理比较表达式的方法是暴力破解一堆数字,看看它是否有效。我将如何在方程中实现这个?特别是因为我不知道变量的名称是什么?有没有办法以编程方式确定变量是什么?