SymPy——定义变量的域

2023-11-23

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

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

我的问题是指定域例如n>1。是否可以? 在我的输出中我得到这样的表达式|n^2-1|并设置此域n>1我会接受像这样的输出n^2-1(没有绝对值“||”)


对于符号的假设,您可以使用positive or negative:

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

但这只能定义p>0 (or p<0如果你使用负=真).

对于更复杂的表达式细化,请尝试精炼(表达式,假设):

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.阳性(n-1), 那是n > 1,并将其传递给refine.

目前正在进行将这种假设风格移植到其他算法的工作,但支持仍然不完整(simplify似乎不承认这种假设)。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SymPy——定义变量的域 的相关文章

随机推荐