如何用matlab中的cftool工具拟合logistic方程?

t=1978:1:2010;
w=[566 632 745 755 769 789 985 1110 1313 1428 1782 1920 2150 2292 2601 3149 4338 5145 5809 6241 6854 7656 8772 10007 11374 12567 14332 16614 19228 22844 26404 29688 32074]
Logistic的标准形式应该是b/(1+c*exp(-r*t))
然后我用cftool进行拟合就成了这样

真的不知道怎么办了 求教各位大神
用matlab7拟合出来也是一根横线

第1个回答  推荐于2016-01-07
%%%%这个问题我曾经见到过,直到现在不知怎么回事,如果解答了可否通知我一下
xdata=1978:1:2010;%%%t
ydata=[566 632 745 755 769 789 985 1110 1313 1428 1782 1920 2150 2292 2601 3149 4338 5145 5809 6241 6854 7656 8772 10007 11374 12567 14332 16614 19228 22844 26404 29688 32074];
ff=inline('x(1)./(1+x(2).*exp(-x(3).*xdata))','x','xdata');
x00=[1,1,1];
[xx,wuch2]=lsqcurvefit(ff,x00,xdata,ydata);
disp('拟合后的参数为')
xx
disp('拟合后误差为')
wuch2
plot(xdata,ydata,'*');
hold on
title('基于最小二乘')
plot(xdata,ff(xx,xdata),'r');
legend('目标函数图','拟合后的函数图');本回答被提问者采纳
第2个回答  2023-05-16
我在知乎上看,有人在cftool中输入公式:1./(a*exp(b*x)+c),这样就不是直线了。

MATLAB logistic回归方程
首先说一下拟合。拟合就是根据已有的数据然后根据算法找到一个函数,使得y=f(x)。通过数据,返回原始函数的方法就是拟合了。是吧。在Matlab里可以用曲面拟合工具箱,这个非常方便的。英文就是,curve fitting toolbox。在主界面点击,cftool, 就会出现工具窗。我的是英文版的,你看下。这个工具箱就...

如何用MATLAB实现生长曲线拟合,如用Logistic模型等
这是某大学某同学提供的数据,要求用Logistic模型拟合其生长曲线实现方法:1、自定义函数fun=inline('a(1).\/(1+exp(-a(2)-a(3).*x))','a','x');2、根据数据,使用nlinfit()函数来拟合Logistic模型的系数,b=[000];%初值a=nlinfit(x,y,fun,b)3、运行结果 ...

如何用MATLAB实现生长曲线拟合,如用Logistic模型等
曲线拟合用曲线拟合工具箱。输入cftool即可打开

怎么用matlab求解Logistic模型中的三个参数
给你这个实例,来说明如何用matlab求解Logistic模型中的三个参数。x=[21 24 27 30 33 36 3942 45 48]; %已知数值 y=[0 4.5541 11.5836 19.9043 22.7024 25.2441 26.2109 26.5693 26.6396 25.9511]; %已知数值 fun=inline('a(1).\/(1+exp(a(2)-a(3).*x))','a','x');...

我想问下MATLAB做logistic曲线拟合,并求出曲线拟合效果(R方等),然后...
1、自定义logistic曲线方程 fun=inline('a(1).\/(1+exp(a(2)-a(3).*x))','a','x');2、利用nlinfit()函数,拟合方程的系数a(1),a(2),a(3)b=[0.95717 0.48538 0.80028]; x0的初值 [a,r,J] = nlinfit(x,y,fun,b);3、利用diff()函数,对dy=fun(a,x)求...

怎么用matlab求解Logistic模型中的三个参数
建立m函数文件存为logistic1functionf=logistic1(b)t=[0,5,10,24,33,48,57,72,96,120,144,168,192,216];y=[0,0.028,0.103,0.336,0.450,0.597,0.716,0.778,0.835,0.849,0.816,0.839,0.811,0.816];f=y-b(1).\/(1+b(2).*exp(-b(3).*t));b0=[10,...

相似回答