Given a set of date point x and y, estimate three polynomial functions (2nd degree, 3rd degree, 4th degree) that will best fit the data.

10 vues (au cours des 30 derniers jours)
Given a set of date point x and y, estimate three polynomial functions (2nd degree, 3rd degree, 4th degree) that will best fit the data. Compute new set of y data from the three functions and determine which of the three functions will give the least norm difference.
This is what I've came up with, but still not sure if it really satisfy the problem.
x=[0.9 1.5 3 4 6 8 9.5];
y=[0.9 1.5 2.5 5.1 4.5 4.9 6.3];
p=polyfit(x,y,3)
xp=0.9:0.1:9.5;
yp=polyval(p,xp);
plot(x,y,'o',xp,yp)
xlabel('x'); ylabel('y')

Réponses (1)

Walter Roberson
Walter Roberson le 27 Nov 2021
The question is expecting you to also polyfit with degree 2 and 4, and to polyval with those, and to compute the norm() of the projected values against the actual values, and then to see whether degree 2, degree 3, or degree 4 gave the best fit.
  2 commentaires
John Doe
John Doe le 27 Nov 2021
Modifié(e) : John Doe le 27 Nov 2021
Is it like this?
x = [0.9 1.5 3 4 6 8 9.5];
y = [0.9 1.5 2.5 5.1 4.5 4.9 6.3];
p = polyfit(x,y,2);
l = polyfit(x,y,3);
t = polyfit(x,y,4);
xp = 0.9:0.1:9.5;
yp1 = polyval(p,xp);
yp2 = polyval(l,xp);
yp3 = polyval(t,xp);
xlabel('x');
ylabel('y');
plot(x,y,'o',xp,yp1,yp2,yp3)
Walter Roberson
Walter Roberson le 27 Nov 2021
x = [0.9 1.5 3 4 6 8 9.5];
y = [0.9 1.5 2.5 5.1 4.5 4.9 6.3];
p = polyfit(x,y,2);
l = polyfit(x,y,3);
t = polyfit(x,y,4);
xp = 0.9:0.1:9.5;
yp1 = polyval(p,xp);
yp2 = polyval(l,xp);
yp3 = polyval(t,xp);
xlabel('x');
ylabel('y');
plot(x,y,'o',xp,yp1,xp,yp2,xp,yp3)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Polynomials dans Help Center et File Exchange

Tags

Produits


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by