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

fmincon

 

freak1982
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 28.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2011, 18:25     Titel: fmincon
  Antworten mit Zitat      
Hi zusammen,

ich benutze die Funktion fmincon für die Zeitreihenanalyse.

Jetzt habe ich nur ein Problem, das die Funktion bei verschiedenen Zeitreihen und Einstellung in die Knie geht nach einigen Iterationen

Wenn ich dann überprüfe was schief gelaufen ist, dann es es immer so das eine vorgegebener Beschränkung (A und b bzw. Aeq und beq) vom Optimierer verletzt wurde, die ich aber gesetzt habe.

Gibt es irgendeinen Weg wie ich die Funktion vorsichtiger machen kann?
Bzw. muss ich in der zu optimierten Funktion die Restriktionen selbst überprüfen damit nichts schief geht?

Vielen Dank schon mal.
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: 29.08.2011, 19:22     Titel:
  Antworten mit Zitat      
Hallo,

was heißt "in die Knie geht"?

Die Nebenbedingungen werden nur mit einer gewissen Toleranz TolCon erfüllt, die über optimset eingestellt werden kann.

Zudem solltest du dir das dritte Rückgabeargument EXITFLAG ansehen. Zur Interpretation siehe die Doku von fmincon.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 28.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2011, 20:01     Titel:
  Antworten mit Zitat      
Hi Harald,

ich arbeite mit Dichtefunktionen und die sind nur bei gewissen Bereichen definiert.

Sie kann es sein obwohl ich
Code:
A =[-1 -1]
b=[0]


gesetzt habe, wird diese Bedingung beim rechnen verletzt.

Gibt es eine Möglichkeit fmincon zu sagen es gab eine Fehlermeldung - rechne mit vom Ursprungswert der Parameter bevor es zur Fehlermeldung kam weiter mit halber Schrittweite, oder so ähnlich.
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: 29.08.2011, 20:31     Titel:
  Antworten mit Zitat      
Hallo,

überprüf die Beschränkung doch einfach in der Zielfunktion und gib wenn einen höheren Wert zurück?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 28.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2011, 20:58     Titel:
  Antworten mit Zitat      
du meinst ich bau ne überprüfung direkt in die Zielfunktion ein, wenn
-parameter(1)-parameter(2)>0
dann parameter(2)=-parameter(1)?

Danke das du mir hilfst!!!
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: 29.08.2011, 21:24     Titel:
  Antworten mit Zitat      
Hallo,

das wäre eine Möglichkeit.
Ich dachte eher an einen Strafterm für das Verletzen der Nebenbedingung. Das kannst du vielleicht zusätzlich einbauen, da du sonst am Ende immer noch Lösungen bekommen wirst, die die Nebenbedingungen leicht verletzen.

Zudem würde ich darüber nachdenken, TolCon herunterzusetzen (über optimset).

Denkbare Alternative: die Ungleichung anpassen
Code:
A =[-1 -1]
b=[-1e-6]


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 28.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2011, 23:39     Titel:
  Antworten mit Zitat      
Hi Harald,

erst wenn ich

Code:


setze konvergieren alle zeitreihen.
und ab schluss ist die restriktion nicht mehr bindend. hat dies trotzdem einfluss auf die hessematrix?

ich brauch die für die standardfehler.
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: 30.08.2011, 08:32     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
konvergieren alle zeitreihen.

Wie äußert es sich, wenn sie "nicht konvergieren"?

Zitat:
und ab schluss ist die restriktion nicht mehr bindend.

Was meinst du damit? Die Nebenbedingung muss nicht mehr eingehalten werden? Verstehe ich nicht ganz.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 28.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 08:57     Titel:
  Antworten mit Zitat      
Hi Harald,

naja ja ich benutzte verschiedene Zeitreihenmodelle (ARMA, GJR-GARCH, etc.).

Und mit dieser Restriktion funktioniert die Maximum likelihood Schätzung.

Nicht bindend heißt das -parameter(2)-parameter(1)<<0

<<: deutlich kleiner. Dann wird die Restriktion nicht mehr theoretisch gebraucht.

Eine Restriktion wird nur gebraucht wenn am Ende

-parameter(2)=parameter(1) gilt.

Dann spricht man von bindend.
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: 30.08.2011, 10:02     Titel:
  Antworten mit Zitat      
Hallo,

wir drehen uns das im Kreis.

Was meinst du mit "die Schätzung funktioniert"? Insbesondere: wie äußert es sich, wenn die Schätzung nicht funktioniert bzw. woran merkst du das?

Die Hesse-Matrix dürfte unabhängig davon sein, ob die NB nun bindend/aktiv sind oder nicht. Sie bezieht sich ja nur auf die Zielfunktion.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 28.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2011, 10:12     Titel:
  Antworten mit Zitat      
Naja sonst bricht der Algorithmus ab, da die Restriktion verletzt wird und dann keine richtige Dichtefunktionwerte rauskommen.

Meines Erachtens haben die Restriktionen eine hohe Relevanz auf die Hessematrix, laut Hilfe fließend sie auch darin rein. Relevant wir sie vor allem wenn die Restriktion bindend ist.
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: 30.08.2011, 13:39     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Naja sonst bricht der Algorithmus ab, da die Restriktion verletzt wird und dann keine richtige Dichtefunktionwerte rauskommen.

Bevor wir hier weiter rumeiern: kannst du ein Codebeispiel für eine Zeitreihe zur Verfügung stellen, wo das Problem auftritt?

Zitat:
laut Hilfe fließend sie auch darin rein

kannst du das zitieren und/oder einen Link darauf posten?

Zitat:
Relevant wir sie vor allem wenn die Restriktion bindend ist.

Interessant ist aber doch nur die Hesse-Matrix für die Lösung, und da ist die Restriktion nach deiner Darstellung doch eben nicht bindend?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



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.