I want to make curve fitting to these points
2 次查看(过去 30 天)
显示 更早的评论
I want to make curve fitting to these points but when i made it the blue straight line appeared. What does it mean ?
2 个评论
Umar
2024-7-29
Hi @noura,
If you don’t mind, can you share your code with us to help resolve your issue.
dpb
2024-7-29
You don't need his code; the answer is obvious by inspection. Put any set of symmetric points in and overall OLS will always return the mean; it's inevitable conclusion from the basis of the method to minimize the overall error sum of squares.
采纳的回答
dpb
2024-7-29
编辑:dpb
2024-7-29
The top and bottom are identical pairs above and below the mean; hence when/if you fit the whole dataset, the single line that best fits all the data is (drum roll, please...) the mean.
You need two fits; one for the upper and one for the lower. The slope of one will be exactly the negative of the other, but the two intercepts will be different.
X=[16 17.5 20 25 32.5 37 42.5 45 48].';
Y=[0 9 17 21 27 34 41 48 55 ];
DY=Y-Y(end);
Y=[Y;Y(end)-DY].';
scatter(X,Y,'filled')
box on, grid on
ylim([-5 118])
b1=polyfit(X,Y(:,1),3)
b2=polyfit(X,Y(:,2),3)
y1=polyval(b1,X);
y2=polyval(b2,X);
hold on
plot(X,y1,'b-')
plot(X,y2,'r-')
7 个评论
Umar
2024-7-29
@dpb, thanks for your contribution and sharing your thoughts, really appreciated. @noura, please go ahead accept @dpb answer and give him a vote. If there are still further questions or issues, please let us know, we will be more happy to help.
dpb
2024-7-30
编辑:dpb
2024-7-30
"...the coefficients of the two are the negative of each other for the terms in X while the intercepts are different."
Also, notice that
X=[16 17.5 20 25 32.5 37 42.5 45 48].';
Y=[0 9 17 21 27 34 41 48 55 ];
DY=Y-Y(end);
Y=[Y;Y(end)-DY].';
b1=polyfit(X,Y(:,1),3);
b2=polyfit(X,Y(:,2),3);
mean_intercept=mean([b1(end) b2(end)])
mean_y=mean(Y,'all')
The average of the two intercepts is the mean of the overall data to within machine precision/roundoff in the fitting calculations...
That being so, it is in one sense only one polynomial, the second is completely known by only fitting the first; the issue still being there isn't any convenient way to return the double-valued function from only a f(x).
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Get Started with Curve Fitting Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!