Curve fitting nonlinear data sets by tuning multiple parameters
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Shahriar Mahmud
el 7 de Ag. de 2021
Comentada: Matt J
el 9 de Ag. de 2021
Hi, I have multiple data sets (rn 5 sets but may increase later). I need to find out the values of three parameters C, a and b in order to best fit these three data sets. The function is as follows:
z=C*x^a*y^b
The datasets I got is as such, each data set has a given y. And once i change x, z changes. How do I tune C,a and b?
Thanks.
2 comentarios
Respuesta aceptada
Matt J
el 7 de Ag. de 2021
Editada: Matt J
el 7 de Ag. de 2021
You can get an initial guess using log-linear fitting,
n=[numel(x1),numel(x2),numel(x3)]; %concatenate data
X=[x1(:);x2(:);x3(:)];
Y=repelem([y1;y2;y3],n);
Z=[z1(:);z2(:),z3(:)];
p=[X.^0,log(X),log(Y)]\log(z); %linear algebraic solution
C0=exp(p(1)); %Initial estimates
a0=p(2);
b0=p(3);
[ab,C]=fminspleas({@(ab,Q) prod(Q.^ab,2)} ,[a0,b0], [X,Y],Z );
a=ab(1);
b=ab(2);
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Linear and Nonlinear Regression 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!