考虑以下示例:
import sympy
x = sympy.Symbol(x, real=True)
expr = sympy.sin(x) + 1
Sympy能否以某种方式确定expr >= 0
总是如此?
答案 0 :(得分:5)
您可以尝试解决x
的不等式:
>>> from sympy.solvers.inequalities import solve_univariate_inequality
>>> solve_univariate_inequality(expr >= 0, x)
And(-oo < x, x < oo)
所以这里SymPy告诉你,不等式适用于任何实数。
答案 1 :(得分:4)
您还可以使用假设系统来查询表达式的属性。最近有一个关于here的问题,其中Nair提供了一些很好的参考。但是对于你的情况,只需尝试
>>> from sympy import *
>>> var('x', real=True)
x
>>> (sin(x)+1).is_positive
>>> (sin(x)+1).is_nonnegative
结果将为True,False或(在本例中)为None。 None
表示结果未知或确定尚未实施。在这种情况下,非负的结果应为True。改进假设系统是SymPy的积极工作。