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

Optimization Toolbox: fmincon Parametersuche liefert keine s

 

InLR
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.06.08
Wohnort: Weinheim
Version: R2010a
     Beitrag Verfasst am: 21.06.2009, 20:04     Titel: Optimization Toolbox: fmincon Parametersuche liefert keine s
  Antworten mit Zitat      
Hallo,

ich habe ein Problem bei dem ich nicht sicher bin ob der von mir gewählte Ansatz, Minimierung mittels fmincon, überhaupt zum Erfolg führen kann. Hier die Details.

Es liegen 1440 Messwerte vor und ich möchte diese Kurve mit einer variablen Anzahl (<10) von linearen Abschnitten approximieren. Es dient dazu mit möglichst wenigen Messungen einen vergleichbaren Parameter zu ermitteln wie mit der kontinuierlichen Methode. Hierzu versuche ich die Startzeitpunkte der Geraden so zu legen das die Fehlerquadratsumme zwischen gemessener und interpolierter Kurve minimal wird.

Die Kostenfunktion sieht so aus:
Code:

function f = CostFunc2(x, Mreal)

% erzeuge aus den X-Werten einen Index auf die originalen Daten
TimeRef = [1, unique(round(x)), length(Mreal)];
DataRef = Mreal(TimeRef);
Msim    = interp1(TimeRef, DataRef, [1:length(Mreal)], 'linear');

DeltaVec2 = (Msim - Mreal).^2;
f         = sum( DeltaVec2(not(isnan(DeltaVec2))) );
 


Der Aufruf erfolgt so:
Code:

options = optimset(options,'TolFun' ,1e-12);
options = optimset(options,'TolCon' ,1e-12);

lB = [1:length(lB)] .* 15;
uB = 1440 - fliplr(lB);

x = fmincon(@(x) CostFunc2(x, Mreal), x0, [], [], [], [], lB, uB, [], options);
 

Die Startwerte werden durch eine Raster-Suche bestimmt und sehen eigentlich nicht zu schlecht aus. Aber ich kann das natürlich mit einer geringen Zeitauflösung machen. Dummerweise stellt fmincon seine Tätigkeit mit "Optimization terminated: first-order optimality measure less than options.TolFun " vor erreichen eines Optimums (zumindes nach meiner Definituon) ein. Ein Bild der ersten Runde findet sich als Anhang.

Da ich mich als Chemiker eher mit Regressionen auskenne (bevorzugt linear Wink) habe ich mich für ein Minimierungsverfahren entschieden. Bei all den Problemen den Solver zur Mitarbeit zu bewegen scheint mir, es ist vielleicht nicht das richtige Werkzeug.

Kritiken, Hinweise, Vorschläge sind extrem willkommen

Danke
InLR

FirstRound.jpg
 Beschreibung:

Download
 Dateiname:  FirstRound.jpg
 Dateigröße:  21.39 KB
 Heruntergeladen:  668 mal
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 - 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.