scipy.optimize — Búsqueda de raíces y minimización

El submódulo scipy.optimize proporciona rutinas sencillas para encontrar raíces y mínimos de funciones escalares definidas por el usuario. Dado que cada iteración debe volver a llamar al objeto invocable de Python proporcionado por el usuario, la ganancia de velocidad respecto a una implementación puramente en Python es modesta (típicamente alrededor de 2x).

Funciones

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

Encuentra una raíz de f en el intervalo [a, b] utilizando el método de bisección. f debe cambiar de signo en el intervalo.

Parámetros:
  • f – objeto invocable que recibe un único float y devuelve un float.

  • a – extremo izquierdo del intervalo.

  • b – extremo derecho del intervalo.

  • xtol – tolerancia absoluta sobre la ubicación de la raíz (valor predeterminado xtolerance).

  • maxiter – número máximo de bisecciones (valor predeterminado 100).

Devuelve:

la ubicación de la raíz como un float.

Muestra:

ValueError – si 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

Stub para el ajuste de curvas por mínimos cuadrados no lineales (Levenberg-Marquardt). Está presente en la tabla del módulo por compatibilidad de la API, pero actualmente es un marcador de posición: acepta y valida sus argumentos, pero siempre devuelve None. Prefiera fmin() o bibliotecas externas hasta que esta rutina esté implementada.

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

  • xdata – objeto tipo matriz 1-D de valores independientes.

  • ydata – objeto tipo matriz 1-D de valores dependientes, de la misma longitud que xdata.

  • p0 – objeto tipo matriz 1-D de estimaciones iniciales de los parámetros.

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

Encuentra la posición de un mínimo local de la función escalar f utilizando el método del símplex descendente (Nelder-Mead).

Parámetros:
  • f – objeto invocable que recibe un único float y devuelve un float.

  • x0 – estimación inicial.

  • xatol – tolerancia absoluta sobre la posición (valor predeterminado xtolerance).

  • fatol – tolerancia absoluta sobre el valor de la función (valor predeterminado xtolerance).

  • maxiter – número máximo de iteraciones (valor predeterminado 200).

Devuelve:

la ubicación del mínimo como un float.

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

Encuentra un cero de la función escalar de valor real f mediante el método de Newton-Raphson (secante).

Parámetros:
  • f – objeto invocable que recibe un único float y devuelve un float.

  • x0 – estimación inicial.

  • tol – tolerancia absoluta sobre la raíz (valor predeterminado xtolerance).

  • rtol – tolerancia relativa sobre la raíz (valor predeterminado rtolerance).

  • maxiter – número máximo de iteraciones (valor predeterminado 50).

Devuelve:

la ubicación de la raíz como un float.