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 float et renvoyant un float.

  • 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.romberg est déprécié dans CPython depuis SciPy 1.12.0 ; préférez quad() pour le nouveau code.

Paramètres:
  • f – objet appelable prenant un unique float et renvoyant un float.

  • 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.simpson de 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 float et renvoyant un float.

  • 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 float et renvoyant un float.

  • 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.