当前位置: 代码迷 >> python >> SymPy —定义变量的域
  详细解决方案

SymPy —定义变量的域

热度:63   发布时间:2023-06-13 13:34:39.0

我正在编写一个程序,为我的物理实验室计算精确的微分。 我知道我可以设置实域或正数( from sympy import * ):

x, y, z = symbol('xy z', positive = True)

我的问题是指定域,例如n>1 可能吗? 在我的输出中,我得到了|n^2-1|这样的表达式|n^2-1| 并将此域设置为n>1我将接受类似n^2-1输出(没有绝对值“ ||”)

对于符号的假设,可以使用正数负数

p = Symbol('p', positive=True)

但这只能定义p> 0 (如果使用negative = True,则可以定义p <0 )。

对于更复杂的表达式优化,请尝试fine(expression,假定)

In [1]: n = Symbol('n')

In [2]: refine(Abs(n-1), Q.positive(n-1))
Out[2]: n - 1

In [3]: refine(Abs(n-1))
Out[3]: │n - 1│

也就是说,您创建的假设Q.positive(N-1),N> 1,并通过它来提炼

当前正在将该假设样式移植到其他算法的工作正在进行中,但是支持仍然不完整( 简化似乎无法识别这种假设)。

预计在将来的SymPy版本中将扩展对Q.statement(...)的支持,因为目前对此正在进行大量工作。