Issues with polynomial fit

2 ビュー (過去 30 日間)
Adil Hussain
Adil Hussain 2020 年 1 月 24 日
コメント済み: 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
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 件のコメント
Adil Hussain
Adil Hussain 2020 年 1 月 27 日
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,
Adil
Walter Roberson
Walter Roberson 2020 年 1 月 27 日
"Linear" and "order 1 polynomial" are the same.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePolynomials についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by