首先说明本人渣渣一枚,一下问题可能你觉得比较简单,但我确是实在不会,所以还希望大神们不吝赐教。
如下图,想用MATLAB拟合一条经过图上点的曲线,不知道程序那错了就是拟合不出来,生成的曲线竟然和横坐标重合了,求吧友指点哪错了。直接帮忙写下程序也可以。程序如下。 我用matlab拟合生物上的“S”型曲线:
已知y=C/(1+e^(a-bx)) ,
x=[2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014],
y=[1493,1538,1601,1676,1771,1860,1962,2019,2069,2115,2152]。
程序错在哪?
x=[2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014]';
y=[1493,1538,1601,1676,1771,1860,1962,2019,2069,2115,2152]';
st_ = [30 30 80];
ft_ = fittype('C/(1+exp(a-b*x))' ,...
'dependent',{'y'},'independent',{'x'},...
'coefficients',{'C','a', 'b'});
cf_ = fit(x,y,ft_ ,'Startpoint',st_)
h_ = plot(cf_,'fit',0.95);
legend off; % turn off legend from plot method call
set(h_(1),'Color',[1 0 0],...
'LineStyle','-', 'LineWidth',2,...
'Marker','none', 'MarkerSize',6);
hold on,plot(x,y,'*')
如下图,想用MATLAB拟合一条经过图上点的曲线,不知道程序那错了就是拟合不出来,生成的曲线竟然和横坐标重合了,求吧友指点哪错了。直接帮忙写下程序也可以。程序如下。 我用matlab拟合生物上的“S”型曲线:
已知y=C/(1+e^(a-bx)) ,
x=[2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014],
y=[1493,1538,1601,1676,1771,1860,1962,2019,2069,2115,2152]。
程序错在哪?
x=[2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014]';
y=[1493,1538,1601,1676,1771,1860,1962,2019,2069,2115,2152]';
st_ = [30 30 80];
ft_ = fittype('C/(1+exp(a-b*x))' ,...
'dependent',{'y'},'independent',{'x'},...
'coefficients',{'C','a', 'b'});
cf_ = fit(x,y,ft_ ,'Startpoint',st_)
h_ = plot(cf_,'fit',0.95);
legend off; % turn off legend from plot method call
set(h_(1),'Color',[1 0 0],...
'LineStyle','-', 'LineWidth',2,...
'Marker','none', 'MarkerSize',6);
hold on,plot(x,y,'*')