Effacer les filtres
Effacer les filtres

Fitting of autocorrelation function

21 vues (au cours des 30 derniers jours)
Philipp Steffen
Philipp Steffen le 5 Jan 2012
Hi,
I am not an expert in curve fitting and stuck with a problem where I want to fit a function to a measured data set in order to extract parameters.
The data set contains values of the autocorrelation of diffusing fluorescent particles (G(tau), measured using a confocal microscope. Tau is the correlation time.
I would like to fit the data set using the following equation:
G(tau) = 1/x(1)*x(2)*((1+tau/x(3))^-1)*(1+tau/x(4)^2*x(3))^(-1/2)
in order to extract the parameters x(1), x(2), X(3) and x(4)
In theory I should be able to fit the data set using the Levenberg-Marquardt non-linear least-squares fit. I was so far experimenting with lsqcurvefit and fminsearch to solve the problem but could not get a reasonable fit. I am not sure whether I have a conceptual problem here or whether it is a problem with my implementation. I therefore would appreciate your help a lot!
I tried so far:
beta0=[];
beta = lsqcurvefit(@fcspddeb,[4.09E3, 0.3, 0.1,3],fcsdatatrimmed(:,1),fcsdatatrimmed(:,2));
where fcspddeb is:
function [ G ] = fcspddeb( x, tau )
G = 1/x(1)*x(2)*((1+tau/x(3)).^-1).*(1+tau/x(4)^2*x(3)).^(-1/2)
end
This gives me a completely wrong fit.
Thanks a lot for your help in advance,
Philipp
  2 commentaires
bym
bym le 6 Jan 2012
please format your code. for functions returning one variable, the brackets are not necessary, but I don't think that is the problem. Can you post a small subset of fcsdatatrimmed ?
Philipp Steffen
Philipp Steffen le 10 Jan 2012
sorry for the formatting issue. This was my 1st post in the answer section.
Here is a subset of fcsdatatrimmed:
2.80000000000000e-06 0.000247287500000137
3.00000000000000e-06 0.000222712500000055
3.20000000000000e-06 0.000247654999999902
3.60000000000000e-06 0.000216259999999968
4.00000000000000e-06 0.000242887500000011
4.40000000000000e-06 0.000258062499999934
4.80000000000000e-06 0.000293670000000024
5.20000000000000e-06 0.000224647500000064
5.60000000000000e-06 0.000252660000000127
6.00000000000000e-06 0.000239894999999990
6.40000000000000e-06 0.000236425000000207
7.20000000000000e-06 0.000248582500000039
8.00000000000000e-06 0.000201032500000142
8.80000000000000e-06 0.000219357500000017
9.60000000000000e-06 0.000208382499999882
1.04000000000000e-05 0.000200205000000064
1.12000000000000e-05 0.000211342499999878
1.20000000000000e-05 0.000223410000000035
1.28000000000000e-05 0.000188237499999966
1.44000000000000e-05 0.000197192499999943

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Get Started with Curve Fitting Toolbox dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by