scipy.integrate — Numerieke integratie

De submodule scipy.integrate biedt numerieke integratieroutines voor reëelwaardige functies van één variabele. De algoritmen zijn niet overgenomen uit CPython’s scipy.integrate, maar afgeleid van de referentie-implementatie op https://www.genivia.com/qthsh.html.

Numerieke integratie werkt het best met float64-rekenkunde ingeschakeld. Met float32-rekenkunde werken de routines nog steeds, met verminderde precisie. De vereiste fouttolerantie kan worden opgegeven via het sleutelwoordargument eps; de standaard is de tijdens het compileren bepaalde waarde etolerance (1e-14 voor fp64, 1e-8 voor fp32). Complexe getallen worden niet ondersteund.

Functies

scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]

Integreer f van a tot b met een Adaptive Gauss-Kronrod (G10, K21) kwadratuur. Dit is de aanbevolen integrator voor algemeen gebruik.

Parameters:
  • f – aanroepbaar object dat een enkele float aanneemt en een float teruggeeft.

  • a – ondergrens van de integratie.

  • b – bovengrens van de integratie.

  • order – orde van de integratie (standaard 5).

  • eps – fouttolerantie (standaard etolerance).

Geeft terug:

een 2-tuple (result, error) van floats dat de waarde van de integraal en een foutschatting geeft.

scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float

Integreer f van a tot b met Rombergs methode, een Newton-Cotes-formule die de integrand op gelijk verdeelde punten evalueert. Het meest geschikt voor integranden met continue afgeleiden. Merk op dat scipy.integrate.romberg in CPython is verouderd sinds SciPy 1.12.0; gebruik bij voorkeur quad() voor nieuwe code.

Parameters:
  • f – aanroepbaar object dat een enkele float aanneemt en een float teruggeeft.

  • a – ondergrens van de integratie.

  • b – bovengrens van de integratie.

  • steps – aantal stappen (standaard 100).

  • eps – fouttolerantie (standaard etolerance).

Geeft terug:

de waarde van de integraal als een float.

scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float

Integreer f van a tot b met de adaptieve regel van Simpson. In tegenstelling tot CPython’s scipy.integrate.simpson neemt deze functie een aanroepbaar object aan en kiest ze de monsterafstand intern, in plaats van een array van vooraf berekende functiewaarden aan te nemen.

Parameters:
  • f – aanroepbaar object dat een enkele float aanneemt en een float teruggeeft.

  • a – ondergrens van de integratie.

  • b – bovengrens van de integratie.

  • steps – aantal stappen (standaard 100).

  • eps – fouttolerantie (standaard etolerance).

Geeft terug:

de waarde van de integraal als een float.

scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]

Integreer f van a tot b met de Tanh-Sinh-, Sinh-Sinh- en Exp-Sinh-kwadratuurfamilie (dubbel-exponentieel). Dit is de routine die u moet gebruiken wanneer de integrand singulariteiten of oneindige afgeleiden bij de eindpunten heeft, en het is de enige routine in deze submodule die oneindige integratiegrenzen accepteert (bijv. -np.inf, np.inf).

Parameters:
  • f – aanroepbaar object dat een enkele float aanneemt en een float teruggeeft.

  • a – ondergrens van de integratie; mag -np.inf zijn.

  • b – bovengrens van de integratie; mag np.inf zijn.

  • levels – aantal verfijningsniveaus (standaard 6).

  • eps – fouttolerantie (standaard etolerance).

Geeft terug:

een 2-tuple (result, error) van floats dat de waarde van de integraal en een foutschatting geeft.