怎么利用MATLAB软件进行非线性曲线模型的模拟?比如Richards曲线的模拟,求参数,并要R平方值(拟合度)

举例:
天数 0 7 14 21 28
重量 0.2480 0.7677 1.4190 1.5782 1.6712
求其生长曲线Richards。
因为这方面实在不懂,求具体操作步骤。

由于Richards曲线方程是非线性函数,所以应用lsqcurvefit()函数来拟合。拟合步骤如下:

t=[0 7 14 21 28];

y=[0.2480 0.7677 1.4190 1.5782 1.6712];

func=inline('a(1)./(1+a(2).*exp(-a(3).*t).^a(4))','a','t');

b=[0.95717      0.48538      0.80028      0.14189]; 

a=lsqcurvefit(func,b,t,y);

disp(['系数A:',num2str(a(1))])

disp(['系数B:',num2str(a(2))])

disp(['系数k:',num2str(a(3))])

disp(['系数N:',num2str(a(4))])

t1=0:0.5:28;

y1=func(a,t1);

plot(t,y,'ro',t1,y1,'p-','LineWidth',2),grid on,xlabel('天数'),ylabel('重量')

legend('拟合前的数据','拟合后的数据')

输出的图形

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