Info
この質問は閉じられています。 編集または回答するには再度開いてください。
Polyfit does not seem to be operating correctly 2011b(7.13.0.564)
1 回表示 (過去 30 日間)
古いコメントを表示
figure(500)
x = (0: 0.1: 2.5)';
y = erf(x);
[p,S,mu] = polyfit(x,y,6);
BestFit = polyval(p,x);
plot(x,y,'o',x,BestFit,'x');
grid on;
p =
0.0017 -0.0092 0.0016 0.0708 -0.1747 0.1822 0.9230
Correct Solution:
p =
0.0084 -0.0983 0.4217 -0.7435 0.1471 1.1064 0.0004
This is the example from the help page for polyfit.
0 件のコメント
回答 (1 件)
Star Strider
2012 年 7 月 19 日
If you request ‘S’ and ‘mu’ from ‘polyfit’, you need to provide them to ‘polyval’ as well.
BestFit = polyval(p,x,S,mu);
should work. To get everything you asked for from ‘polyfit’ and ‘polyval’, you can also get confidence intervals on the fitted values:
[BestFit, delta] = polyval(p,x,S,mu);
2 件のコメント
Star Strider
2012 年 7 月 20 日
編集済み: Star Strider
2012 年 7 月 20 日
Requesting ‘S’ and ‘mu’ from ‘polyfit’ asks it to center and scale the x-vector before doing the fit so the fit is more accurate in some situations. Without the additional scaling parameters, ‘polyval’ calculates y-values for an uncentered and unscaled x-vector different from those ‘polyfit’ used to calculate the fit. The polynomial fit parameters are correct in this context, and will of course be different from polynomial fit parameters calculated from an uncentered and unscaled x-vector.
この質問は閉じられています。
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!