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 对象。(这让我可以使用交集、联合、互补等......)。
如何执行此转换?
使用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)