Das Ergebnis ist leider nicht das was das Optimum wäre, das Optimum wäre für den Fall 5. Es kommt aber 5.4 raus. In den Gleichungen ist es so, dass die Werte von x vom Index 1 bis einschließlich Index 8 unabhängig von den Werten von 9 bis 16 sind. Aber Sie beeinflussen sich gegenseitig durch die Minimumsuche.
Ich hab auch versucht das ganze in ein MinMax Problem umzuformen, habs aber auch nicht geschafft.
ich x0 mit den ergebnissen von x nach dem ersten aufruf der funktion
fmincon überschrieben und die funktion nochmal aufgerufen.
siehe da, die optimale lösung kam raus.
die Statusmeldung des Optimierers sollte dir hier einen entscheidenden Hinweis liefern, wo das Problem ist. Wenn der Optimierer abbricht, weil eine Toleranz unterschritten wurde, dann bietet es sich an, diese Toleranz über die Optionen (letztes Argument des Lösers; siehe auch optimset) herunterzusetzen.
Meine Vermutung ist, dass in deinem Problem so etwas wie ein Sattelpunkt vorliegt und MATLAB in diesen hineinläuft.
Falls dein Problem wie es mir scheint linear ist, bietet sich die Verwendung von linprog an, ein Löser, der genau für diese Problemklasse gedacht ist.
Grundsätzlich sollte man sich darüber im klaren sein, dass in der Optimization Toolbox eine *lokale* Minimum-Suche stattfindet. Wird nach einem globalen Maximum gesucht, müssen ausreichend gute Startwerte zur Verfügung stehen oder man muss auf die Global Optimization Toolbox ausweichen.
Wenn die Komponenten 1-8 und 9-16 keine Interaktion haben, könnte man das auch in 2 vollkommen voneinander unabhängige Minimierungsprobleme aufspalten. Das dürfte deutlich leichter / schneller zu lösen sein.
Grüße,
Harld
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.