least squre data fit for a function of two variables

2 Ansichten (letzte 30 Tage)
Arun Jose
Arun Jose am 19 Dez. 2013
Bearbeitet: Matt J am 19 Dez. 2013
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

Antworten (2)

David Sanchez
David Sanchez am 19 Dez. 2013
Use the curve fitting toolbox
cftool
take a look at
doc cftool

Matt J
Matt J am 19 Dez. 2013
Bearbeitet: Matt J am 19 Dez. 2013
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,

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by