|
|
Parameterfitting - Solver löst nicht bei allen Startwerten |
|
anleger92 |

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 24.06.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.06.2014, 15:29
Titel: Parameterfitting - Solver löst nicht bei allen Startwerten
|
 |
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ß
|
|
|
|
|
anleger92 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 24.06.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.06.2014, 16:11
Titel:
|
 |
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.
|
|
|
jac |

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 24.06.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.06.2014, 17:40
Titel:
|
 |
|
 |
|
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):
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.
|
|
|
anleger92 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 24.06.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.06.2014, 15:43
Titel:
|
 |
hey jac,
vielen dank für deine antwort, ich probier das mal aus.
|
|
|
|
|
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.
|
|