Il calcolo dei limiti di una funzione in Python
Il calcolo del limite di una funzione in Python posso svolgerlo usando la funzione limit() della libreria sympy.
limit(f,x,l,d)
Questa ha tre parametri obbligatori
- Il primo parametro è la funzione (f) di cui voglio calcolare il limite.
- Il secondo parametro (x) è il simbolo della variabile indipendente.
- Il terzo parametro (l) è il limite a cui far tendere la variabile indipendente.
- Il quarto parametro (d) è facoltativo e indica se il limite è destro o sinistro.
Nota. Per utilizzare la libreria sympy è necessario prima installarla su Python. E' molto utile per il calcolo simbolico e per l'analisi matematica, inclusi i limiti di una funzione. Una volta installata, può essere importata in Python prima dell'utilizzo.
Faccio qualche esempio pratico.
Importo la libreria su Python.
import sympy as sp
Ad esempio, voglio calcolare il limite della funzione
$$ \lim_{x \rightarrow 0} \frac{x+1}{x-1} $$
Definisco la variabile simbolica 'x' della funzione tramite la funzione symbols()
x = sp.symbols('x')
Quest'ultimo comando crea un simbolo matematico che può essere utilizzato per rappresentare variabili nelle espressioni matematiche.
E' indispensabile perché consente di eseguire operazioni simboliche come il calcolo di limiti, derivate, integrali e altre manipolazioni algebriche.
Poi definisco la funzione matematica da studiare $ f(x) = \frac{x+1}{x-1} $
f = (x+1)/(x-1)
A questo punto calcolo il limite della funzione quando x tende a 0 tramite limit(), lo assegno a una variabile "limite" e stampo il risultato
limite = sp.limit(f, x, 0)
print(limite)
Il limite della funzione $ f(x) = \frac{x+1}{x-1} $ quando $ x \rightarrow 0 $ tende a zero è -1.
-1
Ovviamente posso calcolare i limiti in altri punti finiti o comportamenti asintotici.
Ad esempio, si può calcolare il limite per x che tende a infinito.
$$ \lim_{x \rightarrow \infty} \frac{x+1}{x-1} $$
In questo caso devo indicare l'infinito $ \infty $ tramite il simbolo sp.oo
limite = sp.limit(f, x, sp.oo)
print(limite)
Il limite della funzione $ f(x) = \frac{x+1}{x-1} $ per x che tende a infinito è 1.
1
Infine, la funzione limit() mi permette anche di calcolare il limite sinistro e destro.
Ad esempio, voglio calcolare il limite destro per x che tende a 2
$$ \lim_{x \rightarrow 2^+} \frac{x+1}{x-1} $$
Per farlo indico il quarto parametro parametro dir='+' o semplicemente '+'
limite = sp.limit(f, x, 2, dir='+')
print(limite)
3
Allo stesso modo posso calcolare il limite sinistro per x che tende a 2
In questo caso indico dir='-' oppure '-' come quarto parametro
limite = sp.limit(f, x, 2, '-')
print(limite)
3
La funzione limit() di sympy può calcolare i limiti anche di funzioni molto più complesse e analizzare il loro comportamento particolari in punti critici.
Il calcolo del limite delle funzioni matematiche o trigonometriche
Quando calcolo il limite di funzioni come log(), cos(), sin(), tan(), exp(), ecc., devo usare le versioni simboliche fornite da sympy anziché quelle di altre librerie come math o numpy.
Ad esempio, per calcolare il limite del seno invece di utilizzare la funzione math.sin() devo utilizzare la funzione sympy.sin() che è appositamente predisposta per il calcolo simbolico.
Ecco un elenco delle funzioni matematiche più comuni presenti in sympy:
- Logaritmo: sympy.log(x)
- Coseno: sympy.cos(x)
- Seno: sympy.sin(x)
- Tangente: sympy.tan(x)
- Esponenziale: sympy.exp(x)
Ad esempio, se volessi calcolare il limite di \(\frac{\log(x+1)}{x-1}\), ecco il codice che dovrei utilizzare:
import sympy as sp
x = sp.symbols('x')
f = sp.log(x + 1) / (x - 1)
limit_result = sp.limit(f, x, 0)
print(limit_result)
0
Allo stesso modo, per una funzione con il coseno:
import sympy as sp
x = sp.symbols('x')
f = sp.cos(x + 1) / (x - 1)
limit_result = sp.limit(f, x, 0)
print(limit_result)
-cos(1)
Per calcolare il limite di \(\frac{\sin(x + 1)}{x - 1}\) quando \(x\) tende a 0 utilizzo la funzione sympy.sin().
import sympy as sp
x = sp.symbols('x')
f = (sp.sin(x + 1)) / (x - 1)
limit_result = sp.limit(f, x, 0)
print(limit_result)
-sin(1)
In generale, quando si lavora con simboli, bisogna sempre usare le funzioni di `sympy` per garantirne il corretto funzionamento del limite.
Nota. Se provo a utilizzare le funzioni matematiche della libreria NumPy (come numpy.sin, numpy.cos, numpy.log, ecc.) con simboli di SymPy, Python restituirebbe un errore. Questo accade perché NumPy è progettato per operare con array di numeri (o singoli numeri), non con espressioni simboliche. Lo stesso accade per le funzioni della libreria Math. Anche la libreria math funziona con valori numerici, mentre sympy gestisce simboli e calcoli simbolici.
E così via.