用MATLAB拟合逻辑斯蒂模型。。。

来源:百度知道 编辑:UC知道 时间:2024/05/10 23:17:03
1)编写M-文件curvefun1.m
funtion f = curvefun1(x,tdata)
a=3.1
f=x(1)/(1+(x(1)/a-1)*exp(-t*x(2))) %其中x(1)=Xm;x(2)=r
2)主程序如下:
clear
tdata=[1 2 3 4 5 6 7 8 9 10 11 12];
cdata=[3.1 3.6 4.2 4.8 6.7 9.1 13 18.9 29 51.1 78.2 113];
x0=[300,0.6];
x=lsqcurvefit('curvefun1',x0,tdata,cdata)
f=curvefun1(x,tdata)
这个程序哪错了?怎么不能运行,跪求高手指教!!!!
我是初学者,怎么定义X?

这样,在一个程序里:
function hh
tdata=[1 2 3 4 5 6 7 8 9 10 11 12];
cdata=[3.1 3.6 4.2 4.8 6.7 9.1 13 18.9 29 51.1 78.2 113];
x0=[300,0.6];
x=lsqcurvefit(@curvefun1,x0,tdata,cdata)
f=curvefun1(x,tdata)
plot(tdata,cdata,'o',tdata,f)
function f = curvefun1(x,t)
a=3.1
f=x(1)./(1+(x(1)/a-1)*exp(-t*x(2))) %其中x(1)=Xm;x(2)=r

如果分开:
function f = curvefun1(x,t)
a=3.1
f=x(1)./(1+(x(1)/a-1)*exp(-t*x(2))) %其中x(1)=Xm;x(2)=r

主程序:
tdata=[1 2 3 4 5 6 7 8 9 10 11 12];
cdata=[3.1 3.6 4.2 4.8 6.7 9.1 13 18.9 29 51.1 78.2 113];
x0=[300,0.6];
x=lsqcurvefit('curvefun1',x0,tdata,cdata)
f=curvefun1(x,tdata)
plot(tdata,cdata,'o',tdata,f)

funtion 写错了是function

还有你函数中没有定义 x 你先把这些修改下在看看吧

你那个函数中的x是什么意思?

正如一楼所说,你的function拼写错误

你不用定义x。x是我们要求的两个参数。