lishaomin
2008-08-08, 10:20
您好!
在学习中遇到找不到答案,请帮助!
>> function c7fun7_2
%clear;clc;
X10=[2.874 3.278 3.307 3.39 3.3679]; X20=[7.04 7.645 8.075 8.53 8.774];
Xn0=X20;
%——调用函数求取GM(1,N)的参数
KK=c7fun72(X10,Xn0)
a=KK(1);b=KK(2);
%——对数列X20进行1次累加生成得到x21
m2=length(X20); s3=0;
for jj=1:1:m2
X21(jj)=s3+X20(jj); s3=X21(jj);
end
%利用GM(1,N)进行预测,利用X21预测X11——标记为xx11
for k=1:1:m2-1
xx11(k+1)=(X10(1)-b/a*X20(k+1))*exp(-a*k)+b/a*X21(k+1);
end
%——对xx11进行逆累加生成
s4=0;
xx10(1)=X10(1);
for jj=2:1:m2
xx10(jj)=xx11(jj)-xx11(jj-1);
end
disp('GM(1,N)对数列1进行预测结果')
xx10
disp('数列1原始观测数据');X10
%——求算GM(1,N)参数函数
function a=c7fun72(X10,Xn0)
[n,m]=size(Xn0);
%——1次累加生成
s1=0;s2([1:n],1)=0;
for jj=1:1:m
X11(jj)=s1+X10(jj); Xn1(:,jj)=s2+Xn0(:,jj);s1=X11(jj); s2=Xn1(:,jj);
end
%——建立矩阵B、yn
for ii=1:1:m-1
B(ii)=-(X11(ii)+X11(ii+1))/2;
end
XN1=Xn1'; B=[B(:),XN1(2:m,1:n];
yn=X10([2:m])'; a=inv((B'*B))*B'*yn;
在学习中遇到找不到答案,请帮助!
>> function c7fun7_2
%clear;clc;
X10=[2.874 3.278 3.307 3.39 3.3679]; X20=[7.04 7.645 8.075 8.53 8.774];
Xn0=X20;
%——调用函数求取GM(1,N)的参数
KK=c7fun72(X10,Xn0)
a=KK(1);b=KK(2);
%——对数列X20进行1次累加生成得到x21
m2=length(X20); s3=0;
for jj=1:1:m2
X21(jj)=s3+X20(jj); s3=X21(jj);
end
%利用GM(1,N)进行预测,利用X21预测X11——标记为xx11
for k=1:1:m2-1
xx11(k+1)=(X10(1)-b/a*X20(k+1))*exp(-a*k)+b/a*X21(k+1);
end
%——对xx11进行逆累加生成
s4=0;
xx10(1)=X10(1);
for jj=2:1:m2
xx10(jj)=xx11(jj)-xx11(jj-1);
end
disp('GM(1,N)对数列1进行预测结果')
xx10
disp('数列1原始观测数据');X10
%——求算GM(1,N)参数函数
function a=c7fun72(X10,Xn0)
[n,m]=size(Xn0);
%——1次累加生成
s1=0;s2([1:n],1)=0;
for jj=1:1:m
X11(jj)=s1+X10(jj); Xn1(:,jj)=s2+Xn0(:,jj);s1=X11(jj); s2=Xn1(:,jj);
end
%——建立矩阵B、yn
for ii=1:1:m-1
B(ii)=-(X11(ii)+X11(ii+1))/2;
end
XN1=Xn1'; B=[B(:),XN1(2:m,1:n];
yn=X10([2:m])'; a=inv((B'*B))*B'*yn;