我正在使用SymPy对Python中非常大的表达式进行符号操作。我操作的大多数符号代表非负实数,小于或等于一。
我如何告诉SymPy这些假设?我已经发现在创建符号时我可以执行以下操作。
import sympy as sym
x = sym.symbols('x', real=True, nonnegative=True)
但是我不知道如何强加一个人的上限。
答案 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)