Borrar filtros
Borrar filtros

multi-vari​able-param​etric data fitting

1 visualización (últimos 30 días)
Shazux Gharasoo
Shazux Gharasoo el 10 de Sept. de 2014
Comentada: Shazux Gharasoo el 11 de Sept. de 2014
Hello,
I try to fit the following polynomial to a set of data:
myfun =fittype(@(a,b,c,d,e,f,x,y) y.^3-a*x*y.^2-b*y.^2+c*y*x.^2+d*x*y+e*y-f*x, 'ind', {'x' 'y'},'dep','z')
After I ask matlab to fit the function to my data:
myfit = fit([data(:,1),data(:,2)],z,myfun)
I get the following error.
Warning: Start point not provided, choosing random start point.
> In Warning>Warning.throw at 31
In fit>iFit at 320
In fit at 109
Error using fit>iFit (line 415)
Error while trying to evaluate FITTYPE function :
Inner matrix dimensions must agree.
Error in fit (line 109)
[fitobj, goodness, output, convmsg] = iFit( xdatain, ydatain, fittypeobj, ...
Caused by:
Failure in initial user-supplied objective function evaluation. LSQCURVEFIT cannot continue.
What I am doing wrong? data is a matrix of 25x2. which my x is the first column and y is the second. z is defined as
z=zeros(25,1);
Which simply means the coefficients should be obtained in a way to get a flat surface... Any idea why I get such error?

Respuestas (1)

Matt J
Matt J el 10 de Sept. de 2014
Make sure all operations are elementwise,
>> fun=@(a,b,c,d,e,f,x,y) y.^3-a*x*y.^2-b*y.^2+c*y*x.^2+d*x*y+e*y-f*x;
>> vectorize(fun)
ans =
@(a,b,c,d,e,f,x,y)y.^3-a.*x.*y.^2-b.*y.^2+c.*y.*x.^2+d.*x.*y+e.*y-f.*x
  1 comentario
Shazux Gharasoo
Shazux Gharasoo el 11 de Sept. de 2014
Hi, thank you for your comment and answer. It still makes the same error!
my dependent variable is actually 'y'! Since my function is not y=f(x) but it is f(x,y)=0, I did it this way assuming z=f(x,y)=0. is this way of doing it correct at all? any hint on how to do it? Or shall I do it in a completely different way?
I tried:
myfun =fittype(@(a,b,c,d,e,f,x,y) y.^3-a*x*y.^2-b*y.^2+c*y*x.^2+d*x*y+e*y-f*x, 'ind', {'x'},'dep','y')
but it didnt work in Matlab

Iniciar sesión para comentar.

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!

Translated by