python sympy(不等式或关系)到(设置或间隔)

D A*_*ams 2 python inequality set sympy

如何从(不等式/关系)对象中获取结果并将其转换为(设置/间隔)对象?

import sympy
import sympy.solvers
#import sympy.solvers.inequalities
from sympy.solvers.inequalities import reduce_rational_inequalities 

x = sympy.Symbol('x')

ExampleInequalities1 = [[x**2 <= 1]]
ResultDomain1 = reduce_rational_inequalities(ExampleInequalities1, x)
print 'ResultDomain1', ResultDomain1
Run Code Online (Sandbox Code Playgroud)

给我:

>>> And(-1 <= x, x <= 1)
Run Code Online (Sandbox Code Playgroud)

上面的结果可以表示为:

>>> sympy.Interval(-1, 1)
Run Code Online (Sandbox Code Playgroud)

这是一个 Sympy Set Interval 对象。(这让我可以使用交集、联合、互补等......)。

如何执行此转换?

asm*_*rer 5

使用as_set方法:

>>> And(-1 <= x, x <= 1).as_set()
[-1, 1]
Run Code Online (Sandbox Code Playgroud)

你可以回去 as_relational

>>> Interval(-1, 1).as_relational(x)
(-1 <= x) & (x <= 1)
Run Code Online (Sandbox Code Playgroud)