|
Lenard |

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 06.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.02.2014, 18:06
Titel: Anwendung fmincon
|
 |
Hallo Leute,
ich versuche gerade ein Minimierungsproblem mit Matlab zu lösen.
Das Problem: min x²+y²+4*z²-3 unter der Nebenbedingung x-y-z-2<0.
Die Funktion hab ich in einem m-file "objfun" und die Nebenbedingung in einem m-file constraint gespeichert. Im Kommandofenster schreibe ich nun:
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.02.2014, 21:05
Titel:
|
 |
Hallo,
die eckigen Klammern sind unsymmetrisch gesetzt. Der Befehl kann so also sicher nicht erfolgreich ausgeführt werden.
Vor allem aber: welche Warnung bekommst du denn?
quadprog wäre hier besser geeignet als fmincon, da es speziell für diese Problemklasse gedacht ist.
Grüße,
Harald
|
|
|
Lenard |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 06.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 12:59
Titel:
|
 |
Hallo Harald,
bei den Klammern hab ich mich nur vertippt. Ich kann leider nur an den Rechnern der Uni Matlab benutzen, sodass ich leider deinen Vorschlag erst am Montag versuchen bzw die Warnung posten kann. Trotzdem schon mal vielen Dank ich werde es mit dem anderen Befehl auf jeden Fall versuchen
Ich habe da doch noch eine Frage zu deinem Vorschlag.
Der Befehl quadprog ist für Funktionen ausgelegt der Form 0.5x'Qx + q'x. In meiner Funktion taucht allerdings am Ende ein "-3" auf. Wo definiere ich das hier?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 16:22
Titel:
|
 |
Hallo,
Konstante Terme können für die Suche des x-Werts des Minimums vernachlässigt werden, da sie ja nur die gesamte Funktion nach oben oder unten verschieben.
Grüße,
Harald
|
|
|
Lenard |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 06.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 16:42
Titel:
|
 |
Das heißt, ich muss den Funktionswert beim Minimum um die Konstante erweitern oder verringern, also hier -3 rechnen, oder? Ich muss danach auch so noch mit dem Wert weiter rechnen, kann ich einfach mit fval darauf zugreifen?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 17:47
Titel:
|
 |
Hallo,
ja, das zweite Rückgabeargument von quadprog (fval) gibt dir den Wert der Zielfunktion für das Minimum zurück.
Wenn du möchtest, kannst du die Konstante dann nachträglich abziehen.
Grüße,
Harald
|
|
|
Lenard |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 06.02.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 18:34
Titel:
|
 |
Hallo,
vielen Dank für deine Hilfe. Ich werde am Montag alles ausprobieren Du hast mir wirklich sehr geholfen.
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|