数值分析(最小二乘拟合)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课题八曲线拟合的最小二乘法
、问题提出从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。
在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量y与时间t的
拟合曲线。
、要求
1 、用最小二乘法进行曲线拟合;
2、近似解析表达式为t =a i t+a2t2+a3t3
3、打印出拟合函数:t ,并打印出「tj与y tj的误差
4、另外选取一个近似表达式,尝试拟合效果的比较;
5、*绘制出曲线拟合图*。
三、目的和意义
1 、掌握曲线拟合的最小二乘法;
2、最小二乘法亦可用于解超定线代数方程组;
3、探索拟合函数的选择与拟合精度间的关系。
四、实验结果:
1. 用最小二乘法做出的曲线拟合为
三次多项式q= -0.0052 , a2= 0.2634 ,比二 0.0178。t =
(-0.0052) t+ (0.2634) t2 + (0.0178) t3
三次多项式的误差平方和=0.2583。
图形为:
图形上红线表示拟合曲线,*表示实验所给的点。
源代码为:
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];
%三次多项式拟合%
a仁 polyfit(x,y,3) b1=
polyval(a1,x)
r1= sum((y-b1).八2) %三次多项式误差平方和%
plot(x,y,'*') %用 *画出 x,y 图像% hold on plot(x,b1, 'r')
%用红色线画出x,b1图像%
(说明本程序调用了 MATLAB 中的函数polyfit 、polyval 、plot )
2•另外选取几个近似表达式:
主要选取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];
y=[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64];
%三次多项式拟合 %
%六次多项式拟合 % %九次多项式拟合 % %十二次多项式拟合 % %三次多项式误差平方和 % %六次次多项式误差平方和 % %九次多项式误差平方和 % %十二次多项式误差平方和 % %用*画出x, y 图像% %用红色线画出 x,b1 图像% %用绿色线画出x,b2图像% %用蓝色o 线画出x,b3图像% %用黄线画出想 x,b4 图像%
运行结果: a1 =
Warning: Polynomial is badly conditioned. Add points with
distinct X values, reduce the degree of the polynomial, or try centering
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)42) r2= sum((y-b2).A 2) r3= sum((y-b3).A2) r4= sum((y-b4).A2) plot(x,y,'*') hold on plot(x,b1, 'r') hold on plot(x,b2, 'g') hold on plot(x,b3, 'b:o') hold on plot(x,b4, 'y')
0.0000 -0.0052 0.2634 0.0178
and scaling as described in HELP POLYFIT.
> In polyfit at 80
a2 =
0.0000 -0.0000 0.0001 -0.0013 0.0079 0.2240 0.0176
Warning: Polynomial is badly conditioned. Add points with distinct X
values, reduce the degree of the polynomial, or try centering
and scaling as described in HELP POLYFIT.
> In polyfit at 80
a3 =
0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0007 0.0081 -0.0549 0.3967 -0.0002 Warning: Polynomial is not unique; degree >= number of data points.
> In polyfit at 72 a4 =
1.0e-007 *
-0.0000 0.0000 -0.0001 0.0026 -0.0578 0.5060 0 0 0 0 0 0 0
b1 =
0.0178 1.2087 2.1646 2.9113 3.4745 3.8800 4.1536 4.3211 4.4082 4.4407 4.4444 4.4450
b2 =
3.7934
4.1674
0.0176 1.2044 2.2146 2.9124 3.3941
4.4615 4.5548 4.3853 4.1541 4.6103
b3 =
-0.0002 1.2715 2.1545 2.8709 3.4293
3.8694
4.1662
4.3473 4.5269 4.5725 4.0219 4.6398