MATLAB数据拟合

已知数据和已知变量之间的关系,求未知参数。

下面是两组数据:

t=[0,7,14,21,28,35,42,49,56,63,70,77];
x=[14799,42837,65294,73152,70741,76010,70238,77673,76716,89166,87078,95973];

这个是参数之间的关系: y=rt+a,y=ln x,a=ln x0 

求未知参数 r和  x0

求用MATLAB进行拟合
 

 

直接上代码:

t=[0,7,14,21,28,35,42,49,56,63,70,77];
x=[14799,42837,65294,73152,70741,76010,70238,77673,76716,89166,87078,95973];
y = log(x);
p = polyfit(t,y,1);
r = p(1)
a = p(2)
x0 = exp(a)

yfit = polyval(p,t);
xfit = exp(yfit);
figure
plot(t,x,'*')
hold on
plot(t,xfit,'r')
legend('原始数据点','拟合曲线')
xlabel('t')
ylabel('x')

结果:

r =

    0.0148


a =

   10.5040


x0 =

   3.6462e+04

拟合图: