scipy.integrate — Numerische Integration¶
Das Submodul scipy.integrate stellt Routinen zur numerischen Integration für reellwertige Funktionen einer Variablen bereit. Die Algorithmen sind nicht aus CPythons scipy.integrate portiert, sondern von der Referenzimplementierung unter https://www.genivia.com/qthsh.html abgeleitet.
Die numerische Integration funktioniert am besten mit aktivierter float64-Arithmetik. Mit float32-Arithmetik funktionieren die Routinen ebenfalls, jedoch mit reduzierter Genauigkeit. Die erforderliche Fehlertoleranz kann über das Schlüsselwortargument eps angegeben werden; der Standardwert ist der zur Compile-Zeit festgelegte etolerance-Wert (1e-14 für fp64, 1e-8 für fp32). Komplexe Zahlen werden nicht unterstützt.
Funktionen¶
- scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]¶
Integriert f von a bis b mit einer adaptiven Gauß-Kronrod-Quadratur (G10, K21). Dies ist der empfohlene Allzweck-Integrator.
- Parameter:
f – ein aufrufbares Objekt, das einen einzelnen
floatentgegennimmt und einenfloatzurückgibt.a – untere Integrationsgrenze.
b – obere Integrationsgrenze.
order – Integrationsordnung (Standardwert
5).eps – Fehlertoleranz (Standardwert
etolerance).
- Rückgabe:
ein 2-Tupel
(result, error)aus floats, das den Wert des Integrals und eine Fehlerschätzung angibt.
- scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integriert f von a bis b mit dem Romberg-Verfahren, einer Newton-Cotes-Formel, die den Integranden an gleichmäßig verteilten Punkten auswertet. Am besten geeignet für Integranden mit stetigen Ableitungen. Beachten Sie, dass
scipy.integrate.rombergin CPython seit SciPy 1.12.0 als veraltet gilt; bevorzugen Siequad()für neuen Code.- Parameter:
f – ein aufrufbares Objekt, das einen einzelnen
floatentgegennimmt und einenfloatzurückgibt.a – untere Integrationsgrenze.
b – obere Integrationsgrenze.
steps – Anzahl der Schritte (Standardwert
100).eps – Fehlertoleranz (Standardwert
etolerance).
- Rückgabe:
der Wert des Integrals als
float.
- scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integriert f von a bis b mit der adaptiven Simpson-Regel. Anders als CPythons
scipy.integrate.simpsonnimmt diese Funktion ein aufrufbares Objekt entgegen und wählt den Abtastabstand intern, statt ein Array vorab berechneter Funktionswerte zu erwarten.- Parameter:
f – ein aufrufbares Objekt, das einen einzelnen
floatentgegennimmt und einenfloatzurückgibt.a – untere Integrationsgrenze.
b – obere Integrationsgrenze.
steps – Anzahl der Schritte (Standardwert
100).eps – Fehlertoleranz (Standardwert
etolerance).
- Rückgabe:
der Wert des Integrals als
float.
- scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]¶
Integriert f von a bis b mit der Quadraturfamilie Tanh-Sinh, Sinh-Sinh und Exp-Sinh (doppelt-exponentiell). Dies ist die Routine, die zu verwenden ist, wenn der Integrand an den Endpunkten Singularitäten oder unendliche Ableitungen aufweist, und sie ist die einzige Routine in diesem Submodul, die unendliche Integrationsgrenzen akzeptiert (z. B.
-np.inf,np.inf).- Parameter:
f – ein aufrufbares Objekt, das einen einzelnen
floatentgegennimmt und einenfloatzurückgibt.a – untere Integrationsgrenze; darf
-np.infsein.b – obere Integrationsgrenze; darf
np.infsein.levels – Anzahl der Verfeinerungsstufen (Standardwert
6).eps – Fehlertoleranz (Standardwert
etolerance).
- Rückgabe:
ein 2-Tupel
(result, error)aus floats, das den Wert des Integrals und eine Fehlerschätzung angibt.