SymPy: classe di funzioni
Il pacchetto Sympy ha la classe Function, che è definita nel modulo sympy.core.function. È una classe base per tutte le funzioni matematiche applicate, come anche un costruttore per classi di funzioni non definite.
Le seguenti categorie di funzioni vengono ereditate dalla classe Function:
- Funzioni per numero complesso
- Funzioni trigonometriche
- Funzioni per numero intero
- Funzioni combinatorie
- Altre funzioni varie
Funzioni per numero complesso
Questo insieme di funzioni è definito in sympy.functions.elementary.complexes modulo.
re
Questa funzione restituisce una parte reale di un'espressione -
>>> from sympy import *
>>> re(5+3*I)
L'output per lo snippet di codice sopra è fornito di seguito:
5
>>> re(I)
L'output per lo snippet di codice sopra è:
0
Im
Questa funzione restituisce una parte immaginaria di un'espressione -
>>> im(5+3*I)
L'output per lo snippet di codice sopra è fornito di seguito:
3
>>> im(I)
L'output per lo snippet di codice sopra è fornito di seguito:
1
sign
Questa funzione restituisce il segno complesso di un'espressione.
Per una vera espressione, il segno sarà:
- 1 se l'espressione è positiva
- 0 se l'espressione è uguale a zero
- -1 se l'espressione è negativa
Se l'espressione è immaginaria il segno restituito è -
- I se im (espressione) è positiva
- -I se im (espressione) è negativo
>>> sign(1.55), sign(-1), sign(S.Zero)
L'output per lo snippet di codice sopra è fornito di seguito:
(1, -1, 0)
>>> sign (-3*I), sign(I*2)
L'output per lo snippet di codice sopra è fornito di seguito:
(-I, I)
Abs
Questa funzione restituisce il valore assoluto di un numero complesso. È definita come la distanza tra l'origine (0,0) e il punto (a, b) nel piano complesso. Questa funzione è un'estensione della funzione incorporata abs () per accettare valori simbolici.
>>> Abs(2+3*I)
L'output per lo snippet di codice sopra è fornito di seguito:
$\sqrt13$
conjugate
Questa funzione restituisce il coniugato di un numero complesso. Per trovare il complesso coniugato cambiamo il segno della parte immaginaria.
>>> conjugate(4+7*I)
Si ottiene il seguente output dopo aver eseguito lo snippet di codice sopra:
4 - 7i
Funzioni trigonometriche
SymPy ha definizioni per tutti i rapporti trigonometrici: sin cos, tan ecc. Così come le sue controparti inverse come asin, acos, atan ecc. Queste funzioni calcolano il rispettivo valore per un dato angolo espresso in radianti.
>>> sin(pi/2), cos(pi/4), tan(pi/6)
L'output per lo snippet di codice sopra è fornito di seguito:
(1, sqrt(2)/2, sqrt(3)/3)
>>> asin(1), acos(sqrt(2)/2), atan(sqrt(3)/3)
L'output per lo snippet di codice sopra è fornito di seguito:
(pi/2, pi/4, pi/6)
Funzioni su numero intero
Questo è un insieme di funzioni per eseguire varie operazioni su numeri interi.
ceiling
Questa è una funzione univariata che restituisce il valore intero più piccolo non inferiore al suo argomento. In caso di numeri complessi, limite massimo delle parti reale e immaginaria separatamente.
>>> ceiling(pi), ceiling(Rational(20,3)), ceiling(2.6+3.3*I)
L'output per lo snippet di codice sopra è fornito di seguito:
(4, 7, 3 + 4*I)
floor
Questa funzione restituisce il valore intero più grande non maggiore del suo argomento. In caso di numeri complessi, anche questa funzione prende la parola separatamente dalla parte reale e da quella immaginaria.
>>> floor(pi), floor(Rational(100,6)), floor(6.3-5.9*I)
L'output per lo snippet di codice sopra è fornito di seguito:
(3, 16, 6 - 6*I)
frac
Questa funzione rappresenta la parte frazionaria di x.
>>> frac(3.99), frac(Rational(10,3)), frac(10)
L'output per lo snippet di codice sopra è fornito di seguito:
(0.990000000000000, 1/3, 0)
Funzioni combinatorie
La combinatoria è un campo della matematica che si occupa di problemi di selezione, disposizione e funzionamento all'interno di un sistema finito o discreto.
factorial
Il fattoriale è molto importante in calcolo combinatorio dove fornisce il numero di modi in cui n oggetti possono essere permutati. È simbolicamente rappresentato come! Questa funzione è l'implementazione della funzione fattoriale su interi non negativi, fattoriale di un intero negativo è l'infinito complesso.
>>> x=Symbol('x')
>>> factorial(x)
L'output per lo snippet di codice sopra è fornito di seguito:
x!
>>> factorial(5)
L'output per lo snippet di codice sopra è fornito di seguito:
120
>>> factorial(-1)
L'output per lo snippet di codice sopra è fornito di seguito:
$\infty\backsim$
binomiale
Questa funzione indica il numero di modi in cui possiamo scegliere k elementi da un insieme di n elementi.
>>> x,y=symbols('x y')
>>> binomial(x,y)
L'output per lo snippet di codice sopra è fornito di seguito:
$(\frac{x}{y})$
>>> binomial(4,2)
L'output per lo snippet di codice sopra è fornito di seguito:
6
Righe del triangolo di Pascal possono essere generate con la funzione binomiale.
>>> for i in range(5): print ([binomial(i,j) for j in range(i+1)])
Si ottiene il seguente output dopo aver eseguito lo snippet di codice sopra:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
fibonacci
I numeri di Fibonacci sono la sequenza intera definita dai termini iniziali F0 = 0, F1 = 1 e dalla relazione di ricorrenza a due termini Fn = Fn − 1 + Fn − 2.
>>> [fibonacci(x) for x in range(10)]
Il seguente output si ottiene dopo aver eseguito lo snippet di codice precedente:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
tribonacci
I numeri di Tribonacci sono la sequenza intera definita dai termini iniziali F0 = 0, F1 = 1, F2 = 1 e dalla relazione di ricorrenza a tre termini Fn = Fn-1 + Fn-2 + Fn-3.
>>> tribonacci(5, Symbol('x'))
Lo snippet di codice sopra fornisce un output equivalente all'espressione seguente -
$x^8 + 3x^5 + 3x^2$
>>> [tribonacci(x) for x in range(10)]
Il seguente output si ottiene dopo aver eseguito lo snippet di codice precedente:
[0, 1, 1, 2, 4, 7, 13, 24, 44, 81]
Funzioni varie
Di seguito è riportato un elenco di alcune funzioni utilizzate di frequente:
Min- Restituisce il valore minimo della lista. Si chiama Min per evitare conflitti con la funzione incorporata min.
Max- Restituisce il valore massimo dell'elenco. Si chiama Max per evitare conflitti con la funzione incorporata max.
root - Restituisce l'ennesima radice di x.
sqrt - Restituisce la radice quadrata principale di x.
cbrt - Questa funzione calcola la radice cubica principale di x, (scorciatoia per x ++ Rational (1,3)).
Di seguito sono riportati gli esempi delle funzioni miscellanee di cui sopra e le rispettive uscite:
>>> Min(pi,E)
e
>>> Max(5, Rational(11,2))
$\frac{11}{2}$
>>> root(7,Rational(1,2))
49
>>> sqrt(2)
$\sqrt2$
>>> cbrt(1000)
10