Lsqcurvefit - multiple parameters - two variables
27 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Cyril GADAL
el 15 de Mayo de 2017
Comentada: Cyril GADAL
el 16 de Mayo de 2017
Hello,
I'm currently working on a function of two variables of the type z=f(x,y), controlled by 4 parameters, and I would like to fit data I obtained to my theoretical function. I read detailed post about how to dit with lsqcurvefit, but a problem remains. This is how I did :
function Sigma = Sigma_funct(p,Var)
Sigma = f(p(1),p(2),p(3),p(4), x,y)
end
with lets say Var(1) = x and Var(2) = y. Then, I'm supposed to use the following syntax :
p0 = [3,1,2,10] ;
x = lsqcurvefit(@Sigma_funct,p0,[x y],Sigma_data) ;
However, my problem is that x and y have different size, meaning that Sigma_data isn't a squared matrix : I can't concatenate x and y. How am I supposed to do ?
Thanks for your answers !
P.S : Just to say it, f is linear neither in parameters nor in variables.
2 comentarios
Torsten
el 16 de Mayo de 2017
It's not clear what the size of the matrix "Sigma_data" is and what it contains.
Best wishes
Torsten.
Respuesta aceptada
Torsten
el 16 de Mayo de 2017
p0 = [3,1,2,10] ;
xdata = zeros(numel(x)*numel(y),1);
ydata = reshape(Sigma_data,[numel(x)*numel(y),1]);
p_sol = lsqcurvefit(@(p,xdata)Sigma_funct(p,xdata,x,y),p0,xdata,ydata);
function Sigma = Sigma_funct(p,xdata,x,y)
Sigma_mat = f(p(1),p(2),p(3),p(4),x,y)
Sigma = reshape(Sigma_mat,[numel(x)*numel(y),1]);
end
Best wishes
Torsten.
5 comentarios
Torsten
el 16 de Mayo de 2017
Editada: Torsten
el 16 de Mayo de 2017
The only thing that matters for "lsqcurvefit" is how the ydata-vector depends on the parameter vector.
The xdata-vector is only introduced to make things easier for you if the relationship between parameter vector and ydata-vector can be established easily by an equation of the form
ydata(i) = func(p,xdata(i)) (i=1,...,N*M)
e.g. for linear regression ydata(i) = p(1)+p(2)*xdata(i).
But this is not the case for your problem - so don't worry about the "xdata"-vector.
Best wishes
Torsten.
Más respuestas (0)
Ver también
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!