数据拟合实验举例及程序

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

实验二:曲线拟合

目的与要求:了解最小二乘法的基本原理,用最小二乘法求拟合数据的多项式,做出离散函

)

,

(

i

i

y

x

和拟合函数的图形,掌握利用最小二乘法进行数据拟合的基本思想,熟悉寻找最

佳方法拟合曲线的方法,通过计算机解决实验问题

例题1已知观测数据

x0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

y-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.3 11.2

对实验一中的例题2进行曲线拟合

x=0:0.1:1;

y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.3 11.2];

plot(x,y,'k.','markersize',25)

axis([0 1.3 -2 16])

p=polyfit(x,y,3);

p1=polyfit(x,y,6);

t=0:0.01:1.2;

s=polyval(p,t);

s1=polyval(p1,t);

hold on

plot(t,s,'k-','linewidth',2)

plot(t,s,'k--','linewidth',2)

grid;

例题2已知观测数据

x 1 3 4 5 6 7 8 9 10

y10 5 4 2 1 1 2 3 4

求一代数多项式曲线,使其最好地拟合这组给定数据。(1)画出数据分布趋势图

>> xi=[1 3 4 5 6 7 8 9 10];

>> yi=[10 5 4 2 1 1 2 3 4];

>> plot(xi,yi,'o')

(2)建立数学模型y=a2 x^2+ a1 x + a0建立超定方程组系数矩阵>> A=[ones(size(xi));xi;xi.^2]'

A =

1 1 1

1 3 9

1 4 16

1 5 25

1 6 36

1 7 49

1 8 64

1 9 81

1 10 100

(3)求超定方程组的最小二乘解

>> a=A\yi'

13.4597

-3.6053

0.2676

(4)求拟合曲线方程

>> b=[0.2376 -3.6053 13.4597]

b =

0.2376 -3.6053 13.4597 >> y=poly2str(b,'x')

y =

0.2376 x^2 - 3.6053 x + 13.4597

>> f2=polyval(flipud(a),xi);

>> plot(xi,yi,'bo',xi,f2,'r-')

(5)用方程y=ax^b拟合

>> x=[ones(size(xi));log(xi)];

>> aa=x'\log(yi)'

aa =

2.1257

-0.6913

>> yy=exp(2.1257)*xi.^(-0.6913); >> yy=exp(2.1257)*xi.^(-0.6913); >> plot(xi,yi,'bo',xi,yy,'r--',xi,f2,'b-')

例题3已知观测数据

x0.1 0.4 0.5 0.7 0.7 0.9

y0.61 0.92 0.99 1.52 1.47 2.03

用polyfit命令作拟合直线并计算偏差。

fprintf('i x(i) y(i) y=c_1x+c_2 偏差\n');

for i=1:6

x=[0.1 0.4 0.5 0.7 0.7 0.9];

y=[0.61 0.92 0.99 1.52 1.47 2.03];

c=polyfit(x,y,1);

error=y(i)-(c(1)*x(i)+c(2));

fprintf('%2d %2.1f %5.2f %10.4f %10.5f\n ',i,x(i) ,y(i) ,c(1)*x(i)+c(2), error); end

i x(i) y(i) y=c_1x+c_2 偏差

1 0.1 0.61 0.4626 0.14738

2 0.4 0.92 0.9920 -0.07198

3 0.5 0.99 1.168

4 -0.17844

4 0.7 1.52 1.5214 -0.00135

5 0.7 1.47 1.5214 -0.05135

6 0.9 2.03 1.8743 0.15574

求浓度与时间的二次拟合曲线。

运行及结果显示:

]0[-

=

.4

=a

a

a

3875000

=

]1[

.0

044466

]2[

,

.1

065962

,

相关文档
最新文档