我想问下MATLAB做logistic曲线拟合,并求出曲线拟合效果(R方等),然后求其导数曲线。

cftool里面没有这个函数,要怎么做。
x=[21 24 27 30 33 36 39 42 45 48];
y=[0 4.5541 11.5836 19.9043 22.7024 25.2441 26.2109 26.5693 26.6396 25.9511];
请贴出详细代码,非常感谢!

求解思路:

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)求一阶导数

diff(dy,1)

4、利用plot()函数,绘制(x,y)的散点图,(xx0,yy0)的拟合曲线图,(xx,yy)的拟合导数曲线图

plot(x,y,'rp'),hold on

plot(xx0,yy0,'r-',xx,yy,'k-'),xlabel('x'),ylabel('y,dy'),hold on

legend('实验数据','拟合曲线','拟合导数曲线',2)

运行结果

由于代码比较长,如需要可以私聊,另行传送。

温馨提示:答案为网友推荐,仅供参考
相似回答