|
mana |

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 08.06.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.12.2016, 16:46
Titel: Fmincon
|
 |
Hallo
ich versuche grade ein Minimierungsproblem zu lösen.
Hierzu arbeite ich mit fmincon was auch ganz gut soweit funktioniert.
Ich habe meine Startwerte in einem Vektor x0
und meine Grenzen in den Vektoren x_lb und x_ub.
Soweit passt auch alles.
Wie kann ich fmincon aber sagen, dass z.B. als Lösung x2 < x3 gelten muss?
wenn das nicht einfach über die Grenzen angepasst werden kann, weil die Wertebereiche sich überschneiden?
Vielen Dank für eure Hilfe
Viele Grüße
mana
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 09.12.2016, 17:16
Titel:
|
 |
Hallo,
als lineare Ungleichung:
1*x2 - 1*x3 < 0
Grüße,
Harald
|
|
|
mana |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 08.06.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.12.2016, 11:26
Titel:
|
 |
Hallo Harald,
vielen Dank, das hat mich sehr weitergebracht.
Viele Grüße
Timo
|
|
|
mana |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 08.06.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.12.2016, 15:13
Titel:
|
 |
ich hätte nochmals eine kurze Frage zu den Inequalities.
Mittlerweile habe ich 2 Bedingungen.
Meine Vektoren A und B sehen wie im Folgenden dargestellt aus.
Das Problem ist, dass eine Bedingung eingehalten wird und die andere nicht.
Kann ich irgendwie erzwingen, dass beide Inequalities eingehalten werden müssen?
Was ich mathematisch übergeben möchte ist im Prinzip folgendes
Vielen Dank schonmal
Viele Grüße
Timo
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.12.2016, 15:28
Titel:
|
 |
Hallo,
es sollten immer alle Nebenbedingungen eingehalten werden.
Was ist denn die Statusmeldung von fmincon (im Command Window, bzw. das dritte Rückgabeargument exitflag)?
Grüße,
Harald
|
|
|
mana |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 08.06.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.12.2016, 16:13
Titel:
|
 |
Hallo Harald,
das exitflag ist auf 2 gesetzt.
Viele Grüße
Timo
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.12.2016, 16:23
Titel:
|
 |
Hallo,
das bedeutet an sich, dass alle Bedingungen erfüllt sind.
Was ist das Ergebnis von
wobei x_opt die Lösung durch fmincon ist?
Grüße,
Harald
|
|
|
mana |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 08.06.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.12.2016, 16:46
Titel:
|
 |
Hi Harald,
ich habe das Problem gefunden.
Weiß aber leider grade nicht wie ich das Lösen soll.
Und zwar normiere ich meinen Startvektor auf x0 auf [1, 1, 1, 1, 1, ....]
sodass ich am Ende einfach x_neu * x_norm rechnen muss um auf die Lösung zu kommen.
Das mache ich aus dem Grund, da meine Startwerte eine sehr hohe range haben z.B. x(1) = 4000 und x(2) = 2e-6 und ich gelesen habe, dass der Wertebereich ungefähr gleich bleiben soll.
Daher sind meine Inequalities natürlich unwirksam.
Da in meinem Fall wenn x(7) = x(14) = 1 automatisch auch
-2*x(7)+x(14) < 0 immer gilt.
Ich hoffe es wurde verständlich was das Problem ist.
Hast du eine Idee, wie ich das mit der Normierung lösen kann?
Oder bin ich falsch informiert und so eine Normierung ist gar nicht notwendig?
Viele Grüße
Timo
|
|
|
mana |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 08.06.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.12.2016, 17:47
Titel:
|
 |
Hallo
ich habe jetzt den Vektor A einfach mit x_norm multipliziert.
Das scheint zu funktionieren.
Dennoch würde mich interessieren ob so eine Normierung sinnvoll ist oder ob dieser Schritt unnötig ist.
Vielen Dank
Timo
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.12.2016, 18:07
Titel:
|
 |
Hallo,
eine Normierung ist in dem Fall definitiv sinnvoll.
Wenn du die Transformation händisch machst, dann ist es wichtig, alle beteiligten Informationen entsprechend zu anzupassen.
Alternativ kannst du die Option 'TypicalX' über optimoptions angeben. Da brauchst du weniger anzupassen und solltest den gleichen Effekt erzielen.
Grüße,
Harald
|
|
|
|
|
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.
|
|