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

Parameterfitting - Solver löst nicht bei allen Startwerten

 

anleger92
Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 24.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2014, 15:29     Titel: Parameterfitting - Solver löst nicht bei allen Startwerten
  Antworten mit Zitat      
Hallo Leute,

ich bin neu hier im Forum und hoffe, dass ihr mir weiterhelfen könnt.

Wie im Titel bereits erwähnt geht es um Parameteroptimierung.
Und zwar hab ich das Problem, dass die Optimierungsfunktion (lsqcurvefit) abhängig von den eingegebenen Startwerten immer verschiedene Parameterwerte als Lösung herausbekommt. Das ist erstmal nicht so problematisch. Machmal ist es jedoch auch so, dass gar keine Lösung herauskommt, weil die Startwerte so gewählt sind, dass nicht alle Bedingungen erfüllt sind.

Für diesen Fall möchte ich eine kleine Funktion schreiben, die dann die Startparameter selbst variiert, bis die Bedingungen zum Lösen der lsqcurvefit funktion erfüllt sind.
Ich hoffe ich konnte mich mehr oder weniger verständlich ausdrücken.

Jedoch weiß ich nicht genau wie das geht.

Ich wäre für eure Hilfe dankbar.

Lieben Gruß
Private Nachricht senden Benutzer-Profile anzeigen


anleger92
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 24.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2014, 16:11     Titel:
  Antworten mit Zitat      
Ich hoffe, dass das Thema klar ist, ansonsten fragt einfach.
Ich erwarte auch keine kompletten Lösungen, nur ein paar Hilfestellungen, da ich neu bin.
Private Nachricht senden Benutzer-Profile anzeigen
 
jac
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 24.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2014, 17:40     Titel:
  Antworten mit Zitat      
Du könntest z.B. das exit-Flag von lsqcurvefit auslesen und entsprechend weiter verfahren. Dafür rufst du lsqcurvefit auf gemäß (die Residuennorm und die Residuen müssen ja nicht weiter beachtet werden, je nachdem was du machen willst):
Code:

[x, resnorm, residual, exitflag] = lsqcurvefit(@function,x0,xdata,ydata,lb,ub,options)
 

Das exit-Flag wird von lsqcurvefit entsprechend des Grundes für den Iterations-Abbruch zurückgegeben. Dabei ist:

    1 - Konvergenz der Loesung
    2 - Veraenderung in x kleiner als Toleranz
    3 - Veraenderung des Residuums kleiner als Toleranz
    4 - Betrag der Suchrichtung kleiner als Toleranz
    0 - Anzahl an Iterationen ueberschritten
    -1 - Abbruch durch die Output-Funktion
    -2 - die Problemstellung ist unplausibel
    -4 - ungünstige Konditionierung verhindert weitere Optimierung

Im einfachsten Fall prüfst du also ob das exitflag ungleich 1 ist (in dem Fall konvergiert die Lösung aus irgendeinem Grund nicht) und variierst nach einem zu überlegenden Prinzip automatisch die Parameter nach oben oder unten und guckst wieder was passiert. Im komplizierteren Fall kann man sich noch überlegen bei welchem Flag-Wert man was unternimmt.
Private Nachricht senden Benutzer-Profile anzeigen
 
anleger92
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 24.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2014, 15:43     Titel:
  Antworten mit Zitat      
hey jac,

vielen dank für deine antwort, ich probier das mal aus.
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.