.minimize

Die Funktion NonlinearProgramming.minimize(f, z) erwartet folgende (verpflichtende) Argumente:

ArgumentDatentypHinweis
fFunktion-
zDatenfeldStartwert als Vektor

Ausgehend von der Startlösung z wird die Zielfunktion f minimiert. Falls das Verfahren gegen ein lokales Minimum konvergiert, wird das (lokale) Minimum als Datenfeld (Vektor) zurückgegeben. Wird eine maximale Anzahl an Iterationen erreicht, ohne dass zuvor ein lokales Minimum gefunden wird, so erscheint eine Warnung und es wird die bislang beste Lösung zurückgegeben. Ist das Problem umbeschränkt oder numerisch schlecht gestellt, so wird eine entsprechende Zeichenkette ausgegeben.

Es können folgende Optionen verwendet werden:

VariableDatentypHinweisDefault-Wert
methodZeichenkettenelder-mead oder gradientnelder-mead
maximal_iterationsZahlganzzahlig, positiv1000
accuracyZahlpositiv0.000001

Mittels method kann definiert werden, ob der Nelder-Mead Algorithmus oder ein Gradientenverfahren als Solver verwendet wird. maximal_iterations definiert die maximale Anzahl an Iterationen und accuracy gibt die Lösungsgenauigkeit vor.

❌ Achtung️ ❌

Im Allgemeinen kann nicht davon ausgegangen werden, dass ein globales Optimum bestimmt wird.

Beispiel
Das folgende Beispiel löst ein nichtlineares Optimierungsproblem, wobei die Startlösung zufällig generiert wird. Tipp: Verwende als Solver das Gradientenverfahren und aktualisiere die Vorschau.
Beispiel
Jede Variable der Zielfunktion ist als einzelnes Argument bei der Definition der Funktion f anzugeben. Der Rückgabewert von NonlinearProgramming.minimize ist jedoch ein Datenfeld (Vektor). Um dennoch die Zielfunktion möglichst einfach auswerten zu können, kann die JavaScript-Funktion apply verwendet werden, sodass die Elemente des Datenfeldes als einzelne Argumente der Funktion f übergeben werden.
Beispiel
Bei einer Zielfunktion mit nur einer Variablen wird die bestimmte Lösung nicht als Vektor, sondern als Zahl zurückgegeben:
.maximize