Polyfit 4th degree unexpected behavior
Afficher commentaires plus anciens
I'm getting strange results plotting a 4th degree polynomial.
Here is the resultant graph:

I don't understand why there appear to be 2 lines. The first degree polynomial is just a single line, and 2nd degree and beyond comes up with the two lines like this graph.
The data is a 420x3 matrix attached.
here is the code:
p1=polyfit(tp(:,1),tp(:,2),4); %4th degree polynomial
f=polyval(p1,tp(:,1));
figure(1)
plot(tp(:,1),tp(:,2),'*',tp(:,1),f)
Réponses (1)
Steven Lord
le 29 Juil 2020
2 votes
It looks to me like tp(:, 1) is not sorted. You can check this with issorted. If it's not sorted, MATLAB may draw a line from around x = 27 back to x = 13 then have to draw a straight line back to x = 25.
Try sorting tp(:, 1) before using it to evaluate the fitted polynomial and before plotting.
4 commentaires
John D'Errico
le 29 Juil 2020
Modifié(e) : John D'Errico
le 29 Juil 2020
The data may be sordid, but it is definitely not sorted. :) In fact, I did check the file, and tp(:,1) is not in a sorted sequence.
Terence O'Brien
le 29 Juil 2020
Terence O'Brien
le 29 Juil 2020
John Jr
le 28 Oct 2024
I have the same problem, were you able to solve it, how did you do it?
Catégories
En savoir plus sur Polynomials dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
