非线性参数回归,有方程咋求a,b,N我有一函数想回归其中参数,用matlab最好,听说还有遗传算法啥的,y(t)=N[1-exp(-(a+bN)t)]/[1+(Nb/a)exp(-(a+bN)t)]共有14个数据t=1,2,3、、、、、、,14;对应的y(t)=3,10,24,68,
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 05:37:26
非线性参数回归,有方程咋求a,b,N我有一函数想回归其中参数,用matlab最好,听说还有遗传算法啥的,y(t)=N[1-exp(-(a+bN)t)]/[1+(Nb/a)exp(-(a+bN)t)]共有14个数据t=1,2,3、、、、、、,14;对应的y(t)=3,10,24,68,
非线性参数回归,有方程咋求a,b,N
我有一函数想回归其中参数,用matlab最好,听说还有遗传算法啥的,
y(t)=N[1-exp(-(a+bN)t)]/[1+(Nb/a)exp(-(a+bN)t)]
共有14个数据
t=1,2,3、、、、、、,14;
对应的y(t)=3,10,24,68,130,246,584,1052,1739,2536,2969,3908,4674,4884;
具体的做法,编的程序啥的写清楚些,
.
非线性参数回归,有方程咋求a,b,N我有一函数想回归其中参数,用matlab最好,听说还有遗传算法啥的,y(t)=N[1-exp(-(a+bN)t)]/[1+(Nb/a)exp(-(a+bN)t)]共有14个数据t=1,2,3、、、、、、,14;对应的y(t)=3,10,24,68,
程序如下,但是不收敛,你最好检查一下你的表达式对不对.
在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=fit_reylla(para,t)
%其中p,n分别用abc(1),abc(2)代替
N=para(1);
a=para(2);
b=para(3);
y=N*(1-exp(-(a+b*N)*t))./(1+(N*b/a)*exp(-(a+b*N)*t)); %在这检查表达式
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
返回Matlab主界面输入:
t=1:14;
y=[3 10 24 68 130 246 584 1052 1739 2536 2969 3908 4674 4884];
[para,res]=lsqcurvefit('fit_reylla',[10,10,10],t,y)
N=para(1);
a=para(2);
b=para(3);
yfit=fit_reylla(para,t);
plot(t,y,'r*',t,yfit)