minimize(method=’Powell’)#
- 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 mithilfe des modifizierten Powell-Algorithmus.
- Parameter:
- funcallable
Die zu minimierende Zielfunktion
fun(x, *args) -> float
wobei
xein 1D-Array mit der Form (n,) ist undargsein Tupel von festen Parametern ist, die zur vollständigen Spezifikation der Funktion benötigt werden.- x0ndarray, Form (n,)
Anfangsschätzung. Array aus reellen Elementen der Größe (n,), wobei
ndie Anzahl der unabhängigen Variablen ist.- argstuple, optional
Zusätzliche Argumente, die an die Zielfunktion und ihre Ableitungen (fun, jac und hess Funktionen) übergeben werden.
- methodstr oder aufrufbar, optional
Die vorliegende Dokumentation ist spezifisch für
method='powell', aber andere Optionen sind verfügbar. Siehe Dokumentation fürscipy.optimize.minimize.- boundsSequenz oder
Bounds, optional Grenzen für Entscheidungsvariablen. Es gibt zwei Möglichkeiten, die Grenzen anzugeben
Instanz der Klasse
Bounds.Sequenz von Paaren
(min, max)für jedes Element in x. None wird verwendet, um keine Grenze anzugeben.
Wenn keine Grenzen angegeben werden, wird eine ungebundene Liniensuche verwendet. Wenn Grenzen angegeben werden und die Anfangsschätzung innerhalb der Grenzen liegt, dann liegen alle Funktionsauswertungen während des Minimierungsverfahrens innerhalb der Grenzen. Wenn Grenzen angegeben werden, die Anfangsschätzung außerhalb der Grenzen liegt und direc vollen Rang hat (oder auf dem Standardwert belassen wird), dann können einige Funktionsauswertungen während der ersten Iteration außerhalb der Grenzen liegen, aber alle Funktionsauswertungen nach der ersten Iteration werden innerhalb der Grenzen liegen. Wenn direc keinen vollen Rang hat, dann werden einige Parameter möglicherweise nicht optimiert und die Lösung liegt nicht garantiert innerhalb der Grenzen.
- optionsdict, optional
Ein Wörterbuch von Solver-Optionen. Alle Methoden akzeptieren die folgenden generischen Optionen
- maxiterint
Maximale Anzahl von Iterationen, die durchgeführt werden sollen. Abhängig von der Methode kann jede Iteration mehrere Funktionsauswertungen verwenden.
- dispbool
Auf True setzen, um Konvergenz-Meldungen auszugeben.
Siehe methodenspezifische Optionen für
method='powell'unten.- callbackcallable, optional
Nach jeder Iteration aufgerufen. Die Signatur lautet
callback(xk)
wobei
xkder aktuelle Parametervektor ist.
- Rückgabe:
- resOptimizeResult
Das Optimierungsergebnis, dargestellt als ein
OptimizeResultObjekt. Wichtige Attribute sind:xdas Lösungsarray,successein boolesches Flag, das angibt, ob der Optimierer erfolgreich beendet wurde, undmessage, das den Grund für die Beendigung beschreibt. SieheOptimizeResultfür eine Beschreibung anderer Attribute.
Siehe auch
Für die Dokumentation der restlichen Parameter siehe
scipy.optimize.minimize- Optionen:
- ——-
- dispbool
Auf True setzen, um Konvergenz-Meldungen auszugeben.
- xtolfloat
Relative Fehlertoleranz in der Lösung xopt, die für die Konvergenz akzeptabel ist.
- ftolfloat
Relative Fehlertoleranz in
fun(xopt), die für die Konvergenz akzeptabel ist.- maxiter, maxfevint
Maximal zulässige Anzahl von Iterationen und Funktionsauswertungen. Standardmäßig wird
N*1000verwendet, wobeiNdie Anzahl der Variablen ist, wenn weder maxiter noch maxfev gesetzt sind. Wenn sowohl maxiter als auch maxfev gesetzt sind, stoppt die Minimierung beim ersten erreichten Limit.- direcndarray
Anfängliche Menge an Richtungsvektoren für die Powell-Methode.
- return_allbool, optional
Auf True setzen, um eine Liste der besten Lösungen in jeder Iteration zurückzugeben.