WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Probleme bei fmincon

 

Hans11
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2016, 17:54     Titel: Probleme bei fmincon
  Antworten mit Zitat      
Hallo Zusammen,

Ich habe eine Funktion, bei der ich nach 4 Variablen optimiere. Startpunkt ist x0=[0,0,0,0], ich habe ub und lb, sowie nichtlineare Ungleichheitsbedinungen.

Während der Optimierung kommt folgende Meldung:

fmincon stopped because it exceeded the function evaluation limit,
options.MaxFunEvals = 3000 (the default value).


Solver stopped prematurely.



Habt ihr mir einen Tipp?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.06.2016, 18:57     Titel:
  Antworten mit Zitat      
Hallo,

die Anzahl der Iterationen über optimoptions (in älteren Releases: optimset ) erhöhen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hans11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2016, 19:02     Titel:
  Antworten mit Zitat      
Das ist ja ein Traum wie schnell hier geantwortet wird.

Kannst du mir den Code posten? Ich weis nicht wie es formuliert wird. Wär cool (matlab 2015b)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.06.2016, 19:31     Titel:
  Antworten mit Zitat      
Hallo,

geht an sich aus der Doku hervor:

Code:
options = optimoptions(@fmincon,'MaxFunEvals',30000)

und options dann mit an fmincon übergeben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hans11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2016, 19:48     Titel:
  Antworten mit Zitat      
Hallo,

okay, dein Code funktioniert natürlich.
Jetzt kommt aber die Meldung:

fmincon stopped because it exceeded the function evaluation limit,
options.MaxFunEvals = 1000(the default value).


Kann ich die Anzahl der Iterationen noch höher setzen? Oder bekomme ich irgendwann Probleme?


Auch wenn ich eine sehr hohe Zahl einsetze kommt die Meldung.
Was kann ich jetzt noch probieren?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.06.2016, 20:17     Titel:
  Antworten mit Zitat      
Hallo,

fmincon stoppt bei dem Defaultwert (!) von 1000 Evaluationen, obwohl du 30000 angibst? Das klingt nicht schlüssig.
Hast du die Optionen denn an fmincon übergeben?

Zitat:
Kann ich die Anzahl der Iterationen noch höher setzen? Oder bekomme ich irgendwann Probleme?

In der Regel nur zeitliche. Dein Problem scheint allerdings das Setzen der Optionen zu sein. Wenn du deinen Code nicht bereitstellst, kann man dir dabei allerdings schlecht weiterhelfen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hans11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2016, 20:20     Titel:
  Antworten mit Zitat      
Code:
x0=[0,0,0,0];
 A = [];
 b = [] ;
 Aeq = [];
 beq = [];
 options = optimoptions(@fmincon,'MaxFunEvals',30000);


Ergebnis_ges=fmincon(@(x)Z_ges(x),x0,A,b,Aeq,beq,untereGrenze,obereGrenze,@(x)nleq(Fx_i,Fz_i,fzi_dyn,Fy_i,x),options);
 



genügt das?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.06.2016, 21:49     Titel:
  Antworten mit Zitat      
Hallo,

sieht an sich gut aus. Mich wundert sehr, dass du dann diese Meldung bekommst.

Für weitere Unterstützung bräuchte man wohl ein reproduzierbares Beispiel.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hans11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.06.2016, 19:34     Titel:
  Antworten mit Zitat      
hm, ist halt etwas arg komplex, sind einige funktionen -.-

Ist das denn sinnvoll wenn ich dir meine Scripte/Funktionen gebe?

Code:

Z_ges=@(x)  1/2*transpose([x(1);x(2);x(3);x(4)])*H_x_des*[x(1);x(2);x(3);x(4)]+transpose(c_x_des)*[x(1);x(2);x(3);x(4)]  +...
            1/2*transpose([x(1);x(2);x(3);x(4)])*H_y_des*[x(1);x(2);x(3);x(4)]+transpose(c_y_des)*[x(1);x(2);x(3);x(4)]  +...
            1/2*transpose([x(1);x(2);x(3);x(4)])*H_z_des*[x(1);x(2);x(3);x(4)]+transpose(c_z_des)*[x(1);x(2);x(3);x(4)]  +...    
            1/2*transpose([x(1);x(2);x(3);x(4)])*H_tireworkloadusage*[x(1);x(2);x(3);x(4)]+transpose(c_tireworkloadusage)*[x(1);x(2);x(3);x(4)]  +...
            10^(-normiert_alpha_hr)*1e1*(real(( tan((asin((Fy_i(4))./ (1.*mue*Fz_i(4)*  sqrt(max(1-((Fx_i(4)+x(4))/ (mue*fzi_dyn(4)))^2)))))      /Cy)/By))^2) +...
            10^(-normiert_alpha_hl)*1e1*(real(( tan((asin((Fy_i(3))./ (1.*mue*Fz_i(3)*  sqrt(max(1-((Fx_i(3)+x(3))/ (mue*fzi_dyn(3)))^2)))))      /Cy)/By))^2) ;


       
 x0=[0,0,0,0];
 A = [];
 b = [] ;
 Aeq = [];
 beq = [];
 options = optimoptions(@fmincon,'MaxFunEvals',100000);


Ergebnis_ges=fmincon(@(x)Z_ges(x),x0,A,b,Aeq,beq,untereGrenze,obereGrenze,@(x)nleq(Fx_i,Fz_i,fzi_dyn,Fy_i,x),options);
 


Hier nochmal das Skipt mit Funktion, hat jemand eine Idee wie ich die Fehlermeldung wegbekomme?

Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.06.2016, 22:45     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ist das denn sinnvoll wenn ich dir meine Scripte/Funktionen gebe?

Ja, weil ich sonst (wie gesagt) dein Problem nicht nachvollziehen kann.

Die Funktion wirkt übrigens recht umständlich. Was soll denn das ständige
Code:
transpose([x(1);x(2);x(3);x(4)])

??

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hans11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2016, 13:58     Titel:
  Antworten mit Zitat      
Hallo,

ich arbeite erst seit einigen Wochen mit Matlab, daher kommt sowas eben mal vor.
Wie kann ich es denn anders darstellen?


Das obige Problem habe ich aber zwischenzeitlich lösen können. Nun kommt folgende Meldung:

Local minimum possible. Constraints satisfied.

fmincon stopped because the size of the current step is less than
the default value of the step size tolerance and constraints are
satisfied to within the default value of the constraint tolerance.


Gibt es für dieses Problem auch eine Fmincon-Option? Danke für Eure Hilfe.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.06.2016, 14:30     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Wie kann ich es denn anders darstellen?

Entweder x ist schon ein Zeilenvektor, dann x .
Oder x ist ein Spaltenvektor, dann x' .
Wenn es flexibel gehalten werden muss, dann reshape(x, 1, [])

Zitat:
Gibt es für dieses Problem auch eine Fmincon-Option?

Woraus schließt du, dass es ein Problem gibt?
Die Meldung besagt kurz ausgedrückt, dass ein Minimum gefunden wurde.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hans11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2016, 14:34     Titel:
  Antworten mit Zitat      
hm, weil da steht: " Local minimum possible. Constraints satisfied. "

Das besagt, dass es sich um ein mögliches Minimum handelt.. daher meine Frage...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.06.2016, 15:56     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Das besagt, dass es sich um ein mögliches Minimum handelt.. daher meine Frage...

Das ist bei Gradientenverfahren immer so.
Man benötigt also ausreichend gute Startwerte, damit das Verfahren (wie meist gewünscht) zum globalen Minimum hin konvergiert.
Eine Alternative sind die globalen Löser aus der Global Optimization Toolbox. Eine Garantie, das globale Minimum zu finden, bieten aber auch diese nicht.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hans11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 05.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2016, 19:28     Titel:
  Antworten mit Zitat      
Hallo Zusammen,

nun habe ich wieder eine neue Meldung bekommen:

Converged to an infeasible point.

fmincon stopped because the size of the current step is less than
the default value of the step size tolerance but constraints are not
satisfied to within the default value of the constraint tolerance.



Hat mir hier jemand einen Tipp?!

Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.