Logistic模型求解怎么用matlab求解啊?

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:11:16
已知
x=0:1:12
y=[43.65 109.86 187.21 312.67 496.58 707.65 960.25 1238.75 1560.00 1824.29 2199.00 2438.89 2737.71]
y=L/(1+a*exp(-k*x))
利用线性回归模型所得到的a和k的估计值和L=3000作为Logistic模型的拟合初值,对Logistic模型做非线性回归。
据说用lsqcurvefit求解,本人非专业人士不懂啊?只需要列出式子!!拜托了。
是不是得分成每三组数一组啊?茫然!!还要拟合Gompertz模型?有会的给加分啊!!

x=0:1:12
y=[43.65 109.86 187.21 312.67 496.58 707.65 960.25 1238.75 1560.00 1824.29 2199.00 2438.89 2737.71]
y=L/(1+a*exp(-k*x))
利用线性回归模型所得到的a和k的估计值和L=3000作为Logistic模型的拟合初值,对Logistic模型做非线性回归。

%第一步,线性回归模型得到a,k
%这里假定y=a*exp(k*x),对两边取ln(Matlab中,ln用log函数表示),有
%lny=lna+k*x
%即logy是x的线性函数,斜率为k*loge,截距为loga
x=0:1:12 ;
y=[43.65 109.86 187.21 312.67 496.58 707.65 960.25 1238.75 1560.00 1824.29 2199.00 2438.89 2737.71] ;
line_A=polyfit(x,log(y),1);
k=line_A(1);
a=exp(line_A(2));
plot(x,y,'*',x,a*exp(k*x))
title('线性回归的参数曲线与已经点的关系')

%第二步,Logistic模型
%在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=zhidao_liziqiangde(A,x)
%其中k=A(1),a=A(2)
k=A(1);
a=A(2);
L=3000;
y=L./(1+a*exp(-k*x));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%返回Matlab,输入
[ABC,res]=lsqcurvefit('zhidao_liziqia