作业帮 > 综合 > 作业

matlab 中logistic模型求解

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/08 11:37:34
matlab 中logistic模型求解
这是我写的源程序,直接从网上下载的
建立m文件
function y=zout(beta,t) % 保存为 zout.m 文件
a=68.65;
b=beta(1);k=beta(2);
y=b./(1+((b-a)/a)*exp(-k*t));
----------------------------------------------------------
运行以下:
clear;clc
t=1:10;
y=[73.22 80.22 87.69 93.97 99.16 103.38 109.46 114.6 119.85 124.92];
beta0=[200 0.1];
beta=nlinfit(t,y,'zout',beta0)
plot(t,y,'*',t,zout(beta,t))
R2=corrcoef(y,zout(beta,t))
--------------------------------------
结果:
beta =
162.4100 0.1498
R2 =
1.0000 0.9989
0.9989 1.0000
beta0=[200 0.里面的数值200,0.1是怎么确定的?
还有如果结果显示
371.01 +1.1315e-005i -0.1308 -5.6501e-008i
eta0=[200 0.1];是b=beta(1);k=beta(2);的初始值.初始值确定是一个比较头疼的事,完全凭自己的感觉来初选,一般可用随机数来初步确定,看结果是否你要数据,然后再调整,直到满意为止.

如果结果显示
371.01 +1.1315e-005i -0.1308 -5.6501e-008i
这说明b=beta(1);k=beta(2);的初始值选择有问题.
再问: 难道上面给出的好几组,不能求出里面的参数?为什么还要给出里面参数的值,那最后求出的又是什么
再答: 得到的方程是 y=162.4100/(1+((162.4100-68.65)/68.65)*exp(-0.1498*t)) =162.4100/(1+1.3657*exp(-0.1498*t))