程序在下面,哪里错了吗?还是这组数据不适合做灰色预测?
syms a b;
c=[a b]*;
A=[0.103 0.111 0.087 0.136 0.085 0.114 0.112 0.096 0.072 0.105 0.098 0.096 0.113 0.086 0.101 0.089 0.090 0.082 0.061 0.077 0.081 0.123 0.096 0.145 0.221 0.152 0.116 0.086 0.082 0.106 0.07 0.065 0.101 0.128 0.143 0.18];
B=cumsum(A);
n=length(A);
for i=1:(n-1)
C(i)=(B(i)+B(i+1))/2;
end
D=A;
D(1)=[];
D=D*;
E=[-C; ones(1,n-1)];
c=inv(E*E*)*E*D;
c=c*;
a=c(1);
b=c(2);
F=[];F(1)=A(1);
for i=2:(n+12) %向后预测12个值
F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
G=[];G(1)=A(1);
for i=2:(n+12)
G(i)=F(i)-F(i-1);
end
t1=1:36;
t2=1:48;
G
plot(t1,A,*o*,t2,G)
最后画出图来是一条直线,为什么差这么多呢?
syms a b;
c=[a b]*;
A=[0.103 0.111 0.087 0.136 0.085 0.114 0.112 0.096 0.072 0.105 0.098 0.096 0.113 0.086 0.101 0.089 0.090 0.082 0.061 0.077 0.081 0.123 0.096 0.145 0.221 0.152 0.116 0.086 0.082 0.106 0.07 0.065 0.101 0.128 0.143 0.18];
B=cumsum(A);
n=length(A);
for i=1:(n-1)
C(i)=(B(i)+B(i+1))/2;
end
D=A;
D(1)=[];
D=D*;
E=[-C; ones(1,n-1)];
c=inv(E*E*)*E*D;
c=c*;
a=c(1);
b=c(2);
F=[];F(1)=A(1);
for i=2:(n+12) %向后预测12个值
F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
G=[];G(1)=A(1);
for i=2:(n+12)
G(i)=F(i)-F(i-1);
end
t1=1:36;
t2=1:48;
G
plot(t1,A,*o*,t2,G)
最后画出图来是一条直线,为什么差这么多呢?