How to fit linear plateau equation ?

21 次查看(过去 30 天)
I want to fit linear equation with plateau condition.
y=a(x+n)+b
These are the data in which I Want to fit:
x=[0,80,100,120,150],
y=[1865,3608,4057,4343,4389]
I don not know how to find the plateau value of yield.
  3 个评论
madhuri dubey
madhuri dubey 2018-12-8
Ok the another data data set is
x= x=[0,40,80,100,120,150,170,200],
y=[1865,2855,3608,4057,4343,4389,4415,4478]
I don't know how to fit plateau condition in linear equation that is why i asked to help. The plateau condition are given here;
x < xc(Ymax) ;
y=yp, x >= xc(Ymax)

请先登录,再进行评论。

采纳的回答

Bruno Luong
Bruno Luong 2018-12-10
编辑:Bruno Luong 2018-12-10
You can use this FEX file (BSFK)
The code is by default use QUADPROG from MATLAB, but can also work with QPAS project by Adrian Wills for user who has not access to optimization toolbox as showed below:
x=[0,40,80,100,120,150,170,200];
y=[1865,2855,3608,4057,4343,4389,4415,4478];
opt = struct('KnotRemoval','none','sigma',1,'qpengine','qpas');
pp = BSFK(x,y,2,2,[],opt);
% prepare graphical data
xi = linspace(min(x),max(x));
yi = ppval(pp,xi);
xb = pp.breaks(2);
yb = ppval(pp,xb);
clf
plot(x,y,'or',xi,yi,'-b');
xline(pp.breaks(2));
text(xb,yb,sprintf('(%g,%g)',xb,yb));
  3 个评论
John D'Errico
John D'Errico 2018-12-10
Note that the upper line segment is not held constant in your solution, as it seems the OP wants.
Bruno Luong
Bruno Luong 2018-12-10
I don't know exactly what he wants, I did not follow the thread closely.
I give the code if he is not happy then I hope he'll come back with further request.
If the plateau must be constant I can enfore the derivative to 0.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Point Cloud Processing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by