scipy.integrate — Intégration numérique¶
Le sous-module scipy.integrate fournit des routines d’intégration numérique pour des fonctions à une seule variable à valeurs réelles. Les algorithmes ne sont pas portés depuis le scipy.integrate de CPython mais dérivés de l’implémentation de référence disponible sur https://www.genivia.com/qthsh.html.
L’intégration numérique fonctionne mieux avec l’arithmétique float64 activée. Avec l’arithmétique float32, les routines fonctionnent tout de même, mais avec une précision réduite. La tolérance d’erreur requise peut être spécifiée via l’argument nommé eps ; la valeur par défaut est la valeur etolerance fixée à la compilation (1e-14 pour fp64, 1e-8 pour fp32). Les nombres complexes ne sont pas pris en charge.
Fonctions¶
- scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]¶
Intègre f de a à b à l’aide d’une quadrature adaptative de Gauss-Kronrod (G10, K21). C’est l’intégrateur polyvalent recommandé.
- Paramètres:
f – objet appelable prenant un unique
floatet renvoyant unfloat.a – borne inférieure d’intégration.
b – borne supérieure d’intégration.
order – ordre d’intégration (par défaut
5).eps – tolérance d’erreur (par défaut
etolerance).
- Renvoie:
un 2-tuple
(result, error)de flottants donnant la valeur de l’intégrale et une estimation de l’erreur.
- scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Intègre f de a à b à l’aide de la méthode de Romberg, une formule de Newton-Cotes qui évalue l’intégrande en des points également espacés. Convient le mieux aux intégrandes à dérivées continues. Notez que
scipy.integrate.rombergest déprécié dans CPython depuis SciPy 1.12.0 ; préférezquad()pour le nouveau code.- Paramètres:
f – objet appelable prenant un unique
floatet renvoyant unfloat.a – borne inférieure d’intégration.
b – borne supérieure d’intégration.
steps – nombre de pas (par défaut
100).eps – tolérance d’erreur (par défaut
etolerance).
- Renvoie:
la valeur de l’intégrale sous forme de
float.
- scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Intègre f de a à b à l’aide de la règle de Simpson adaptative. Contrairement au
scipy.integrate.simpsonde CPython, cette fonction prend un objet appelable et choisit l’espacement des échantillons en interne plutôt que de prendre un tableau de valeurs de fonction pré-calculées.- Paramètres:
f – objet appelable prenant un unique
floatet renvoyant unfloat.a – borne inférieure d’intégration.
b – borne supérieure d’intégration.
steps – nombre de pas (par défaut
100).eps – tolérance d’erreur (par défaut
etolerance).
- Renvoie:
la valeur de l’intégrale sous forme de
float.
- scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]¶
Intègre f de a à b à l’aide de la famille de quadratures Tanh-Sinh, Sinh-Sinh et Exp-Sinh (double exponentielle). C’est la routine à utiliser lorsque l’intégrande présente des singularités ou des dérivées infinies aux extrémités, et c’est la seule routine de ce sous-module qui accepte des bornes d’intégration infinies (par exemple
-np.inf,np.inf).- Paramètres:
f – objet appelable prenant un unique
floatet renvoyant unfloat.a – borne inférieure d’intégration ; peut valoir
-np.inf.b – borne supérieure d’intégration ; peut valoir
np.inf.levels – nombre de niveaux de raffinement (par défaut
6).eps – tolérance d’erreur (par défaut
etolerance).
- Renvoie:
un 2-tuple
(result, error)de flottants donnant la valeur de l’intégrale et une estimation de l’erreur.