scipy.integrate — Integrazione numerica¶
Il sottomodulo scipy.integrate fornisce routine di integrazione numerica per funzioni a valori reali di una sola variabile. Gli algoritmi non sono portati da scipy.integrate di CPython ma derivati dall’implementazione di riferimento disponibile su https://www.genivia.com/qthsh.html.
L’integrazione numerica funziona al meglio con la matematica float64 abilitata. Con la matematica float32 le routine funzionano comunque, ma con precisione ridotta. La tolleranza di errore richiesta può essere specificata tramite l’argomento keyword eps; il valore predefinito è il valore etolerance definito in fase di compilazione (1e-14 per fp64, 1e-8 per fp32). I numeri complessi non sono supportati.
Funzioni¶
- scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]¶
Integra f da a a b usando una quadratura adattiva di Gauss-Kronrod (G10, K21). Questo è l’integratore generico consigliato.
- Parametri:
f – callable che accetta un singolo
floate restituisce unfloat.a – limite inferiore di integrazione.
b – limite superiore di integrazione.
order – ordine di integrazione (predefinito
5).eps – tolleranza di errore (predefinito
etolerance).
- Ritorna:
una tupla di 2 elementi
(result, error)di float che fornisce il valore dell’integrale e una stima dell’errore.
- scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integra f da a a b usando il metodo di Romberg, una formula di Newton-Cotes che valuta l’integranda in punti equispaziati. È più adatto a integrande con derivate continue. Nota che
scipy.integrate.rombergè deprecato in CPython a partire da SciPy 1.12.0; preferisciquad()per il nuovo codice.- Parametri:
f – callable che accetta un singolo
floate restituisce unfloat.a – limite inferiore di integrazione.
b – limite superiore di integrazione.
steps – numero di passi (predefinito
100).eps – tolleranza di errore (predefinito
etolerance).
- Ritorna:
il valore dell’integrale come
float.
- scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integra f da a a b usando la regola di Simpson adattiva. A differenza di
scipy.integrate.simpsondi CPython, questa funzione accetta un callable e sceglie internamente la spaziatura dei campioni invece di accettare un array di valori di funzione precalcolati.- Parametri:
f – callable che accetta un singolo
floate restituisce unfloat.a – limite inferiore di integrazione.
b – limite superiore di integrazione.
steps – numero di passi (predefinito
100).eps – tolleranza di errore (predefinito
etolerance).
- Ritorna:
il valore dell’integrale come
float.
- scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]¶
Integra f da a a b usando la famiglia di quadrature Tanh-Sinh, Sinh-Sinh ed Exp-Sinh (doppio-esponenziale). Questa è la routine da usare quando l’integranda presenta singolarità o derivate infinite agli estremi, ed è l’unica routine di questo sottomodulo che accetta limiti di integrazione infiniti (ad esempio
-np.inf,np.inf).- Parametri:
f – callable che accetta un singolo
floate restituisce unfloat.a – limite inferiore di integrazione; può essere
-np.inf.b – limite superiore di integrazione; può essere
np.inf.levels – numero di livelli di raffinamento (predefinito
6).eps – tolleranza di errore (predefinito
etolerance).
- Ritorna:
una tupla di 2 elementi
(result, error)di float che fornisce il valore dell’integrale e una stima dell’errore.