gm2.m

来自「GM(1」· M 代码 · 共 46 行

M
46
字号
%-------------灰色预测------------------%
clear all;
clc;
x=[1 6 7 8];   %初始数据序列
[m,n]=size(x);
x1=[];          %累加序列                 
x1(1)=x(1);                   

for i=1:1:n-1              
   x1(i+1)=x1(i)+x(i+1);  %累加值
end;                      %以上,作一阶累加1-AGO得x1

c=[];
for i=1:1:n-1
       c(i)=-1/2*(x1(i)+x1(i+1));
end;

B=[c',ones(n-1,1)]; Y=x(2:n); Y=Y';         %以上,构造矩阵B和Y
b=B'*B;
d=B';d1=d*B;d2=d*Y;
c=d1\d2;
a=c(1);
u=c(2);               %以上,利用最小二乘法解参数a和u

x0=[];x0(1)=x(1);
for i=1:1:n
       x0(i+1)=(1-exp(a))*(x(1)-u/a)*exp(-a*i);
end;                            %累减还原得到灰色预测模型x0

xq=x0(1:n);
d1=(x-xq)./x.*100;     %分析误差;相对误差(%):(实际值-预测值)/实际值*100
w=d1;
W=[];
for i=1:1:n
   if w(i)>=0
     W(i)=w(i);
   else 
      W(i)=-w(i);
   end;
 end;
w=[];
da1=sum(W)/n;          %平均误差:各相对误差的绝对值的和/个数

x0 
d1

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?