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