是否可以使用 sympy 库简化表达式,例如 sqrt (x^2) = abs (x)?
Is it possible to simplify expressions using the sympy library, for example sqrt (x^2) = abs (x)?
我查看了 sympy 文档,没有找到这样的东西。使用简化方法,sqrt(x**2) 不变。
我猜你希望 sqrt(x**2)
会简化为 x
。问题是这不是一般有效的简化,例如:
In [23]: z = -1
In [24]: z**2
Out[24]: 1
In [25]: sqrt(z**2)
Out[25]: 1
In [26]: sqrt(z**2) == z
Out[26]: False
当声明一个交易品种时,您可以设置简化所需的假设:
In [27]: x = Symbol('x', real=True)
In [28]: y = Symbol('y', positive=True)
In [29]: sqrt(x**2)
Out[29]: │x│
In [30]: sqrt(y**2)
Out[30]: y
我查看了 sympy 文档,没有找到这样的东西。使用简化方法,sqrt(x**2) 不变。
我猜你希望 sqrt(x**2)
会简化为 x
。问题是这不是一般有效的简化,例如:
In [23]: z = -1
In [24]: z**2
Out[24]: 1
In [25]: sqrt(z**2)
Out[25]: 1
In [26]: sqrt(z**2) == z
Out[26]: False
当声明一个交易品种时,您可以设置简化所需的假设:
In [27]: x = Symbol('x', real=True)
In [28]: y = Symbol('y', positive=True)
In [29]: sqrt(x**2)
Out[29]: │x│
In [30]: sqrt(y**2)
Out[30]: y