scipy.optimize — Busca de raízes e minimização

O submódulo scipy.optimize fornece rotinas simples para encontrar raízes e mínimos de funções escalares definidas pelo usuário. Como cada iteração precisa retornar ao objeto chamável do Python fornecido pelo usuário, o ganho de velocidade em relação a uma implementação em Python puro é modesto (tipicamente cerca de 2x).

Funções

scipy.optimize.bisect(f: Callable[[float], float], a: float, b: float, *, xtol: float = xtolerance, maxiter: int = 100) float

Encontra uma raiz de f no intervalo [a, b] usando o método da bisseção. f deve mudar de sinal no intervalo.

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

  • a – extremo esquerdo do intervalo.

  • b – extremo direito do intervalo.

  • xtol – tolerância absoluta na localização da raiz (padrão xtolerance).

  • maxiter – número máximo de bisseções (padrão 100).

Retorna:

a localização da raiz como um float.

Levanta:

ValueError – se f(a) * f(b) > 0.

scipy.optimize.curve_fit(f: Callable[..., float], xdata: ndarray | list | tuple, ydata: ndarray | list | tuple, p0: ndarray | list | tuple, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int | None = None) None

Esboço para ajuste de curva por mínimos quadrados não lineares (Levenberg-Marquardt). Presente na tabela do módulo por compatibilidade de API, mas atualmente um marcador de posição: aceita e valida seus argumentos, mas sempre retorna None. Prefira fmin() ou bibliotecas externas até que esta rotina seja implementada.

Parâmetros:
  • f – modelo chamável f(x, *params) -> float.

  • xdata – objeto array-like unidimensional de valores independentes.

  • ydata – objeto array-like unidimensional de valores dependentes, do mesmo comprimento que xdata.

  • p0 – objeto array-like unidimensional de estimativas iniciais dos parâmetros.

scipy.optimize.fmin(f: Callable[[float], float], x0: float, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int = 200) float

Encontra a posição de um mínimo local da função escalar f usando o método do simplex descendente (Nelder-Mead).

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

  • x0 – estimativa inicial.

  • xatol – tolerância absoluta na posição (padrão xtolerance).

  • fatol – tolerância absoluta no valor da função (padrão xtolerance).

  • maxiter – número máximo de iterações (padrão 200).

Retorna:

a localização do mínimo como um float.

scipy.optimize.newton(f: Callable[[float], float], x0: float, *, tol: float = xtolerance, rtol: float = rtolerance, maxiter: int = 50) float

Encontra um zero da função escalar f de valores reais pelo método de Newton-Raphson (secante).

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

  • x0 – estimativa inicial.

  • tol – tolerância absoluta na raiz (padrão xtolerance).

  • rtol – tolerância relativa na raiz (padrão rtolerance).

  • maxiter – número máximo de iterações (padrão 50).

Retorna:

a localização da raiz como um float.