SymPy - zestawy
W matematyce zbiór to dobrze zdefiniowany zbiór odrębnych obiektów, którymi mogą być liczby, ludzie, litery alfabetu lub nawet inne zbiory. Set jest również jednym z typów wbudowanych w Pythonie. SymPy udostępnia moduł zestawów. Zawiera definicje różnych typów zbiorów i ma funkcje do wykonywania operacji na zbiorach, takich jak przecięcie, suma itp.
Zestaw jest klasą bazową dla dowolnego innego typu zestawu w SymPy. Zauważ, że różni się on od wbudowanego zestawu danych typu Python. Klasa Interval reprezentuje rzeczywiste interwały, a jej właściwość boundary zwraca aFiniteSet obiekt.
>>> from sympy import Interval
>>> s=Interval(1,10).boundary
>>> type(s)
sympy.sets.sets.FiniteSet
FiniteSet to zbiór liczb dyskretnych. Można go uzyskać z dowolnego obiektu sekwencji, takiego jak lista lub łańcuch.
>>> from sympy import FiniteSet
>>> FiniteSet(range(5))
Output
$\lbrace\lbrace0,1,...,4\rbrace\rbrace$
>>> numbers=[1,3,5,2,8]
>>> FiniteSet(*numbers)
Output
$\lbrace1,2,3,5,8\rbrace$
>>> s="HelloWorld"
>>> FiniteSet(*s)
Output
{H,W,d,e,l,o,r}
Zwróć uwagę, że podobnie jak w zestawie wbudowanym, zestaw SymPy jest również zbiorem odrębnych obiektów.
ConditionSet to zbiór elementów spełniających dany warunek
>>> from sympy import ConditionSet, Eq, Symbol
>>> x=Symbol('x')
>>> s=ConditionSet(x, Eq(x**2-2*x,0), Interval(1,10)) >>> s
Output
$\lbrace x\mid x\in[1,10]∧x^2 - 2x =0\rbrace$
Unionjest zbiorem złożonym. Zawiera wszystkie elementy w dwóch zestawach. Zauważ, że elementy, które znajdują się w obu, pojawią się tylko raz w Unii.
>>> from sympy import Union
>>> l1=[3,1,5,7]
>>> l2=[9,7,2,1]
>>> a=FiniteSet(*l1)
>>> b=FiniteSet(*l2)
>>> Union(a,b)
Intersection z drugiej strony zawiera tylko te elementy, które są obecne w obu.
>>> from sympy import Intersection
>>> Intersection(a,b)
ProductSet obiekt reprezentuje iloczyn kartezjański elementów w obu zbiorach.
>>> from sympy import ProductSet
>>> l1=[1,2]
>>> l2=[2,3]
>>> a=FiniteSet(*l1)
>>> b=FiniteSet(*l2)
>>> set(ProductSet(a,b))
Complement(a,b) zachowuje elementy z elementów wykluczających, które są wspólne z zestawem 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 zestaw zawiera tylko nietypowe elementy w obu zestawach.
>>> from sympy import SymmetricDifference
>>> l1=[3,1,5,7]
>>> l2=[9,7,2,1]
>>> a=FiniteSet(*l1)
>>> b=FiniteSet(*l2)
>>> SymmetricDifference(a,b)
Output
{2,3,5,9}