matlab拟合四个参数,用matlab拟合Logistic,4参数logistic

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

用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];

y=[123.1,134.5,145.2,185 , 187.3];

c0=[150,18.526857911648590940806413160078,-0.092067161737804085897956309851236,25.66025];

fun=inline('(c(1)-c(4))./(1+c(2).*exp(c(3).*x)) + c(4)','c','x');

[c,r,J]=nlinfit(x,y,fun,c0);

% 其中x,y为原始数据,fun为M文件中定义的函数,c0为函数中参数的初始值;

% c为参数的最优解,r为各点处的拟合残差,J为雅克比矩阵的数值。

b %最佳参数

Q=sum(r.^2) %误差平方和

SSY=std(y,1)^2; %离差平方和

R=sqrt(1-Q/SSY)

t=-2.5:0.1:2.5;

plot(x,y,'r*',t,fun(b,t))

% 画图,其中x,y表示一对点,后面的参数表示 颜色 和 点的形状。

%然后就是有一组点。

结论:这一组数字太差劲了,拟合失败。。。。-----------------------------这组拟合倒是不错: x=[1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010]'; y=[0.15 1.20 3.30 9.50 19.00 30.61 40.29 42.11 49.84 60.00 76.78 99.13 153.54 187.80 248.28 318.74 349.99 379.51 418.29 465.73 512.71 576.32 592.53 607.17 627.34 635.67 645.82 674.27 699.99 726.21 753.56 786.17]'; st_ = [700 20 0.2];ft_ = fittype('a/(1+b*exp(-k*(x-1979)))' ,... 'dependent',{'y'},'independent',{'x'},... 'coefficients',{'a', 'b', 'k'});[cf_,good]= fit(x,y,ft_ ,'Startpoint',st_)h_ = plot(cf_,'fit',0.95);legend off; % turn off legend from plot method callset(h_(1),'Color',[1 0 0],... 'LineStyle','-', 'LineWidth',2,... 'Marker','none', 'MarkerSize',6);hold on,plot(x,y,'*')

refer1.http://www.miraibio.com/blog/2010/08/the-4-parameter-logistic-4pl-nonlinear-regression-model/2.matlab非线性拟合.PPT:http://wenku.baidu.com/view/9a7c7b88d0d233d4b14e69ec.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值