How to find the equation of a graph after getting Xdata and Ydata ?
Mostrar comentarios más antiguos
x = [0 1 2 3 4 5 6 7 8 9 10];
y = [4 3 4 7 12 19 28 39 52 67 84];
% How to find the function y = F(x) ??
% because I need for example to know
% if x = 1.5
% y = ??
% the solution should be something regarding regression.
Respuesta aceptada
Más respuestas (2)
Brendan Hamm
el 7 de Ag. de 2015
The easiest way would be to use the polynomial fitting functions. For this you need to know what order polynomial to fit, so visualize the data:
plot(x,y)
The data you gave looks quadratic, so let's find the coefficients for a second order polynomial:
coeff = polyfit(x,y,2);
Now evaluate the polynomial at a new value of x:
xNew = 1.5;
yNew = polyval(coeff,xNew);
plot(xNew,yNew,'r*');
5 comentarios
Brendan Hamm
el 7 de Ag. de 2015
For more complex linear models you can take a look at fitlm in the Statistics and Machine Learning Toolbox.
Joel Sande
el 7 de Ag. de 2015
Brendan Hamm
el 10 de Ag. de 2015
If you want to assume the data you had was from a one dimensional polynomial, then this works fine (as interp1 is doing a 1 dimensional linear interpolation). On the other hand if you want the requirement that, "the solution should be something regarding regression", then polyfit or fitlm would be the appropriate choice.
Joel Sande
el 11 de Ag. de 2015
Joel Sande
el 18 de Abr. de 2016
Walter Roberson
el 7 de Ag. de 2015
one of the infinite number of solutions is:
x = [0 1 2 3 4 5 6 7 8 9 10];
y = [4 3 4 7 12 19 28 39 52 67 84];
pp = polyfit(x, y, length(x)-1);
y1_5 = polyval(pp, 1.5)
Another of the infinite solutions is:
x = [0 1 2 3 4 5 6 7 8 9 10];
y = [4 3 4 7 12 19 28 39 52 67 84];
y1_5 = 19;
It is not mathematically possible to distinguish between these two solutions as to which one is "more correct".
Categorías
Más información sobre Polynomials en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!