在Mathematica中,可以使用函数FullSimplify[expression,Associations]使用假设简化表达式。例如,如果我这样做:
完全简化[x^2-y^2,x^2-y^2==1]
那么结果将是1,因为这是最简单的表达式,相当于我给软件的函数
现在我需要用Python做同样的事情,但我不知道如何做。我在本页上看到了有关sympy.refine命令的文档:
https://docs.sympy.org/latest/modules/assumptions/refine.html
然而,我无法将等式用作假设。用Q函数来假设这样的事情似乎是不可能的
我尝试过这样做:
import sympy as sp
x,y=sp.symbols('x y')
sp.refine(x**2-y**2,x==y)
然而,这给了我以下错误:ValueError:不一致的假设
有人对此有什么想法吗?多谢各位
如果没有一些空间,你想用什么样的表达式和假设,这可能是一个无法解决的问题,所以我会做一些假设
如果要基于其他多项式表达式为零简化多项式表达式,则可以使用
ratsimpmodprime
在Symphy中执行此操作:https://docs.sympy.org/latest/modules/simplify/simplify.html#ratsimpmodprime
我尝试了两种方法来解决这个问题
假设
x - y = 0
。这是我唯一能找到的表达你想做的假设的方法。不幸的是,它似乎不够聪明,没有注意到这个假设允许它用x代替y这只是返回原始表达式
请sympy替换该表达式。这并不是自动的——你要求它做替换,而不是给它做替换的选项,但它确实适用于这个玩具示例
打印1
相关问题 更多 >
编程相关推荐