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

fminsearch zum optimieren eines Fits

 

pepperminz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2016, 16:23     Titel: fminsearch zum optimieren eines Fits
  Antworten mit Zitat      
Hallo,

ich versuche fMRT Daten zu fitten.
Ich habe eine Funktion, die die squared residuals ausrechnet und lasse diese dann von fminsearch optimieren.


Code:
[parameter_final residuum]=fminsearch(@devsum5,parameter)



Das funktioniert auch, wenn die Funktion etwa so aussieht (meine tatsächlcihe Funktion ist komplizierte, das hier nur als Beispiel):

Code:

function d = devsum3(parameter) %parameter(A, T_0, a)

data=timecourse(fit_start:fit_ende);
       
    for j=1:0.05:30    
            if j >= parameter(2)
            d(j)=data(j)-(parameter(1)*((j-parameter(2))^(parameter(3)-1)
            else
            d(j)=data(j)-0;
            end
         
    end
   
   d=sum(d.^2) % sum of squared residuals



Wenn ich noch eine numerische Faltung einbaue, klappt es nicht mehr:


Code:
function d = devsum5(parameter)

data=timecourse(fit_start:fit_ende);
       
    for j=1:0.05:30    
            if j >= parameter(2)
            z(j)=(parameter(1)*((j-parameter(2))^(parameter(3)-1)
            else
            z(j)=0;
            end
         
    end
   
    convkernel=[ones(1,100)];
    fit=conv(convkernel, z);
       
    i=1:0.05:30;
    for k=1:length(i)
    d(k)=data(k)-fit(k);
    end
         
       
   d=sum(d.^2)



Woran liegt das? Ich habe doch immer noch eine Funktion die Parameter aufnimmt und damit die squared residuals berechnet. Also der Befehl fminsearch läuft immernoch durch, aber die Startparameter werden nicht variiert und die Optimierung gibt mir als engültige Parameter immer exakt die Startparameter raus.

Die fitfunktion die ich nutze, habe ich als Bild angehängt (der Vollständigkeit halber, die ist aus: Boynton, G et al.: Linear Systems Analysis of Functional Magnetic Resonance Imaging in Human V1. Journal of Neuroscience, 1996. 16(13):4207–4221.)
Vielleicht ist fminsearch gar nicht der richtige Weg das zu machen.

Ich hoffe das ist verständlich. Wäre euch dankbar für eure Hilfe!

formel_boynton.png
 Beschreibung:

Download
 Dateiname:  formel_boynton.png
 Dateigröße:  26.33 KB
 Heruntergeladen:  295 mal
formel_boynton.png
 Beschreibung:

Download
 Dateiname:  formel_boynton.png
 Dateigröße:  26.33 KB
 Heruntergeladen:  244 mal


Harald
Forum-Meister

Forum-Meister


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

hast du es mal mit anderen Startwerten versucht?

Falls du die Optimization Toolbox hast, versuch's mal mit lsqcurvefit . Falls du die Statistics Toolbox hast, mit lsqnonlin .

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.04.2016, 13:18     Titel:
  Antworten mit Zitat      
Hallo Harald,

Danke für deine schnelle Antwort.

ich habe es mit verschiedenen Startwerten probiert. Auch mit welchen, die sehr gut passen. Das schient nicht das Problem zu sein.

Ich habe auch die beiden anderen Toolboxen und werde es mal damit versuchen.
 
Harald
Forum-Meister

Forum-Meister


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

falls du weiterhin Probleme hast, bitte ein reproduzierbares Beispiel zur Verfügung stellen (d.h. inkl. Beispieldaten).

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.