作业帮 > 数学 > 作业

matlab用最小二乘法求一形如Y=ct^m(c和m为待定系数)的多项式,使之与下列数据相拟合,数据如下(19,19.0

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:数学作业 时间:2024/04/28 19:20:54
matlab用最小二乘法求一形如Y=ct^m(c和m为待定系数)的多项式,使之与下列数据相拟合,数据如下(19,19.0)(25,32.3)(31,49.0)(38,73.3)(44,97.8) 为什么运行不成功?
t=[19 25 31 38 44];
y=[19 32.3 49 73.8 97.8];
y=y';
t=t';
st_=[0.5 0.5];
ft_=fittype('c*t^m','dependent',{'y'},'indepdent',{'t'},'coefficients',{'c','m'});
[cf,good]=fit(t,y,ft_,'Startpoint',st_)
h_=plot(cf,'fit',0.95);
legend off;
set(h_(1),'Color',[1 0 0],'LineStyle','-','LineWidth',2,'Marker','none','MarkerSize',6);
hold on,plot(t,y,'*')
matlab用最小二乘法求一形如Y=ct^m(c和m为待定系数)的多项式,使之与下列数据相拟合,数据如下(19,19.0
没使用过fittype和fit函数.不过要拟合y=ct^m的话可以使用多项式拟合:

两边取对数得:log y = m log t + log c,变成线性拟合(即一阶多项式拟合),代码如下:
t = [19 25 31 38 44];
y = [19 32.3 49 73.8 97.8];
a = polyfit(log(t), log(y), 1);
m = a(1), c = exp(a(2))

tt = 1:100;
yy = c*tt.^m;
plot(t, y, 'o', tt, yy)