poly and polyval for large vectors...
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
David Pesetsky
el 23 de Jul. de 2018
Comentada: David Pesetsky
el 23 de Jul. de 2018
Hello,
I need to get the equation of the polynomial through 50 points... a 49th order should make a perfect fit. This doesn't do it:
(load x and y vectors with unique monotonically increasing values...then:)
[p,S,mu] = polyfit(x,y,49);
yp = polyval(p,x);
There is some advice to use "centering and scaling" from the warning message. Using HELP I see:
[P,S,MU] = polyfit(X,Y,N) finds the coefficients of a polynomial in
XHAT = (X-MU(1))/MU(2) where MU(1) = MEAN(X) and MU(2) = STD(X). This
centering and scaling transformation improves the numerical properties
of both the polynomial and the fitting algorithm.
I'm not sure how to follow that advice. Is the an example where a large number of points is used with a poly that should capture them perfectly?
Thanks for helping.
0 comentarios
Respuesta aceptada
Guillaume
el 23 de Jul. de 2018
Editada: Guillaume
el 23 de Jul. de 2018
The documentation of polyfit has an example of how to use the centering and scaling option. You need to use that returned mu in polyval for it to make sense:
[p, ~, mu] = polyfit(x, y, 49);
yp = polyval(p, x, [], mu);
This is way outside my area of expertise but I believe that fitting a 49 degree polynomial to 50 points is not an appropriate way to fit data. You probably would be better off fitting splines.
Más respuestas (0)
Ver también
Categorías
Más información sobre Polynomials 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!