课
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
八 曲线拟合的最小二乘法
一、问题提出
从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。
在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量 y与时间t 的拟合曲线。
二、要求
t(分)
0
5
10
15
20
25
30
35
40
45
50
55
y(×10-4)
0
1.27
2.16
2.86
3.44
3.87
4.15
4.37
4.51
4.58
4.02
4.64
1 、用最小二乘法进行曲线拟合;
2 、近似解析表达式为=a1t+a2t2+a3t3
3 、打印出拟合函数,并打印出与的误差
4 、另外选取一个近似表达式,尝试拟合效果的比较;
5 、* 绘制出曲线拟合图﹡。
三、目的和意义
1 、掌握曲线拟合的最小二乘法;
2 、最小二乘法亦可用于解超定线代数方程组;
3 、探索拟合函数的选择与拟合精度间的关系。
四、实验结果:
1.用最小二乘法做出的曲线拟合为
三次多项式 a1= -0.0052 ,a2= 0.2634 ,a3= 0.0178。
= (-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];
a1=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];
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) %六次次多项式误差平方和%
r3= sum((y-b3).^2) %九次多项式误差平方和%
r4= sum((y-b4).^2) %十二次多项式误差平方和%
plot(x,y,'*') %用*画出x, y图像%
hold on
plot(x,b1, 'r') %用红色线画出x,b1图像%
hold on
plot(x,b2, 'g') %用绿色线画出x,b2图像%
hold on
plot(x,b3, 'b:o') %用蓝色o线画出x,b3图像%
hold on
plot(x,b4, 'y') %用黄线画出想x,b4图像%
运行结果:
a1 =
0.0000 -0.0052 0.2634 0.0178
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
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 =
0.0176 1.2044 2.2146 2.9124 3.3941 3.7934 4.1674 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
b4 =
0 0.0022 0.1382 1.0585 3.0629 4.6210 4.2617 3.7489 4.9958 4.3855 4.0619 4.6361
r1 =
0.2583
r2 =
0.0858
r3 =
0.0014
r4 =
10.3207