# Issues with polynomial fit

조회 수: 5 (최근 30일)
댓글: Walter Roberson 2020년 1월 27일
I have a problem coding the best fit for these data
D=[0.5 5 10 100 1000];
y1=[1.56 2.12 4.34 7.13 10.22];
y2=[1.3 2.08 4.1 6.45 12.93].';
Thois below is the output
The polynomial fit works well for large values but for small values of D (e.g 0.5, 5) which is x-axis in my case, its weird. Please suggest me some best fit for this data. I made this code but it is not efficient
D=[0.5 5 10 100 1000].';
y1=[1.56 2.12 4.34 7.13 10.22].';
y2=[1.3 2.08 4.1 6.45 12.93].';
figure();
p1 = polyfit(D,y1,1); x1 = 0.5:0.001:1000; z1 = polyval(p1,x1);
semilogx(D,y1,'ro','MarkerEdgeColor','r','MarkerFaceColor','r',...
'MarkerSize',6); hold on;
semilogx(x1,z1,'r-','MarkerEdgeColor','r','MarkerFaceColor','r',...
'MarkerSize',6); hold on;
p2 = polyfit(D,y2,1); x2 = 0.5:0.001:1000; z2 = polyval(p2,x2);
semilogx(D,y2,'ko','MarkerEdgeColor','k','MarkerFaceColor','k',...
'MarkerSize',6);
semilogx(x2,z2,'k','MarkerEdgeColor','k','MarkerFaceColor','k',...
'MarkerSize',6);
title('Test','FontSize',16);
axis([0.5 1000 0.0 14]);
xlabel('X','FontSize',16);
ylabel('Y','FontSize',16)

댓글을 달려면 로그인하십시오.

### 채택된 답변

Spencer Chen 2020년 1월 24일
You are fitting an order-1 polynomial, i.e. linear, so it is a bad fit. Try higher orders. But it looks like a different function will fit your data better.
Blessings,
Spencer
##### 댓글 수: 2없음 표시없음 숨기기
Thanks for your answer. I tried for higher order polynomial but they get more worse. I need something linear but not like order-1 polynomial. Could you please suggest me some function for it?
Best,
Walter Roberson 2020년 1월 27일
"Linear" and "order 1 polynomial" are the same.

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Polynomials에 대해 자세히 알아보기

### Community Treasure Hunt

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

Start Hunting!

Translated by