作业帮 > 综合 > 作业

matlab lsqcurvefit 函数的使用

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 02:41:21
matlab lsqcurvefit 函数的使用
函数 function y=fun2(x,tdata)
y=2/(1/x(1)+2*exp(-x(2)*tdata)*x(3));
主程序
tdata=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16];
ydata=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4];
plot(tdata,ydata)
tdata1=tdata(1:5);
ydata1=ydata(1:5);
x0=[0,0,0];
xx1=lsqcurvefit('fun2',x0,tdata1,ydata1)
tdata2=tdata(5:end);
ydata2=ydata(5:end);
x0=[-0.1767,108.3979,0];
xx2=lsqcurvefit('fun2',x0,tdata2,ydata2)
怎么老是不对呢
Error using ==> mrdivide
Matrix dimensions must agree.
不懂啊,求大侠指教.
你的问题出在fun2而不在lsqcurvefit上.该用./(点除)的/(除).改成下面的就可以了.
function y=fun2(x,tdata)
y=2./(1./x(1)+2*exp(-x(2)*tdata)*x(3));