scipy.optimize — Nullstellensuche und Minimierung

Das Submodul scipy.optimize stellt einfache Routinen zum Auffinden von Nullstellen und Minima benutzerdefinierter skalarer Funktionen bereit. Da jede Iteration in das vom Benutzer bereitgestellte Python-Callable zurückrufen muss, ist der Geschwindigkeitsgewinn gegenüber einer reinen Python-Implementierung gering (typischerweise etwa 2x).

Funktionen

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

Findet eine Nullstelle von f im Intervall [a, b] mit dem Bisektionsverfahren. f muss auf dem Intervall das Vorzeichen wechseln.

Parameter:
  • f – ein aufrufbares Objekt, das einen einzelnen float entgegennimmt und einen float zurückgibt.

  • a – linker Endpunkt des Intervalls.

  • b – rechter Endpunkt des Intervalls.

  • xtol – absolute Toleranz für die Lage der Nullstelle (Standardwert xtolerance).

  • maxiter – maximale Anzahl von Bisektionen (Standardwert 100).

Rückgabe:

die Lage der Nullstelle als float.

Verursacht:

ValueError – wenn 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 für nichtlineare Kurvenanpassung nach der Methode der kleinsten Quadrate (Levenberg-Marquardt). In der Modultabelle aus Gründen der API-Kompatibilität vorhanden, derzeit jedoch ein Platzhalter: Die Funktion akzeptiert und validiert ihre Argumente, gibt aber stets None zurück. Bevorzugen Sie fmin() oder externe Bibliotheken, bis diese Routine implementiert ist.

Parameter:
  • f – Modell-Callable f(x, *params) -> float.

  • xdata – 1-D-array-ähnliches Objekt unabhängiger Werte.

  • ydata – 1-D-array-ähnliches Objekt abhängiger Werte, gleiche Länge wie xdata.

  • p0 – 1-D-array-ähnliches Objekt anfänglicher Parameterschätzungen.

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

Findet die Position eines lokalen Minimums der skalaren Funktion f mit dem Downhill-Simplex-Verfahren (Nelder-Mead).

Parameter:
  • f – ein aufrufbares Objekt, das einen einzelnen float entgegennimmt und einen float zurückgibt.

  • x0 – Anfangsschätzung.

  • xatol – absolute Toleranz für die Position (Standardwert xtolerance).

  • fatol – absolute Toleranz für den Funktionswert (Standardwert xtolerance).

  • maxiter – maximale Anzahl von Iterationen (Standardwert 200).

Rückgabe:

die Lage des Minimums als float.

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

Findet eine Nullstelle der reellwertigen, skalaren Funktion f mit dem Newton-Raphson-Verfahren (Sekantenverfahren).

Parameter:
  • f – ein aufrufbares Objekt, das einen einzelnen float entgegennimmt und einen float zurückgibt.

  • x0 – Anfangsschätzung.

  • tol – absolute Toleranz für die Nullstelle (Standardwert xtolerance).

  • rtol – relative Toleranz für die Nullstelle (Standardwert rtolerance).

  • maxiter – maximale Anzahl von Iterationen (Standardwert 50).

Rückgabe:

die Lage der Nullstelle als float.