least squre data fit for a function of two variables
Afficher commentaires plus anciens
z=f(x,y) is my function.but i know data points (x ,y) and corresponding z values only. I know that z is of the form z=a*g(x,y)+b*h(x,y) i want find a,b in a least square sense. Can i use 'lsqcurvefit' function?? If i can't what can i use?? note: Z is not linear
for example
xdata = [1 4;2 5;3 6];%%f(1,4)=11 f(2,5)=2 f(3,6)=63
ydata = [11;32;63];
x = lsqcurvefit(@myfunction, [1 7], xdata, ydata);
function f=myfunction(x,xdata)
f = f = x(1)*(xdata(:,1)*xdata(:,2))+x(2)*(xdata(:,1))^2;
is not working
Réponses (2)
David Sanchez
le 19 Déc 2013
Use the curve fitting toolbox
cftool
take a look at
doc cftool
note: Z is not linear
Z is linear as a function of a and b and that's the only dependence that matters. You don't need any fancy solvers:
A=[xdata(:,1).*xdata(:,2), (xdata(:,1)).^2];
x=A\ydata,
Catégories
En savoir plus sur Least Squares 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!