scipy.optimize — Rotsökning och minimering

Undermodulen scipy.optimize tillhandahåller enkla rutiner för att hitta rötter och minima till användardefinierade skalära funktioner. Eftersom varje iteration måste anropa tillbaka till den användartillhandahållna Python-funktionen är hastighetsvinsten jämfört med en ren Python-implementation blygsam (vanligtvis omkring 2x).

Funktioner

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

Hittar en rot till f i intervallet [a, b] med halveringsmetoden. f måste byta tecken på intervallet.

Parametrar:
  • f – anropsbar funktion som tar en enda float och returnerar en float.

  • a – intervallets vänstra ändpunkt.

  • b – intervallets högra ändpunkt.

  • xtol – absolut tolerans för rotens läge (standard xtolerance).

  • maxiter – maximalt antal halveringar (standard 100).

Returer:

rotens läge som en float.

Höjer:

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

Platshållare för icke-linjär minsta-kvadrat-kurvanpassning (Levenberg-Marquardt). Finns i modultabellen för API-kompatibilitet men är för närvarande en platshållare: den accepterar och validerar sina argument men returnerar alltid None. Föredra fmin() eller externa bibliotek tills denna rutin har implementerats.

Parametrar:
  • f – anropsbar modell f(x, *params) -> float.

  • xdata – 1-D matrisliknande av oberoende värden.

  • ydata – 1-D matrisliknande av beroende värden, samma längd som xdata.

  • p0 – 1-D matrisliknande av initiala parameterskattningar.

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

Hittar läget för ett lokalt minimum av den skalära funktionen f med nedförsbacks-simplexmetoden (Nelder-Mead).

Parametrar:
  • f – anropsbar funktion som tar en enda float och returnerar en float.

  • x0 – initial gissning.

  • xatol – absolut tolerans för läget (standard xtolerance).

  • fatol – absolut tolerans för funktionsvärdet (standard xtolerance).

  • maxiter – maximalt antal iterationer (standard 200).

Returer:

minimats läge som en float.

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

Hittar ett nollställe till den reellvärda, skalära funktionen f med Newton-Raphsons metod (sekantmetoden).

Parametrar:
  • f – anropsbar funktion som tar en enda float och returnerar en float.

  • x0 – initial gissning.

  • tol – absolut tolerans för roten (standard xtolerance).

  • rtol – relativ tolerans för roten (standard rtolerance).

  • maxiter – maximalt antal iterationer (standard 50).

Returer:

rotens läge som en float.