Non-linear curvefitting in MATLAB
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Syeda
el 8 de Oct. de 2013
Comentada: Syeda
el 9 de Oct. de 2013
Hey guys! I'm some given some huge set of data. I am trying to fit a set of data into a model of functional form as described below:
z(x, y) = c0. * x^0 * y^2 + c1. * x^1 * y^1 + c2. * x^2 *y^1
where c0, c1, c2 are the coefficients to be found.
My attempt is to use the nlinfit function to solve it.
So far I have tried:
% i have just added a small portion of my data
a= [ 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001,0.011, 0.011, 0.011, 0.011, 0.011, 0.011, 0.011, 0.011, 0.011, 0.011];
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
y = x.* a;
z = [ -.304860225, .170315374, .343019354, .370114906, .373180536, .36719579, .363397853, .363417755, .366962504, .379710865, -.304860225, .170315374, .343019354, .370114906, .373180536, .36719579, .363397853, .363417755, .366962504, .379710865];
model= c0.* (x(:).^0).* (y(:).^2) + c1.* (x(:).^1).* (y(:).^1) + c2.* (x(:).^2).* (y(:).^0)
[c0 c1 c2] = [0.001 0.007 0.788]
C= nlinfit( [x,y], z, 'model', [0.001 0.007 0.788])
% Here x,y are independent variables and z is dependent variable.
How can one set these initial values for the coefficients? I'm not getting how to pass the arguments. I'm getting this error "??? Undefined function or variable 'c0' ". Please help!!!
Thanks in advance, Syeda
0 comentarios
Respuesta aceptada
Greg Heath
el 9 de Oct. de 2013
The solution is trivial because you have a linear system of equations for the 3 coefficients
A*c = b;
c = A\b
Hope this helps
Thank you for formally accepting my answer
Greg
3 comentarios
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!