Borrar filtros
Borrar filtros

Calculating the error on a non-linear least squares fit

6 visualizaciones (últimos 30 días)
Karl
Karl el 23 de Abr. de 2014
Hi, so I'm currently running a program which fits some noisy data to a monoexponential function using a non-linear least squares fit. I know that the equation can be linearized by taking a logarithm, but since the data is noisy and the curve decays to zero I've found that a non-linear least squares fits the best (to avoid taking the logarithm of very small and/or negative values). Here is my fitting code:
s = fitoptions('Method','NonlinearLeastSquares',...
'Lower',[0.00001,1E-3],...
'Upper',[100,1],...
'Startpoint',[0.8 1/40]);
f = fittype('a*exp(-x*b)','options',s);
fitresults = fit(t',S',f);
ci = confint(fitresults,0.6827);
R2Values(counterTE,counterTR) = fitresults.b;
R2Error(counterTE,counterTR) = (ci(2,2)-ci(1,2))/2;
I believe this is right and I get reasonable values for both R2 (relaxation rate) and the error on it. But what I am curious is how exactly matlab calculates the error on the fit parameters. This is quite important for my particular application because I'm interested in the noise properties. If possible I was wondering if anyone knew the equation matlab used to calculate the error (intuitively I feel like it must use the residual), so that I could actually calculate the error myself. Thanks very much in advance!

Respuestas (0)

Categorías

Más información sobre Get Started with Curve Fitting Toolbox en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by