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 1
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/02 04:37:29
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 1
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.
不懂啊,求大侠指教.
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 1
你的问题出在fun2而不在lsqcurvefit上.该用./(点除)的/(除).改成下面的就可以了.
function y=fun2(x,tdata)
y=2./(1./x(1)+2*exp(-x(2)*tdata)*x(3));