可以确定表达是否为阳性?

Pet*_*erE 5 python sympy

请考虑以下示例:

import sympy
x = sympy.Symbol(x, real=True)
expr = sympy.sin(x) + 1
Run Code Online (Sandbox Code Playgroud)

Sympy能以某种方式确定expr >= 0总是如此吗?

Ale*_*ley 5

您可以尝试解决不等式x:

>>> from sympy.solvers.inequalities import solve_univariate_inequality
>>> solve_univariate_inequality(expr >= 0, x)
And(-oo < x, x < oo)
Run Code Online (Sandbox Code Playgroud)

所以这里SymPy告诉你,不等式适用于任何实数.


smi*_*chr 5

您还可以使用假设系统来查询表达式的属性。最近有一个关于这里的问题,其中 Nair 给出了一些很好的参考。但是对于您的情况,只需尝试

>>> from sympy import *
>>> var('x', real=True)
x
>>> (sin(x)+1).is_positive
>>> (sin(x)+1).is_nonnegative
Run Code Online (Sandbox Code Playgroud)

结果将是 True、False 或(在这种情况下)None。None表示结果未知或尚未执行确定。在这种情况下,非负的结果应该是 True。改进假设系统是 SymPy 的一项积极工作。