最小覆盖模型matlab_MATLAB进行最小二乘拟合(已知经验模型)

实验内容及要求

某类疾病发病率为y‰和年龄段x(每五年为一段,例如0~5岁为第一段,6~10岁为第二段……)之间有形如的经验关系,观测得到的数据表如下:

x123456789

y0.8982.383.071.842.021.942.222.774.02

x10111213141516171819

y4.765.466.5310.916.522.535.750.661.681.8

实验要求:

(1)用最小二乘法确定模型中的参数a和b(提示函数:lsqcurvefit,lsqnonlin)。

(2)利用MATLAB画出离散数据及拟合函数图形。

(3)利用MATLAB画出离散点处的误差图,并计算相应的均方误差。

程序源码:tic

x=1:19;%给定的x,y数据

y=[0.898 2.38 3.07 1.84 2.02 1.94 2.22 2.77 4.02 4.76 5.46 6.53 10.9 16.5 22.5 35.7 50.6 61.6 81.8];

a0=[1 1];%设定计算初始值

for i=1:50

a=lsqcurvefit('Modelfun',a0,x,y);

a0=a;

end

y1=a(1)*exp(a(2)*x);

plot(x,y,'o',x,y1);hold on  %离散点及拟合函数图形

y2=y1-y;

Jerr=norm(y2,2);%均方差

plot(x,y2,'r-');hold off %误差图

title('离散点、拟合函数及误差图形')

legend('离散点','插值函数','误差');

a0

Jerr

toc

实验结果

①待定参数a和b分别为:0.2369和0.3090

②离散点数据、拟合函数图形如下图:

Elapsed time is 0.696368 seconds.

③离散点处的误差图已经一同画在上图中。且计算出的相应的均方差为:Jerr =8.6553

你可能感兴趣的:(最小覆盖模型matlab)