fitting 3 sets of data simultaneously using "lsqcurvefit"
Afficher commentaires plus anciens
I have a set of data in triplicates (attached). I want to fit the exponential part of these 3 sets simultaneously using "lsqcurvefit" and get one x(1) and x(2). I have included "t" and "or" data in the attached file and here is my function:
function y=or(x,t)
y=((0.282*x(2))-0.24)*x(1)*exp((x(2)-0.24)*t)
I managed to fit each data set individually and average x(1) and x(2) and calculte the STdev but if I could fit 3 sets simultenausly using "lsqcurvefit" would be better.
I would be grateful if you kindly help me.
Réponses (2)
Torsten
le 18 Mai 2022
Define
T = [t1;t2;t3]
and
OR = [or1;or2;o3]
and treat
[T,OR]
just like you treated
[t1;or1],[t2;or2],[t3;or3]
.
What's the problem ?
9 commentaires
Do not name your model function or(). It conflicts with the name of a (very important) built-in Matlab function.
x=lsqcurvefit(@modelfun,xprime,t,[OR1(:),OR2(:),OR3(:)])
function y=modelfun(x,t)
y=((0.282*x(2))-0.24)*x(1)*exp((x(2)-0.24)*t(:));
y=[y,y,y];
end
Sara
le 19 Mai 2022
VBBV
le 19 Mai 2022
[x(1,:)]=lsqcurvefit(@modelfun,xprime,t(rangemin:rangemax),ordata(rangemin:rangemax,:)); % watch 3rd argument
Use the 3rd argument to function as ordata instead of or and try
rangemin = 173;
rangemax = 212;
xprime(1)=100;
xprime(2)=7;
TDATA = [t(rangemin:rangemax).';t(rangemin:rangemax).';t(rangemin:rangemax).'];
ORDATA = [ordata(rangemin:rangemax,1);ordata(rangemin:rangemax,2);ordata(rangemin:rangemax,3)];
x = lsqcurvefit(@modelfun,xprime,TDATA,ORDATA);
Y = modelfun(x,TDATA)
Y = reshape(Y,numel(t(tangemin:rangemax)),3);
function modelfun(x,t)
y=((0.282*x(2))-0.24)*x(1)*exp((x(2)-0.24)*t);
end
Torsten
le 19 Mai 2022
Is t a row or a column vector ?
If it is a column vector, use
TDATA = [t(rangemin:rangemax);t(rangemin:rangemax);t(rangemin:rangemax)];
Sara
le 19 Mai 2022
Y is a numel(t(tangemin:rangemax)) x 3 - matrix.
So
Y1 = Y(:,1)
Y2 = Y(:,2)
Y3 = Y(:,3)
guessing you used the code I submitted.
Catégories
En savoir plus sur Programming dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!