数值分析(最小二乘拟合)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档