minimize(method=’SLSQP’)#
- scipy.optimize.minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None)
Minimiert eine skalare Funktion von einer oder mehreren Variablen mittels Sequential Least Squares Programming (SLSQP).
- Parameter:
- ftolfloat
Präzisionsziel für den Wert von f im Stoppkriterium. Dieser Wert steuert die endgültige Genauigkeit für die Überprüfung verschiedener Optimalitätsbedingungen; der Gradient des Lagrange-Multiplikators und die absolute Summe der Einschränkungsverletzungen sollten niedriger sein als
ftol. Ebenso werden die berechnete Schrittgröße und die Änderungen der Zielfunktion gegen diesen Wert geprüft. Standard ist 1e-6.- epsfloat
Schrittgröße, die für die numerische Approximation des Jacobians verwendet wird.
- dispbool
Auf True setzen, um Konvergenzmeldungen auszugeben. Wenn False, wird verbosity ignoriert und auf 0 gesetzt.
- maxiterint
Maximale Anzahl von Iterationen.
- finite_diff_rel_stepNone oder array_like, optional
Wenn
jac in ['2-point', '3-point', 'cs']dann die relative Schrittgröße, die für die numerische Approximation von jac verwendet werden soll. 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ürmethod='3-point'wird das Vorzeichen von h ignoriert. Wenn None (Standard), dann wird die Schrittgröße automatisch ausgewählt.- 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.
- Rückgabe:
- resOptimizeResult
Das Optimierungsergebnis, dargestellt als ein
OptimizeResult-Objekt. In diesem wörterbuchähnlichen Objekt sind die folgenden Felder von besonderer Bedeutung:xdas Lösungsarray,successein Boolesches Flag, das anzeigt, ob der Optimizer erfolgreich beendet wurde,message, das den Grund für die Beendigung beschreibt, undmultipliers, das die Karush-Kuhn-Tucker (KKT)-Multiplikatoren für die QP-Approximation enthält, die bei der Lösung des ursprünglichen nichtlinearen Problems verwendet wird. SieheNotesunten. Siehe auchOptimizeResultfür eine Beschreibung anderer Attribute.
Hinweise
Die KKT-Multiplikatoren werden im Attribut
OptimizeResult.multipliersals NumPy-Array zurückgegeben. Wenn die Dimension der Gleichheitsnebenbedingungen mitmeqund die der Ungleichheitsnebenbedingungen mitmineqbezeichnet wird, dann enthält der zurückgegebene Array-Slicem[:meq]die Multiplikatoren für die Gleichheitsnebenbedingungen, und die restlichenm[meq:meq + mineq]enthalten die Multiplikatoren für die Ungleichheitsnebenbedingungen. Die Multiplikatoren, die den Grenz-Ungleichheiten entsprechen, werden nicht zurückgegeben. Siehe [1] S. 321 oder [2] für eine Erklärung, wie diese Multiplikatoren zu interpretieren sind. Das interne QP-Problem wird mit den Methoden in [3] Kapitel 25 gelöst.Beachten Sie, dass wenn neue-Stil
NonlinearConstraintoderLinearConstraintverwendet wurden,minimizediese zuerst in alte-Stil Constraint-Wörterbücher umwandelt. Es ist möglich, dass eine einzelne neue-Stil-Einschränkung gleichzeitig sowohl Ungleichheits- als auch Gleichheitseinschränkungen enthält. Das bedeutet, dass, wenn es innerhalb einer einzelnen Einschränkung eine Mischung gibt, die zurückgegebene Liste der Multiplikatoren eine andere Länge als die ursprünglichen neuen-Stil-Einschränkungen haben wird.Referenzen
[1]Nocedal, J. und S J Wright, 2006, „Numerical Optimization“, Springer, New York.
[2]Kraft, D., „A software package for sequential quadratic programming“, 1988, Tech. Rep. DFVLR-FB 88-28, DLR Deutsches Zentrum für Luft- und Raumfahrt, Deutschland.
[3]Lawson, C. L. und R. J. Hanson, 1995, „Solving Least Squares Problems“, SIAM, Philadelphia, PA.