SymPy - klasa funkcji
Pakiet Sympy ma klasę Function, która jest zdefiniowana w module sympy.core.function. Jest to klasa bazowa dla wszystkich stosowanych funkcji matematycznych, a także konstruktor dla niezdefiniowanych klas funkcji.
Następujące kategorie funkcji są dziedziczone z klasy funkcji -
- Funkcje na liczbach zespolonych
- Funkcje trygonometryczne
- Funkcje dla liczby całkowitej
- Funkcje kombinatoryczne
- Inne różne funkcje
Funkcje na liczbach zespolonych
Ten zestaw funkcji jest zdefiniowany w sympy.functions.elementary.complexes moduł.
re
Ta funkcja zwraca rzeczywistą część wyrażenia -
>>> from sympy import *
>>> re(5+3*I)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
5
>>> re(I)
Dane wyjściowe dla powyższego fragmentu kodu to -
0
Im
Ta funkcja zwraca urojoną część wyrażenia -
>>> im(5+3*I)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
3
>>> im(I)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
1
sign
Ta funkcja zwraca złożony znak wyrażenia.
Dla prawdziwego wyrazu znak będzie -
- 1, jeśli wyrażenie jest pozytywne
- 0, jeśli wyrażenie jest równe zero
- -1, jeśli wyrażenie jest ujemne
Jeśli wyrażenie jest urojone, zwracany znak to -
- I jeśli im (wyrażenie) jest pozytywne
- -I jeśli im (wyrażenie) jest ujemne
>>> sign(1.55), sign(-1), sign(S.Zero)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
(1, -1, 0)
>>> sign (-3*I), sign(I*2)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
(-I, I)
Abs
Ta funkcja zwraca wartość bezwzględną liczby zespolonej. Jest definiowana jako odległość między początkiem (0,0) a punktem (a, b) na płaszczyźnie zespolonej. Ta funkcja jest rozszerzeniem wbudowanej funkcji abs (), która akceptuje wartości symboliczne.
>>> Abs(2+3*I)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
$\sqrt13$
conjugate
Ta funkcja zwraca koniugat liczby zespolonej. Aby znaleźć sprzężenie złożone, zmieniamy znak części urojonej.
>>> conjugate(4+7*I)
Po wykonaniu powyższego fragmentu kodu otrzymasz następujące dane wyjściowe -
4 - 7i
Funkcje trygonometryczne
SymPy ma definicje wszystkich stosunków trygonometrycznych - sin cos, tan itp., A także ich odwrotne odpowiedniki, takie jak asin, acos, atan itp. Funkcje te obliczają odpowiednią wartość dla danego kąta wyrażoną w radianach.
>>> sin(pi/2), cos(pi/4), tan(pi/6)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
(1, sqrt(2)/2, sqrt(3)/3)
>>> asin(1), acos(sqrt(2)/2), atan(sqrt(3)/3)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
(pi/2, pi/4, pi/6)
Funkcje na liczbie całkowitej
Jest to zestaw funkcji do wykonywania różnych operacji na liczbie całkowitej.
ceiling
Jest to funkcja jednowymiarowa, która zwraca najmniejszą liczbę całkowitą nie mniejszą niż jej argument. W przypadku liczb zespolonych, oddzielnie pułap części rzeczywistej i urojonej.
>>> ceiling(pi), ceiling(Rational(20,3)), ceiling(2.6+3.3*I)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
(4, 7, 3 + 4*I)
floor
Ta funkcja zwraca największą wartość całkowitą nie większą niż jej argument. W przypadku liczb zespolonych ta funkcja również osobno obejmuje część rzeczywistą i urojoną.
>>> floor(pi), floor(Rational(100,6)), floor(6.3-5.9*I)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
(3, 16, 6 - 6*I)
frac
Ta funkcja reprezentuje ułamkową część x.
>>> frac(3.99), frac(Rational(10,3)), frac(10)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
(0.990000000000000, 1/3, 0)
Funkcje kombinatoryczne
Kombinatoryka to dziedzina matematyki zajmująca się problemami selekcji, uporządkowania i działania w systemie skończonym lub dyskretnym.
factorial
Silnia jest bardzo ważna w kombinatoryce, gdzie podaje liczbę sposobów permutacji n obiektów. Jest symbolicznie przedstawiony jako! Ta funkcja jest implementacją funkcji silni na nieujemnych liczbach całkowitych, silnia ujemnej liczby całkowitej to zespolona nieskończoność.
>>> x=Symbol('x')
>>> factorial(x)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
x!
>>> factorial(5)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
120
>>> factorial(-1)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
$\infty\backsim$
dwumianowy
Ta funkcja określa liczbę sposobów, w jakie możemy wybrać k elementów ze zbioru n elementów.
>>> x,y=symbols('x y')
>>> binomial(x,y)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
$(\frac{x}{y})$
>>> binomial(4,2)
Dane wyjściowe dla powyższego fragmentu kodu podano poniżej -
6
Rzędy trójkąta Pascala można generować za pomocą funkcji dwumianowej.
>>> for i in range(5): print ([binomial(i,j) for j in range(i+1)])
Po wykonaniu powyższego fragmentu kodu otrzymasz następujące dane wyjściowe -
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
fibonacci
Liczby Fibonacciego są ciągiem liczb całkowitych zdefiniowanym przez początkowe wyrażenia F0 = 0, F1 = 1 i dwustanową relację powtarzania Fn = Fn − 1 + Fn − 2.
>>> [fibonacci(x) for x in range(10)]
Poniższe dane wyjściowe są uzyskiwane po wykonaniu powyższego fragmentu kodu -
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
tribonacci
Liczby Tribonacciego to sekwencja liczb całkowitych zdefiniowana przez początkowe wyrażenia F0 = 0, F1 = 1, F2 = 1 i trzyokresowa relacja powtarzania Fn = Fn-1 + Fn-2 + Fn-3.
>>> tribonacci(5, Symbol('x'))
Powyższy fragment kodu daje wynik odpowiadający poniższemu wyrażeniu -
$x^8 + 3x^5 + 3x^2$
>>> [tribonacci(x) for x in range(10)]
Poniższe dane wyjściowe są uzyskiwane po wykonaniu powyższego fragmentu kodu -
[0, 1, 1, 2, 4, 7, 13, 24, 44, 81]
Różne funkcje
Poniżej znajduje się lista niektórych często używanych funkcji -
Min- Zwraca minimalną wartość listy. Nazywa się Min, aby uniknąć konfliktów z wbudowaną funkcją min.
Max- Zwraca maksymalną wartość listy. Nazywa się Max, aby uniknąć konfliktów z wbudowaną funkcją max.
root - Zwraca n-ty pierwiastek z x.
sqrt - Zwraca główny pierwiastek kwadratowy z x.
cbrt - Ta funkcja oblicza główny pierwiastek sześcienny z x, (skrót do x ++ Rational (1,3)).
Poniżej znajdują się przykłady powyższych funkcji dodatkowych i ich odpowiednich wyjść -
>>> Min(pi,E)
e
>>> Max(5, Rational(11,2))
$\frac{11}{2}$
>>> root(7,Rational(1,2))
49
>>> sqrt(2)
$\sqrt2$
>>> cbrt(1000)
10