该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
用matlab拟合Logistic曲线x=[3,5,10,12,17];y=[123.1,134.5,145.2,185 , 187.3];
Logistic模型是 f(x)=A/1+b*exp(-c*x),在进行曲线拟合时需要先估计A,b,c三个参数的值,想问一下怎么估计才能比较收敛。要不拟合的曲线误差比较大,哪个大神给一下代码!比较着急,万分感谢!!!!!
解答如下:标准logistic模型是4参数,我按照4参数拟合如下:
f(x)=(a-d)/(1 + b*exp(c*x)) + d其中A和D意义比较明显,就是x趋于正负无穷大时y的最大最小值。
1)初始值本例中初始值A=150;带入首尾和中间点(x,y)到模型中,求出参数B,C,D的初始值。代码:>>[b,c,d]=solve('(150-d)/1+b*exp(-c*3)-d=123.1','(150-d)/1+b*exp(-c*10)-d=145.2','(150-d)/1+b*exp(-c*17)-d=187.3','b,c,d')
%%%!!!上面这里括号有问题!!!!
2)编写m文件,进行拟合
%更详细的代码,给出更多参数。c:参数的最优解,r:各点处的拟合残差,J:雅克比矩阵的数值。
x=[3,5,10,12,17