matlab......用最小二乘法拟合下列数据: x: 0.50 1.00 1.50 2.00 2.50 3.00 y

2个回答

  • clear;clcx=[0.50 1.00 1.50 2.00 2.50 3.00];y=[1.75 2.45 3.81 4.80 8.00 8.60]; %2阶多项式进行拟合c2=polyfit(x,y,2);y2=c2(:,1)*x.^2+c2(:,2)*x+c2(:,3);plot(x,y,'*',x,y2)e2=y2-y%拟合误差%1阶多项式进行拟合c1=polyfit(x,y,1);y1=c1(:,1)*x+c1(:,2);plot(x,y,'*',x,y1)e1=y1-y%拟合误差%3阶多项式进行拟合c3=polyfit(x,y,3);y3=c3(:,1)*x.^3+c3(:,2)*x.^2+c3(:,3)*x+c3(:,4);plot(x,y,'*',x,y3)e3=y3-y%拟合误差运行结果:e2 =-0.14640.14610.02370.5163-0.95610.4164e1 =-0.55480.22780.35040.8430-0.87450.0081e3 =0.0913-0.1867-0.16650.7065-0.62330.1787以上分别是2阶,1阶,3阶的误差。只能上传一张图片我就把三条拟合曲线画在一起了,你可以用这个程序一个一个画。