1理解最小二乘法的基本原理,通过计算机解决相关问题;用matlab程序解决问题。21.实验目的:(1)理解最小二乘法的基本原理,通过计算机解决相关问题;(2)用matlab解决问题。2.实验内容:给定一组实验数据(Xi,Yi)(i=1,2,…n)编写一个通用程序,计算线性拟合和二次拟合(x,y)的值。3.程序源代码及运行结果:(一)线性拟合x=[12345678]y=[15.320.527.436.649.165.687.8117.6]x1=0;x12=0;y1=0;xy=0;n=8;fori=1:nx1=x1+x(i);x12=x12+x(i)^2y1=y1+y(i);xy=xy+x(i)*y(i);endx1y1x12xya0=(y1*x12-x1*xy)/(n*x12-x1*x1);a1=(n*xy-x1*y1)/(n*x12-x1*x1);a0a1yy=a0+a1*xplot(x,y,'o')plot(yy)运行结果:x=12345678y=15.300020.500027.400036.600049.100065.600087.8000117.6000x12=31514305591140204x1=36y1=419.9000x12=204xy=2.4794e+003a0=-10.7107a1=14.0440yy=Columns1through73.333317.377431.421445.465559.509573.553687.5976Column8101.6417(二)二次拟合xx=0;yy=0;x2=0;x3=0;x4=0;xy=0;y2=0;n=8;x1=1:8;y1=[15.320.527.436.649.165.687.8117.6];fori=1:nxx=xx+x1(i);x2=x2+x1(i)^2;x3=x3+x1(i)^3;x4=x4+x1(i)^4;yy=yy+y1(i);xy=xy+x1(i)*y1(i);y2=y2+x1(i)*x1(i)*y1(i);endxxx2x34x4yyxyy2A=[nxxx2;xxx2x3;x2x3x4];B=[yy;xy;y2];C=A\B;C运行结果:xx=36x2=204x3=1296x4=8772yy=419.9000xy=2.4794e+003y2=1.6347e+004C=18.8518-3.69351.9708(三)线性拟合和二次拟合:functionZXE(x,y,m)S=zeros(1,2*m+1);T=zeros(m+1,1);fork=1:2*m+1S(k)=sum(x.^(k-1));endfork=1:m+1T(k)=sum(x.^(k-1).*y);endA=zeros(m+1,m+1);a=zeros(m+1,1);fori=1:m+1forj=1:m+15A(i,j)=S(i+j-1);endenda=A\T;fork=1:m+1fprintf('a[%d]=%f\n',k,a(k));end运行结果:ZXE(x,y,1);a[1]=-10.710714a[2]=14.044048ZXE(x,y,2);a[1]=18.851786a[2]=-3.693452a[3]=1.970833图像: