最小二乘法Matlab自编函数实现及示例.docx

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

、最小二乘拟合原理

x= xl x2 ... xn

y= yl y2 ... yn

求m 次拟合 «力*

y 卅…I ZA ;

A T A = ZX 茁 X x i - X x i +1 ,- «

«

«

[函Oi …备F =⑷矿丄• A T y 所以m 次拟合曲线为y = a 0 +勿・怎+吐■审+•・・・ +如■牙皿 二、 Matlab 实现程序

function p=funLSM (x, y, m) %x z y 为序列长度相等的数据向量,m 为拟合多项式次数

format short;

A=zeros(m+l,m+l);

for i=0:m

for j=0:m

A(i + 1, j + 1)=sum(x.A (i+j));

end

b(i+1)=sum(x.A i.*y);

end

a=A\b 1;

p=fliplr (a');

三、 作业

题1:给出如下数据,使用最小二乘法球一次和二次拟合多项式(取小数点后3位) X 1.36 1.49 1.73 1.81 1.95 2.16 2.28 2.48

Y 14.094 15.069 16.844 17.378 18.435 19.949 20.963 22.495 解:

» x=[1.36 1.49 1.73 1. 81 1. 95 2. 16 2. 28 2. 48]:

» y=[14.094 15.069 16.844 17. 378 18.435 19.949 20.963 22.495]; >> p=funLSM(x, y? 1)

P =

7.4639 3.9161

>> p=funLSM(x, y? 2)

P =

0.3004 6.3145 4.9763

一次拟合曲线为:

y = 7.464x+ 3.91S

二次拟合曲线为:

y = +6.315^4-4.976

一次拟合仿真图

二次拟合仿真图例5-8 给定函数y二f(x)的实例数据表题

2:

1 2 3 4 6 7 8

yt 2 3 6 7 5 3 2

试用最小二乘法求二次拟合多项式。解:

» x=[l 2 3 4 6 7 8];

» y=[2 3 6 7 5 3 2];

>> p=funLSM(Xj y y 2)

P =

-0.3864 3.4318 -1.3182

所以

y = —0.3864%' + 3.4318X' —1.3152

相关文档
最新文档