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

Curve fitting mit Boltzmann-Funktion?

 

ON

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.03.2009, 18:44     Titel: Curve fitting mit Boltzmann-Funktion?
  Antworten mit Zitat      
Hallo zusammen,

eine (vermutlich recht triviale) Frage zum Curve-Fitting:

ich versuche einen möglichst genauen Fit von Messdaten zu erreichen und würde dafür eine gerne eine eigene Funktion verwenden, von der ich mir gute Resultate erhoffe [sigmoidale Funktion: Boltzmann-Gleichung der Form y=(A1+A2)/(1+exp((x-x0)/dx)+A2) ]

(Anm: Soweit ich weiß beziehen sich A1 und A2 auf die minimalen/maximalen Werte der Messdaten.)

Wie realisiere ich dies denn am geschicktesten...?

Vielen Dank bereits im voraus!!

ON


Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 20.03.2009, 19:33     Titel:
  Antworten mit Zitat      
Schau mal in dem Thread hat spawnferkel Möglichkeiten aufgezeigt:

http://www.gomatlab.de/sinus-regres.....-t5370,highlight,fun.html
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
ON

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2009, 14:01     Titel:
  Antworten mit Zitat      
Hey Maddy,

ja das ist im Prinzip genau das, was ich suche. (vielen Dank schonmal für die schnelle Antwort)
Hatte mir die Suche nach den Variablen der Funktion mittels fminsearch und die Boltzmannfunktion als eigenständige function gedacht wie im Beispiel verwirklicht...
Habe probiert, das mal umzusetzten, leider verstehe ich den Ablauf noch nicht wirklich...

Hatte versucht die folgende Gleichung mit den Variablen a1 und a2, sowie den Messwerten x und y umzusetzen:

Code:
y=(a1-a2)./(1+exp((x-((a1+a2)/2)/0.01)))+a2;



Ob du mir das wohl nochmals näherbringen würdest? (oder noch einen passenden Link weißt)

Besten Dank
ON
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 23.03.2009, 00:36     Titel:
  Antworten mit Zitat      
Ich hab jetzt mal das Grundgerüst vom spawnferkel genommen, musst es dann einfach mit deinen daten ergänzen

Code:


% hier einmal x und y definieren

plot(x,y);
param=fminsearch(@fun,[1 1],[],x,y);  % der Vektor [1 1] enthält die Startparameter deiner Funktion, in param stehen dann die optimierten Parameter
fit=param(1)-param(2))./(1+exp((x-((param(1)+param(2))/2)/0.01)))+param(2); % einmal der fit ausgeführt mit den x-werten und den optimierten Parametern
hold all;
plot(x,fit);
legend('Original','Fit');
hold off;


function ret=fun(a,x,y)
yy=(a(1)-a(2))./(1+exp((x-((a(1)+a(2))/2)/0.01)))+a(2);
ret=sum(abs(y-yy));

 


Der Fit reagiert sehr empfindlich auf die Startparamter.
Ein anderer Fit-Algorithmus der stabiler läuft wäre LMA (man brauch allerdings die Symbolic Toolbox ):
http://itp.tugraz.at/wiki/index.php.....berg-Marquardt-mit-Matlab
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
ON

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.04.2009, 15:59     Titel:
  Antworten mit Zitat      
...lieber spät als nie:
besten Dank an dieser Stelle für die Hilfe und Mühe!

ON
 
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.