Polyfit 4th degree unexpected behavior
Show older comments
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)
Answers (1)
Steven Lord
on 29 Jul 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 Comments
John D'Errico
on 29 Jul 2020
Edited: John D'Errico
on 29 Jul 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
on 29 Jul 2020
Terence O'Brien
on 29 Jul 2020
John Jr
on 28 Oct 2024
I have the same problem, were you able to solve it, how did you do it?
Categories
Find more on Polynomials in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!