1、数值分析上机作业实验报告专 业:建筑与土木工程 姓 名: 学 号: 联系电话: 课题四 曲线拟合的最小二乘法一、问题提出 从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。 在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量 y与时间t 的拟合曲线。二、要求 t(分) 0 5 10 15 20 25 30 35 40 45 50 55y(10-4)0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.641 、用最小二乘法进行曲线拟合; 2 、近似解析表达式为
2、=a1t+a2t2+a3t3t3 、打印出拟合函数 ,并打印出 与 的误差,j=1,2.,12 :ttjytj4 、另外选取一个近似表达式,尝试拟合效果的比较;5 、* 绘制出曲线拟合图。 三、目的和意义 1 、掌握曲线拟合的最小二乘法; 2 、最小二乘法亦可用于解超定线代数方程组; 3 、探索拟合函数的选择与拟合精度间的关系。四、实验结果:1.用最小二乘法做出的曲线拟合为三次多项式 a1= -0.0052 ,a 2= 0.2634 ,a 3= 0.0178。= (-0.0052) t+ (0.2634) t2 + (0.0178) t3t三次多项式的误差平方和=0.2583。图形为:图形上红
3、线表示拟合曲线,*表示实验所给的点。源代码为:x=0,5,10,15,20,25,30,35,40,45,50,55;y=0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64;a1=polyfit(x,y,3) %三次多项式拟合 %b1= polyval(a1,x)r1= sum(y-b1).2) %三次多项式误差平方和%plot(x,y,*) %用*画出 x,y 图像%hold onplot(x,b1, r) %用红色线画出 x,b1 图像%(说明本程序调用了 MATLAB 中的函数 polyfit、polyval、plot)2.另
4、外选取几个近似表达式:主要选取 6 次、9 次和 12 次的拟合表达式。(说明 6 多项式用绿线表示,9 次多项式用蓝线表示,12 次多项式用黄线表示)图形为:讨论:1. 从上面的曲线图形我们可以看出 9 次多项式的拟合效果最好,所有点的都在 9 次多项式的曲线上。2. 可以看出 3 次多项式、 6 次多项式都拟合的比较好。3. 可以看出 12 次多项式跳跃比较厉害,拟合效果比较差,我们可以的出结论:不是次数越高,拟合效果就越好,拟合函数的次数与拟合精度没有直接的线性关系。需要选择合适的拟合函数,可以得到最佳效果。源代码: x=0,5,10,15,20,25,30,35,40,45,50,55
5、;y=0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64;a1=polyfit(x,y,3) %三次多项式拟合%a2= polyfit(x,y,6) %六次多项式拟合%a3= polyfit(x,y,9) %九次多项式拟合%a4= polyfit(x,y,12) %十二次多项式拟合%b1= polyval(a1,x)b2= polyval(a2,x)b3= polyval(a3,x)b4= polyval(a4,x)r1= sum(y-b1).2) %三次多项式误差平方和%r2= sum(y-b2).2) %六次次多项式误差平方和%
6、r3= sum(y-b3).2) %九次多项式误差平方和%r4= sum(y-b4).2) %十二次多项式误差平方和%plot(x,y,*) %用 *画出 x, y 图像%hold onplot(x,b1, r) %用红色线画出 x,b1 图像%hold onplot(x,b2, g) %用绿色线画出 x,b2 图像%hold onplot(x,b3, b:o) %用蓝色 o 线画出 x,b3 图像 %hold on plot(x,b4, y) %用黄线画出想 x,b4 图像%运行结果:a1 =0.0000 -0.0052 0.2634 0.0178Warning: Polynomial is
7、 badly conditioned. Add points with distinct Xvalues, reduce the degree of the polynomial, or try centeringand scaling as described in HELP POLYFIT. In polyfit at 80a2 =0.0000 -0.0000 0.0001 -0.0013 0.0079 0.2240 0.0176Warning: Polynomial is badly conditioned. Add points with distinct Xvalues, reduc
8、e the degree of the polynomial, or try centeringand scaling as described in HELP POLYFIT. In polyfit at 80a3 =0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0007 0.0081 -0.0549 0.3967 -0.0002Warning: Polynomial is not unique; degree = number of data points. In polyfit at 72a4 =1.0e-007 *-0.0000 0.0000 -0.0
9、001 0.0026 -0.0578 0.5060 0 0 0 0 0 0 0b1 =0.0178 1.2087 2.1646 2.9113 3.4745 3.8800 4.1536 4.3211 4.4082 4.4407 4.4444 4.4450b2 =0.0176 1.2044 2.2146 2.9124 3.3941 3.7934 4.1674 4.4615 4.5548 4.3853 4.1541 4.6103b3 =-0.0002 1.2715 2.1545 2.8709 3.4293 3.8694 4.1662 4.3473 4.5269 4.5725 4.0219 4.6398b4 =0 0.0022 0.1382 1.0585 3.0629 4.6210 4.2617 3.7489 4.9958 4.3855 4.0619 4.6361r1 =0.2583r2 =0.0858r3 =0.0014r4 =10.3207