scipy.integrate — Integración numérica¶
El submódulo scipy.integrate proporciona rutinas de integración numérica para funciones de una sola variable con valores reales. Los algoritmos no se han portado desde scipy.integrate de CPython, sino que se derivan de la implementación de referencia disponible en https://www.genivia.com/qthsh.html.
La integración numérica funciona mejor con la aritmética float64 habilitada. Con la aritmética float32 las rutinas siguen funcionando, pero con una precisión reducida. La tolerancia de error requerida puede especificarse mediante el argumento de palabra clave eps; el valor predeterminado es el valor de etolerance en tiempo de compilación (1e-14 para fp64, 1e-8 para fp32). Los números complejos no son compatibles.
Funciones¶
- scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]¶
Integra f desde a hasta b utilizando una cuadratura adaptativa de Gauss-Kronrod (G10, K21). Este es el integrador de propósito general recomendado.
- Parámetros:
f – objeto invocable que recibe un único
floaty devuelve unfloat.a – límite inferior de integración.
b – límite superior de integración.
order – orden de integración (valor predeterminado
5).eps – tolerancia de error (valor predeterminado
etolerance).
- Devuelve:
una tupla de 2 elementos
(result, error)de floats que da el valor de la integral y una estimación del error.
- scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integra f desde a hasta b utilizando el método de Romberg, una fórmula de Newton-Cotes que evalúa el integrando en puntos igualmente espaciados. Es más adecuado para integrandos con derivadas continuas. Tenga en cuenta que
scipy.integrate.rombergestá obsoleto en CPython desde SciPy 1.12.0; prefieraquad()para código nuevo.- Parámetros:
f – objeto invocable que recibe un único
floaty devuelve unfloat.a – límite inferior de integración.
b – límite superior de integración.
steps – número de pasos (valor predeterminado
100).eps – tolerancia de error (valor predeterminado
etolerance).
- Devuelve:
el valor de la integral como un
float.
- scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integra f desde a hasta b utilizando la regla adaptativa de Simpson. A diferencia de
scipy.integrate.simpsonde CPython, esta función recibe un objeto invocable y elige el espaciado de las muestras internamente en lugar de recibir una matriz de valores de función precalculados.- Parámetros:
f – objeto invocable que recibe un único
floaty devuelve unfloat.a – límite inferior de integración.
b – límite superior de integración.
steps – número de pasos (valor predeterminado
100).eps – tolerancia de error (valor predeterminado
etolerance).
- Devuelve:
el valor de la integral como un
float.
- scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]¶
Integra f desde a hasta b utilizando la familia de cuadratura Tanh-Sinh, Sinh-Sinh y Exp-Sinh (doble exponencial). Esta es la rutina que debe usarse cuando el integrando tiene singularidades o derivadas infinitas en los extremos, y es la única rutina de este submódulo que acepta límites de integración infinitos (p. ej.
-np.inf,np.inf).- Parámetros:
f – objeto invocable que recibe un único
floaty devuelve unfloat.a – límite inferior de integración; puede ser
-np.inf.b – límite superior de integración; puede ser
np.inf.levels – número de niveles de refinamiento (valor predeterminado
6).eps – tolerancia de error (valor predeterminado
etolerance).
- Devuelve:
una tupla de 2 elementos
(result, error)de floats que da el valor de la integral y una estimación del error.