从reduce_rational_inequalities([[ - 3 <2 * x + 1]],x)给出的And对象中提取值。例如。(-2&lt; x,x&lt; oo)

时间:2017-03-24 07:48:38

标签: python-3.x sympy inequality

我想通过运行reduce_rational_inequalities([[-3 < 2*x + 1]], x)从我得到的结果中提取值。例如,运行上述函数后我的答案是

  

和(-2

。现在我想要

  

-2

从这个输出

。我也用另一个方程做同样的操作。 reduce_rational_inequalities([[2*x + 1 < 5]], x)。我得到的答案是

  

和(-oo&lt; x,x&lt; 2)

。现在我想要

  

2

也来自此输出。并希望合并这两个输出。

如果有人通过特殊操作通过这个sympy库。请告诉我。

感谢您提前提供任何帮助。

2 个答案:

答案 0 :(得分:1)

有人可能会提供更好的答案。但这种方法确实有效。

pandas

即使结果可以表示为单边区间的元组,就像这里的情况一样,那么所涉及的常数仍然可以出现在不等式的两边。但是,您可以使用>>> reduce_rational_inequalities([[-3 < 2*x + 1]], x) And(-2 < x, x < oo) >>> result = reduce_rational_inequalities([[-3 < 2*x + 1]], x) >>> result.args (-2 < x, x < oo) >>> result.args[0] -2 < x >>> result.args[1] x < oo >>> result.args[0].args[0] -2 >>> result.args[0].args[0].is_number True 方法确定哪一方包含该数字。

让我们希望有人有更好的方法。

答案 1 :(得分:1)

如果您将x设置为有限,则会移除x < oo部分:

>>> from sympy.solvers.inequalities import reduce_rational_inequalities
>>> x = symbols('x', finite=True)
>>> reduce_rational_inequalities([[-3 < 2*x + 1]], x)
-2 < x