minimize(method=’BFGS’)#
- scipy.optimize.minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None)
Minimierung einer skalaren Funktion von einer oder mehreren Variablen mittels des BFGS-Algorithmus.
Siehe auch
Für die Dokumentation der restlichen Parameter siehe
scipy.optimize.minimize- Optionen:
- ——-
- dispbool
Auf True setzen, um Konvergenz-Meldungen auszugeben.
- maxiterint
Maximale Anzahl durchzuführender Iterationen.
- gtolfloat
Erfolgreiche Beendigung, wenn die Norm des Gradienten kleiner als gtol ist.
- normfloat
Ordnung der Norm (Inf ist Maximum, -Inf ist Minimum).
- epsfloat oder ndarray
Wenn jac None ist, der absolute Schrittwert, der zur numerischen Approximation des Jacobi-Matrix mittels Vorwärtsdifferenzen verwendet wird.
- return_allbool, optional
Auf True setzen, um eine Liste der besten Lösungen in jeder Iteration zurückzugeben.
- finite_diff_rel_stepNone oder array_like, optional
Wenn
jac in ['2-point', '3-point', 'cs']dann die relative Schrittgröße, die zur numerischen Approximation des Jacobi-Matrix verwendet wird. Die absolute Schrittgröße wird berechnet alsh = rel_step * sign(x) * max(1, abs(x)), möglicherweise angepasst, um in die Grenzen zu passen. Fürjac='3-point'wird das Vorzeichen von h ignoriert. Wenn None (Standard) dann wird die Schrittgröße automatisch gewählt.- xrtolfloat, default: 0
Relative Toleranz für x. Erfolgreiche Beendigung, wenn die Schrittgröße kleiner als
xk * xrtolist, wobeixkder aktuelle Parametervektor ist.- c1float, Standard: 1e-4
Parameter für die Armijo-Bedingungsregel.
- c2float, Standard: 0.9
Parameter für die Krümmungsbedingungsregel.
- hess_inv0None oder ndarray, optional
Anfängliche Schätzung der inversen Hesse-Matrix, Form (n, n). Wenn None (Standard) dann wird die Identitätsmatrix verwendet.
- workersint, map-ähnlicher aufrufbarer Typ, optional
Ein map-ähnlicher aufrufbarer Typ, wie z.B. multiprocessing.Pool.map, zur parallelen Auswertung von numerischen Differenzierungen. Diese Auswertung erfolgt als
workers(fun, iterable).Hinzugefügt in Version 1.16.0.
Hinweise
Die Parameter c1 und c2 müssen
0 < c1 < c2 < 1erfüllen.Wenn die Minimierung nicht erfolgreich abgeschlossen wird, mit einer Fehlermeldung wie
Desired error not necessarily achieved due to precision loss, dann sollten Sie gtol auf einen höheren Wert setzen. Dieser Präzisionsverlust tritt typischerweise auf, wenn die numerische Differenzierung (Finite Differenzen) nicht ausreichend Präzision liefern kann, um das Abbruchkriterium gtol zu erfüllen. Dies kann vorkommen, wenn Sie mit einfacher Genauigkeit arbeiten und kein aufrufbares jac bereitgestellt wird. Für Probleme mit einfacher Genauigkeit scheint ein gtol von 1e-3 zu funktionieren.