Matlab拟合问题!很急!悬赏,就剩下这点分了,全给了!

来源:百度知道 编辑:UC知道 时间:2024/06/30 14:28:58
M文件为:
function f=myfun(x,data)
t1 = data(1,:);
t2 = data(2,:);
t3 = data(3,:);
t4 = data(4,:);
t5 = data(5,:);
f=x(1)*exp(-t1)+x(2)*exp(-t2)+x(3)*exp(-t3)+x(4)*exp(-t4)+x(5)*exp(-t5)
主文件为:
t1=[24.6315 22.7387 21.8717 21.3433 20.2205 19.0317 17.6533 16.2488 14.3286 13.2875 11.9111 11.0303];
t2=[23.0735 22.5229 21.499 20.6383 20.0512 18.5586 16.4281 15.0583 13.9007 12.4188 11.1882 10.455];
t3=[16.1654 15.6759 14.7085 14.4774 13.8683 12.3204 10.8346 10.3775 9.2446 8.2923 7.5109 7.2716];
t4=[22.5229 21.499 20.6383 20.0512 18.5586 16.4281 15.0583 13.9007 12.4188 11.1882 10.455 10.2955];
t5=[21.8717 21.3433 20.2205 19.0317 17.6533 16.2488 14.3286 13.2875 11.9111 11.0303 10.4718 9.7808];
ydata=[1185170000 1198500000 1211210000 1223890000 1236260000 1247610000 1257860000 1267430000 1276270000 1284530000 1292270000 1299880000];

data=[t1;t2;t3;t4;t5];
x0=[10,10,10,10,10];
x=lsqcurvefit('myfun',x0,d

你的问题描述的不是很清楚,不过我知道有个拟合工具,CFTOOL很好用,你试试


x=nlinfit(data,ydata,'myfun',x0)
代替
x=lsqcurvefit('myfun',x0,data,ydata)

结果:
x =

1.0e+015 *

-5.1701 2.6701 0.0770 -1.7103 0.2192

%=====================
function hh
t1=[24.6315 22.7387 21.8717 21.3433 20.2205 19.0317 17.6533 16.2488 14.3286 13.2875 11.9111 11.0303];
t2=[23.0735 22.5229 21.499 20.6383 20.0512 18.5586 16.4281 15.0583 13.9007 12.4188 11.1882 10.455];
t3=[16.1654 15.6759 14.7085 14.4774 13.8683 12.3204 10.8346 10.3775 9.2446 8.2923 7.5109 7.2716];
t4=[22.5229 21.499 20.6383 20.0512 18.5586 16.4281 15.0583 13.9007 12.4188 11.1882 10.455 10.2955];
t5=[21.8717 21.3433 20.2205 19.0317 17.6533 16.2488 14.3286 13.2875 11.9111 11.0303 10.4718 9.7808];
ydata=[1185170000 1198500000 1211210000 1223890000 1236260000 1247610000 1257860000 1267430000 1276270000 1284530000 1292270000 1299880000];
<