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 float e retorna um float.

  • 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.romberg está obsoleto no CPython desde o SciPy 1.12.0; prefira quad() para código novo.

Parâmetros:
  • f – objeto chamável que recebe um único float e retorna um float.

  • 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.simpson do 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 float e retorna um float.

  • 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 float e retorna um float.

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