与拟合有关的参数确定
s=a*t+b*exp(c*t)其中,a,b,c是常数
t取值为 0 3 6 9 12 15 18 21 24 27 30
s取值为 0 30 75 128 183 236 285 340 392 445 499
s与t拟合,求a,b,c
注:同学请我帮忙做的,说是很急,因为有一段时间不接触了,希望各位不吝赐教(不一定是详细解答,有哪一位肯指个方向就很感激了)!
[此贴子已经被作者于2007-5-8 16:42:42编辑过]
你可以按以下的步骤试着运行
(1)先在matlab中建好m 文件
function F=sima(beta,xdata)
F=beta(1).*xdata+beta(2).*exp(beta(3).*xdata);
(2)在主窗口或新建运行文件
clear
clc
xdata=[0 3 6 9 12 15 18 21 24 27 30];
ydata=[0 30 75 128 183 236 285 340 392 445 499];
xdata=xdata';
ydata=ydata';
beta0=[0.1 0.1 0.1];
beta=lsqcurvefit(@sima,beta0,xdata,ydata);
y_fit=sima(beta,xdata);
r=corrcoef(ydata,y_fit);
r2=r(1,2).^2;
得出三参数结果为【15.031 1.21 0.126】
R2为0.9982,还是比较高的
(3)程序中主要是利用了matlab自身的lsqcurvefit函数对给定函数进行参数拟合,有一定的局限性(受初值影响较大),但在这程序中拟合结果还算可以了,呵呵
希望司马能用上