fitting 3 sets of data simultaneously using "lsqcurvefit"
Ältere Kommentare anzeigen
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.
Antworten (2)
Torsten
am 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 Kommentare
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
am 19 Mai 2022
VBBV
am 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
am 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
am 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.
Kategorien
Mehr zu Third-Party Cluster Configuration finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!