⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mygm.m

📁 用matlab实现灰色序列预测GM(1,1)
💻 M
字号:
x0=[900 970 1030 1120 1120]; %原始序列
[m,n]=size(x0);
a_l=exp(-2/(n+1))            %计算级比覆盖范围
a_h=exp(2/(n+1))
for i=2:n
    q(i)=x0(i-1)/x0(i);      %计算实际级比
end
q
for i=1:n                     %计算一次累加序列
    x1(i)=sum(x0(1:i));       
end
for k=1:n-1                     
    z1(k)=1/2*x1(k)+1/2*x1(k+1);
end
Y=x0(2:n)';                    %得出Y矩阵
B=[];
B(:,1)=-z1';
B(:,2)=ones(1);                 %得出B矩阵
aU=(inv(B'*B))*B'*Y;            %计算a,U 
a=aU(1);
U=aU(2);
for i=1:n+2 
    xx1(i)=(x0(1)-U/a)*exp(-a*(i-1))+U/a; %解偏微分方程
end
for i=1:n-1+2
    xx0(i+1)=xx1(i+1)-xx1(i);           %一次累减,得出预测值
end

for i=2:n                               %计算残差
    e(i)=x0(i)-xx0(i);
end
ee=e(2:n);
ee=ee+2*abs(min(ee));                    %对残差进行正化处理


⌨️ 快捷键说明

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