SymPy – 集合

SymPy – 集合

在数学中,集合是明确定义的不同对象的集合,可以是数字、人、字母,甚至是其他集合。集也是Python中的内置类型之一。SymPy提供了set模块。它包含不同类型集合的定义,并具有执行集合操作的功能,如相交、联合等。

Set是SymPy中任何其他类型集合的基类。注意,它与Python的内置集合数据类型不同。Interval类表示实数区间,它的边界属性返回一个 FiniteSet 对象。

>>> from sympy import Interval 
>>> s=Interval(1,10).boundary 
>>> type(s)

sympy.set.set.FiniteSet

FiniteSet是一个离散数的集合。它可以从任何序列对象中获得,如list或string。

>>> from sympy import FiniteSet 
>>> FiniteSet(range(5))

输出

lbrace\lbrace0,1,…,4\rbrace\rbrace

>>> numbers=[1,3,5,2,8] 
>>> FiniteSet(*numbers)

输出

lbrace1,2,3,5,8\rbrace

>>> s="HelloWorld" 
>>> FiniteSet(*s)

输出

{H,W,d,e,l,o,r}

注意,和内置集合一样,SymPy的Set也是不同对象的集合。

ConditionSet 是一个满足给定条件的元素的集合。

>>> from sympy import ConditionSet, Eq, Symbol 
>>> x=Symbol('x') 
>>> s=ConditionSet(x, Eq(x**2-2*x,0), Interval(1,10)) >>> s

輸出

\lbrace x\mid x\in[1,10]∧x^2 – 2x =0\rbrace

**Union ** 是一个复合集。它包括两个集合中的所有元素。请注意,在两个集合中都有的元素,在联盟中只出现一次。

>>> from sympy import Union 
>>> l1=[3,1,5,7] 
>>> l2=[9,7,2,1] 
>>> a=FiniteSet(*l1) 
>>> b=FiniteSet(*l2) 
>>> Union(a,b)

另一方面, 交叉点 只包含那些在两者中都存在的元素。

>>> from sympy import Intersection 
>>> Intersection(a,b)

ProductSet 对象表示两个集合中的元素的笛卡尔乘积。

>>> from sympy import ProductSet 
>>> l1=[1,2] 
>>> l2=[2,3] 
>>> a=FiniteSet(*l1) 
>>> b=FiniteSet(*l2) 
>>> set(ProductSet(a,b))

Complement(a,b) 保留了a中的元素,不包括与b集合共有的元素。

>>> from sympy import Complement 
>>> l1=[3,1,5,7] 
>>> l2=[9,7,2,1] 
>>> a=FiniteSet(*l1) 
>>> b=FiniteSet(*l2) 
>>> Complement(a,b), Complement(b,a)

SymmetricDifference 集合只包含两个集合中不常见的元素。

>>> from sympy import SymmetricDifference 
>>> l1=[3,1,5,7] 
>>> l2=[9,7,2,1] 
>>> a=FiniteSet(*l1) 
>>> b=FiniteSet(*l2) 
>>> SymmetricDifference(a,b)

输出

{2,3,5,9}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程