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 meglio con l’aritmetica float64 abilitata. Con l’aritmetica float32 le routine funzionano ancora, con precisione ridotta. La tolleranza di errore richiesta può essere specificata tramite l’argomento chiave eps; il valore predefinito è il valore etolerance in fase di compilazione (1e-14 per fp64, 1e-8 per fp32).
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.