- SymPy 教程
- SymPy - 首頁
- SymPy - 簡介
- SymPy - 安裝
- SymPy - 符號計算
- SymPy - 數值
- SymPy - 符號
- SymPy - 替換
- SymPy - sympify() 函式
- SymPy - evalf() 函式
- SymPy - lambdify() 函式
- SymPy - 邏輯表示式
- SymPy - 查詢
- SymPy - 簡化
- SymPy - 導數
- SymPy - 積分
- SymPy - 矩陣
- SymPy - 函式類
- SymPy - 四元數
- SymPy - 求解器
- SymPy - 繪圖
- SymPy - 實體
- SymPy - 集合
- SymPy - 列印
- SymPy 有用資源
- SymPy - 快速指南
- SymPy - 有用資源
- SymPy - 討論
SymPy - 集合
在數學中,集合是由不同物件的明確定義的集合,這些物件可以是數字、人、字母表中的字母,甚至是其他集合。集合也是 Python 中的內建型別之一。SymPy 提供了集合模組。它包含不同型別集合的定義,並具有執行集合運算(如交集、並集等)的功能。
集合是 SymPy 中任何其他型別集合的基類。請注意,它與 Python 的內建集合資料型別不同。Interval 類表示實數區間,其邊界屬性返回一個**有限集**物件。
>>> from sympy import Interval >>> s=Interval(1,10).boundary >>> type(s)
sympy.sets.sets.FiniteSet
FiniteSet 是離散數字的集合。它可以從任何序列物件(如列表或字串)中獲得。
>>> 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 的集合也是不同物件的集合。
**條件集**是一組滿足給定條件的元素。
>>> 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$
**並集**是一個複合集合。它包含兩個集合中的所有元素。請注意,在兩個集合中都存在的元素在並集中只會出現一次。
>>> 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)
**積集**物件表示兩個集合中元素的笛卡爾積。
>>> from sympy import ProductSet >>> l1=[1,2] >>> l2=[2,3] >>> a=FiniteSet(*l1) >>> b=FiniteSet(*l2) >>> set(ProductSet(a,b))
**補集(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)
**對稱差集**只包含兩個集合中不共有的元素。
>>> 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}
廣告