
- 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 - 函式類
Sympy 包含 Function 類,該類定義在 sympy.core.function 模組中。它是所有應用數學函式的基類,也是未定義函式類的建構函式。
以下函式類別繼承自 Function 類:
- 複數函式
- 三角函式
- 整數函式
- 組合函式
- 其他雜項函式
複數函式
這組函式定義在 **sympy.functions.elementary.complexes** 模組中。
re
此函式返回表示式的實部。
>>> from sympy import * >>> re(5+3*I)
以上程式碼片段的輸出如下所示:
5
>>> re(I)
以上程式碼片段的輸出為:
0
Im
此函式返回表示式的虛部。
>>> im(5+3*I)
以上程式碼片段的輸出如下所示:
3
>>> im(I)
以上程式碼片段的輸出如下所示:
1
sign
此函式返回表示式的複數符號。
對於實數表示式,符號將為:
- 1,如果表示式為正
- 0,如果表示式等於零
- -1,如果表示式為負
如果表示式為虛數,則返回的符號為:
- I,如果 im(表示式) 為正
- -I,如果 im(表示式) 為負
>>> sign(1.55), sign(-1), sign(S.Zero)
以上程式碼片段的輸出如下所示:
(1, -1, 0)
>>> sign (-3*I), sign(I*2)
以上程式碼片段的輸出如下所示:
(-I, I)
Abs
此函式返回複數的絕對值。它定義為複平面上原點 (0,0) 和點 (a,b) 之間的距離。此函式是內建函式 abs() 的擴充套件,可以接受符號值。
>>> Abs(2+3*I)
以上程式碼片段的輸出如下所示:
$\sqrt13$
conjugate
此函式返回複數的共軛。要找到複共軛,我們更改虛部的符號。
>>> conjugate(4+7*I)
執行以上程式碼片段後,您將獲得以下輸出:
4 - 7i
三角函式
SymPy 定義了所有三角函式 - sin、cos、tan 等,以及其反函式,例如 asin、acos、atan 等。這些函式計算以弧度表示的給定角度的相應值。
>>> sin(pi/2), cos(pi/4), tan(pi/6)
以上程式碼片段的輸出如下所示:
(1, sqrt(2)/2, sqrt(3)/3)
>>> asin(1), acos(sqrt(2)/2), atan(sqrt(3)/3)
以上程式碼片段的輸出如下所示:
(pi/2, pi/4, pi/6)
整數函式
這是一組用於對整數執行各種運算的函式。
ceiling
這是一個單變數函式,返回不小於其引數的最小整數值。對於複數,分別取實部和虛部的上界。
>>> ceiling(pi), ceiling(Rational(20,3)), ceiling(2.6+3.3*I)
以上程式碼片段的輸出如下所示:
(4, 7, 3 + 4*I)
floor
此函式返回不大於其引數的最大整數值。對於複數,此函式也分別取實部和虛部的下界。
>>> floor(pi), floor(Rational(100,6)), floor(6.3-5.9*I)
以上程式碼片段的輸出如下所示:
(3, 16, 6 - 6*I)
frac
此函式表示 x 的小數部分。
>>> frac(3.99), frac(Rational(10,3)), frac(10)
以上程式碼片段的輸出如下所示:
(0.990000000000000, 1/3, 0)
組合函式
組合學是數學的一個領域,涉及有限或離散系統中選擇、排列和運算的問題。
factorial
階乘在組合學中非常重要,它給出了 n 個物件可以排列的方式的數量。它用符號 𝑥! 表示。此函式是在非負整數上實現階乘函式,負整數的階乘是復無窮大。
>>> x=Symbol('x') >>> factorial(x)
以上程式碼片段的輸出如下所示:
x!
>>> factorial(5)
以上程式碼片段的輸出如下所示:
120
>>> factorial(-1)
以上程式碼片段的輸出如下所示:
$\infty\backsim$
binomial
此函式表示從 n 個元素的集合中選擇 k 個元素的方式的數量。
>>> x,y=symbols('x y') >>> binomial(x,y)
以上程式碼片段的輸出如下所示:
$(\frac{x}{y})$
>>> binomial(4,2)
以上程式碼片段的輸出如下所示:
6
帕斯卡三角形的行可以用二項式函式生成。
>>> for i in range(5): print ([binomial(i,j) for j in range(i+1)])
執行以上程式碼片段後,您將獲得以下輸出:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
fibonacci
斐波那契數是整數序列,由初始項 F0=0、F1=1 和二項遞推關係 Fn=Fn−1+Fn−2 定義。
>>> [fibonacci(x) for x in range(10)]
執行以上程式碼片段後,將獲得以下輸出:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
tribonacci
特里波那契數是整數序列,由初始項 F0=0、F1=1、F2=1 和三項遞推關係 Fn=Fn-1+Fn-2+Fn-3 定義。
>>> tribonacci(5, Symbol('x'))
以上程式碼片段給出的輸出等效於以下表達式:
$x^8 + 3x^5 + 3x^2$
>>> [tribonacci(x) for x in range(10)]
執行以上程式碼片段後,將獲得以下輸出:
[0, 1, 1, 2, 4, 7, 13, 24, 44, 81]
雜項函式
以下是某些常用函式的列表:
Min - 返回列表的最小值。它命名為 Min 以避免與內建函式 min 衝突。
Max - 返回列表的最大值。它命名為 Max 以避免與內建函式 max 衝突。
root - 返回 x 的 n 次方根。
sqrt - 返回 x 的主要平方根。
cbrt - 此函式計算 x 的主要立方根,(x++Rational(1,3) 的快捷方式)。
以下是以上雜項函式及其相應輸出的示例:
>>> Min(pi,E)
e
>>> Max(5, Rational(11,2))
$\frac{11}{2}$
>>> root(7,Rational(1,2))
49
>>> sqrt(2)
$\sqrt2$
>>> cbrt(1000)
10