least squre data fit for a function of two variables
Show older comments
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
Answers (2)
David Sanchez
on 19 Dec 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,
Categories
Find more on Least Squares in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!