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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课题八 曲线拟合的最小二乘法

一、问题提出

从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。

在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量 y 与时间t 的拟合曲线。

二、要求

1 、用最小二乘法进行曲线拟合;

2 、近似解析表达式为()t ϕ=a 1t+a 2t 2+a 3t 3

3 、打印出拟合函数()t ϕ,并打印出()tj ϕ与()y tj 的误差

4 、另外选取一个近似表达式,尝试拟合效果的比较;

5 、* 绘制出曲线拟合图﹡。

三、目的和意义

1 、掌握曲线拟合的最小二乘法;

2 、最小二乘法亦可用于解超定线代数方程组;

3 、探索拟合函数的选择与拟合精度间的关系。

四、实验结果:

1.用最小二乘法做出的曲线拟合为

三次多项式a1= -0.0052 ,a2= 0.2634 ,a3= 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]; 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

相关文档
最新文档