多项式最小二乘算法

标签:
matlab最小二乘 |
分类: matlab相关 |
clc;
close all;
%原始数据
Y=[0.33 0.88 1.44 2.00 2.56 3.13 3.71];%给定Y数值
X=[-0.75 -0.5 -0.25 0 0.25 0.5 0.75];
L=length(Y);
for i=1:1:L
end
X1=[ones(L,1),row1'];
X2=[ones(L,1),row1',row2'];
X3=[ones(L,1),row1',row2',row3']; %构造矩阵L×4
%一阶估计
Estimate1=inv(X1'*X1)*X1'*Y';
for i=1:1:L
end
%二阶估计
Estimate2=inv(X2'*X2)*X2'*Y';
for i=1:1:L
end
%三阶估计
Estimate3=inv(X3'*X3)*X3'*Y';
for i=1:1:L
end
figure(1);
plot(X,Y,'+',X,EZ1,'-',X,EZ2,'.',X,EZ3,'^');
xlabel('时间');
ylabel('数据曲线');
title('最小二乘法估计曲线');
legend('原系统','一阶估计','二阶估计','三阶估计','Location','NorthWest');
figure(2);
plot(X,Y,'-',X,EZ1,'^');
xlabel('时间');
ylabel('数据曲线');
title('一阶最小二乘法估计曲线');
legend('原系统','一阶估计','Location','NorthWest');
figure(3);
plot(X,Y,'-',X,EZ2,'+');
xlabel('时间');
ylabel('数据曲线');
title('二阶最小二乘法估计曲线');
legend('原系统','二阶估计','Location','NorthWest');
figure(4);
plot(X,Y,'-',X,EZ3,'+');
xlabel('时间');
ylabel('数据曲线');
title('三阶最小二乘法估计曲线');
legend('原系统','三阶估计','Location','NorthWest');
%平方误差信息
error1=0;
error2=0;
error3=0;
for i=1:1:L
end
e1=sqrt(error1)
e2=sqrt(error2)
e3=sqrt(error3)
%输出系数信息
%digits(n) 控制总位数 vpa(s,n)控制有效位数
Estimate1
Estimate2
Estimate3
e1 =
e2 =
e3 =
Estimate1 =
Estimate2 =
Estimate3 =
http://s2/bmiddle/4b013fb1n8b00a5971391&690
图1 数据拟合曲线图
email:dingqian12345@126.com
2010年07月10日上午于njust automation 101
参考文献
[1] 李言俊,张科.系统辨识理论及应用[M].国防工业出版社,2006.
[2]
CopyRight:版权所有若需转载或使用请联系作者
Email:dingqian12345@126.com