|
|
Optimization Toolbox - fmincon - Parametergrenzen |
|
GastD |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.05.2009, 09:56
Titel: Optimization Toolbox - fmincon - Parametergrenzen
|
|
Hallo!
Folgendes Problem:
fmincon missachtet bei einer sonst scheinbar funktionierenden Optimierung die Paramtergrenzen.
Der Aufruf sieht so aus:
optparameter = fmincon(@(parameter)ziel(parameter),parameter0,[],[],[],[],lb,ub,@nebenbed,options);
und z.B. lb=[ 1 ; 2; 3];
Danke im voraus.
Grüße
|
|
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 15.05.2009, 10:02
Titel:
|
|
Hallo GastD,
als erstes fällt mir ein: Hält parameter0 die untere Schranke ein? fmincon hat manchmal Probleme, die zulässige Menge von außen zu erreichen. Ansonsten sieht der Algorithmus so aus, dass die Suchrichtung ein Kompromiss zwischen Verbesserung des Ziels und Einhaltung der Nebenbedingungen ist. Um die Nebenbedingungen zu betonen, könntest du statt ziel die Funktion 0.1*ziel verwenden. (Insgesamt sollten Zielfunktion und Nebenbedingungen möglichst die gleiche Größenordnung haben.)
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
GastD |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.05.2009, 10:13
Titel:
|
|
Wow, das ging schnell. Danke!
parameter0 liegt zwischen den Parametergrenzen lb und ub, da also kein Problem.
Die Nebenbedingung stellt eigentlich nicht wirklich eine starke Einschränkung dar (ist meistens inaktiv). Sollte also auch nicht das Problem sein(?).
Die Paramter werden oft direkt in der ersten Iteration viel zu groß (oder zu klein) gewählt, so als ob ich gar keine Grenzen angegeben hätte. Woran kann das wohl liegen?
Ich habe übrigens auch die Parameter, die zum Teil durchaus völlig verschiedene Größenordnungen haben, auf 1 skaliert.
Sehr eigenartig. Falls Dir noch was einfällt, wäre ich für jeden Hinweis dankbar.
Grüße
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 15.05.2009, 11:04
Titel:
|
|
Hallo GastD,
ich habe jetzt folgenden Parameter für fmincon gefunden:
Zitat: |
RelLineSrchBnd: Relative bound (a real nonnegative scalar value) on the line search step length such that the total displacement in x satisfies |delta_x(i)| <= RelLineSrchBnd * max(|x(i)|,|typicalx(i)|). This option provides control over the magnitude of the displacements in x for cases in which the solver takes steps that are considered too large. |
Der kann mittels optimset gesetzt werden. Ich habe das selbst noch nicht verwendet, aber vielleicht funktioniert es ja.
Ansonsten kannst Du auch gerne Deine Datei(en) anhängen, dann schau ich mal drüber.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
|
|
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 - 2024
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.
|
|