假设一个符号与SymPy在0和1之间?

时间:2018-02-24 03:49:19

标签: python-3.6 sympy

我正在使用SymPy对Python中非常大的表达式进行符号操作。我操作的大多数符号代表非负实数,小于或等于一。

我如何告诉SymPy这些假设?我已经发现在创建符号时我可以执行以下操作。

import sympy as sym

x = sym.symbols('x', real=True, nonnegative=True)

但是我不知道如何强加一个人的上限。

1 个答案:

答案 0 :(得分:3)

不幸的是,目前实施的假设系统并未提供强加此类限制的方法。出于某些目的,引入暗示边界的代数结构可能是合理的:例如,

t = sym.symbols('t', nonnegative=True)
x = t/(1+t)

现在SymPy知道x介于0和1之间:

>>> x < 1
True
>>> x >= 0
True

这是否有用取决于您使用的表达式替换的自然程度。另一个选项是x = sym.exp(-t)