数模学习笔记(六)——灰色系统

1、我们将信息完全明确的系统称为白色系统,信息未知的系统称为黑色系统,部分信息明确、部分信息不明确的系统称为灰色系统。

灰色系统着重外延明确、内涵不明确的对象,模糊数学着重外延不明确、内涵明确的对象。

2、GM(1,1)的灰色预测

1)数据的检验与处理:计算数列的级比,若都落在可容覆盖内则数据可以进行预测,否则进行平移变化

2)建立模型

a.建立灰微分方程确定参数的值

b.应用上述参数值解白微分方程

3)检验预测值:残差检验,级比偏差值检验

3、GM(1,1)模型程序

 1 %%GM(1,1)%%
 2 function [x_0,u,range,derror,rho]=gm11(x0)  %x0为列向量
 3 n=length(x0);
 4 lamda=x0(1:n-1)./x0(2:n);
 5 range=minmax(lamda');%计算级比的范围
 6 x1=cumsum(x0);
 7 B=[-0.5*(x1(1:n-1)+x1(2:n)),ones(n-1,1)];
 8 Y=x0(2:n);
 9 u=BY;
10 x1=(x0(1)-u(2)/u(1))*exp(-u(1)*[0:n-1])+u(2)/u(1);
11 x_0=[x0(1),diff(x1)];%模型预测数据
12 error=x0'-x_0;%残差
13 derror=abs(error./x0');%相对误差
14 rho=1-(1-0.5*u(1))/(1+0.5*u(1))*lamda';%级比偏差值
15 end

GM(2,1)模型程序

 1 %%GM(2,1)%%
 2 function [x_0,u,range,derror]=gm21(x0)  %x0为行向量
 3 n=length(x0);
 4 x1=cumsum(x0);
 5 dx0=diff(x0)';
 6 z=0.5*(x1(2:end)+x1(1:end-1))';
 7 B=[-x0(2:end)',-z,ones(n-1,1)];
 8 u=Bdx0;
 9 x=dsolve('D2x+a1*Dx+a2*x=b','x(0)=c1,x(5)=c2');
10 x=subs(x,{'a1','a2','b','c1','c2'},{u(1),u(2),u(3),x1(1),x1(n)});
11 x1=subs(x,'t',0:n-1);
12 x_0=[x0(1),diff(x1)];%模型预测数据
13 error=x0-x_0;%残差
14 derror=abs(error./x0);%相对误差
15 end
原文地址:https://www.cnblogs.com/wl142857/p/3190131.html