scipy.optimize — Recherche de racines et minimisation

Le sous-module scipy.optimize fournit des routines simples pour trouver les racines et les minima de fonctions scalaires définies par l’utilisateur. Comme chaque itération doit rappeler l’objet appelable Python fourni par l’utilisateur, le gain de vitesse par rapport à une implémentation en pur Python est modeste (typiquement environ 2x).

Fonctions

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

Trouve une racine de f dans l’encadrement [a, b] à l’aide de la méthode de bissection. f doit changer de signe sur l’intervalle.

Paramètres:
  • f – objet appelable prenant un unique float et renvoyant un float.

  • a – extrémité gauche de l’encadrement.

  • b – extrémité droite de l’encadrement.

  • xtol – tolérance absolue sur la position de la racine (par défaut xtolerance).

  • maxiter – nombre maximal de bissections (par défaut 100).

Renvoie:

la position de la racine sous forme de float.

Lève:

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

Ébauche pour l’ajustement de courbe par moindres carrés non linéaires (Levenberg-Marquardt). Présente dans la table du module à des fins de compatibilité d’API mais actuellement un simple espace réservé : elle accepte et valide ses arguments mais renvoie toujours None. Préférez fmin() ou des bibliothèques externes tant que cette routine n’est pas implémentée.

Paramètres:
  • f – modèle appelable f(x, *params) -> float.

  • xdata – objet de type tableau 1-D de valeurs indépendantes.

  • ydata – objet de type tableau 1-D de valeurs dépendantes, de même longueur que xdata.

  • p0 – objet de type tableau 1-D d’estimations initiales des paramètres.

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

Trouve la position d’un minimum local de la fonction scalaire f à l’aide de la méthode du simplexe descendant (Nelder-Mead).

Paramètres:
  • f – objet appelable prenant un unique float et renvoyant un float.

  • x0 – estimation initiale.

  • xatol – tolérance absolue sur la position (par défaut xtolerance).

  • fatol – tolérance absolue sur la valeur de la fonction (par défaut xtolerance).

  • maxiter – nombre maximal d’itérations (par défaut 200).

Renvoie:

la position du minimum sous forme de float.

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

Trouve un zéro de la fonction scalaire à valeurs réelles f par la méthode de Newton-Raphson (de la sécante).

Paramètres:
  • f – objet appelable prenant un unique float et renvoyant un float.

  • x0 – estimation initiale.

  • tol – tolérance absolue sur la racine (par défaut xtolerance).

  • rtol – tolérance relative sur la racine (par défaut rtolerance).

  • maxiter – nombre maximal d’itérations (par défaut 50).

Renvoie:

la position de la racine sous forme de float.