scipy.integrate — Integração numérica

O submódulo scipy.integrate fornece rotinas de integração numérica para funções reais de uma única variável. 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.

Numerical integration works best with float64 math enabled. With float32 math the routines still work, with reduced precision. The required error tolerance can be specified via the eps keyword argument; the default is the compile-time etolerance value (1e-14 for fp64, 1e-8 for fp32).

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 utilizando uma quadratura adaptativa de Gauss-Kronrod (G10, K21). Este é o integrador de uso geral recomendado.

Parâmetros:
  • f – callable que aceita um único float e devolve um float.

  • a – limite inferior de integração.

  • b – limite superior de integração.

  • order – ordem de integração (predefinição 5).

  • eps – tolerância de erro (predefinição etolerance).

Retorno:

uma 2-tupla (result, error) de floats com o valor do 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 utilizando 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. Note que scipy.integrate.romberg está descontinuado no CPython desde o SciPy 1.12.0; prefira quad() para novo código.

Parâmetros:
  • f – callable que aceita um único float e devolve um float.

  • a – limite inferior de integração.

  • b – limite superior de integração.

  • steps – número de passos (predefinição 100).

  • eps – tolerância de erro (predefinição etolerance).

Retorno:

o valor do integral como 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 utilizando a regra de Simpson adaptativa. Ao contrário do scipy.integrate.simpson do CPython, esta função aceita um callable e determina internamente o espaçamento das amostras, em vez de receber um array de valores de função pré-calculados.

Parâmetros:
  • f – callable que aceita um único float e devolve um float.

  • a – limite inferior de integração.

  • b – limite superior de integração.

  • steps – número de passos (predefinição 100).

  • eps – tolerância de erro (predefinição etolerance).

Retorno:

o valor do integral como 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 utilizando a família de quadraturas Tanh-Sinh, Sinh-Sinh e Exp-Sinh (exponencial dupla). Esta é a rotina a utilizar quando o integrando tem singularidades ou derivadas infinitas nos extremos, sendo a única rotina neste submódulo que aceita limites de integração infinitos (por exemplo, -np.inf, np.inf).

Parâmetros:
  • f – callable que aceita um único float e devolve 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 (predefinição 6).

  • eps – tolerância de erro (predefinição etolerance).

Retorno:

uma 2-tupla (result, error) de floats com o valor do integral e uma estimativa de erro.