scipy.integrate — Integração numérica¶
O submódulo scipy.integrate fornece rotinas de integração numérica para funções de uma única variável com valores reais. Os algoritmos não são portados do scipy.integrate do CPython, mas derivados da implementação de referência em https://www.genivia.com/qthsh.html.
A integração numérica funciona melhor com a matemática float64 habilitada. Com a matemática float32 as rotinas ainda funcionam, com precisão reduzida. A tolerância de erro necessária pode ser especificada via o argumento nomeado eps; o padrão é o valor etolerance de tempo de compilação (1e-14 para fp64, 1e-8 para fp32). Números complexos não são suportados.
Funções¶
- scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]¶
Integra f de a a b usando uma quadratura Adaptativa de Gauss-Kronrod (G10, K21). Este é o integrador de uso geral recomendado.
- Parâmetros:
f – objeto chamável que recebe um único
floate retorna umfloat.a – limite inferior de integração.
b – limite superior de integração.
order – ordem de integração (padrão
5).eps – tolerância de erro (padrão
etolerance).
- Retorna:
uma tupla de 2 elementos
(result, error)de floats fornecendo o valor da integral e uma estimativa de erro.
- scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integra f de a a b usando o método de Romberg, uma fórmula de Newton-Cotes que avalia o integrando em pontos igualmente espaçados. Mais adequado para integrandos com derivadas contínuas. Observe que
scipy.integrate.rombergestá obsoleto no CPython desde o SciPy 1.12.0; prefiraquad()para código novo.- Parâmetros:
f – objeto chamável que recebe um único
floate retorna umfloat.a – limite inferior de integração.
b – limite superior de integração.
steps – número de passos (padrão
100).eps – tolerância de erro (padrão
etolerance).
- Retorna:
o valor da integral como um
float.
- scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
Integra f de a a b usando a regra de Simpson adaptativa. Diferentemente do
scipy.integrate.simpsondo CPython, esta função recebe um objeto chamável e escolhe o espaçamento das amostras internamente, em vez de receber um array de valores de função pré-calculados.- Parâmetros:
f – objeto chamável que recebe um único
floate retorna umfloat.a – limite inferior de integração.
b – limite superior de integração.
steps – número de passos (padrão
100).eps – tolerância de erro (padrão
etolerance).
- Retorna:
o valor da integral como um
float.
- scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]¶
Integra f de a a b usando a família de quadraturas Tanh-Sinh, Sinh-Sinh e Exp-Sinh (dupla-exponencial). Esta é a rotina a ser usada quando o integrando tem singularidades ou derivadas infinitas nos extremos, e é a única rotina deste submódulo que aceita limites de integração infinitos (por exemplo,
-np.inf,np.inf).- Parâmetros:
f – objeto chamável que recebe um único
floate retorna umfloat.a – limite inferior de integração; pode ser
-np.inf.b – limite superior de integração; pode ser
np.inf.levels – número de níveis de refinamento (padrão
6).eps – tolerância de erro (padrão
etolerance).
- Retorna:
uma tupla de 2 elementos
(result, error)de floats fornecendo o valor da integral e uma estimativa de erro.