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

📄 gm(1,1)-matlab.txt

📁 若系统中有信息不完全或不确知的现象
💻 TXT
字号:
数学建模--灰色理论Matlab程序 - [数学建模]
Tag:灰色理论 数学建模 matlab 代码 

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://mydongdong.blogbus.com/logs/19013622.html



所谓灰色系统是指,相对于一定的认识层次,系统内部的信息部分已知,部分未知,即信息不完全的系统。灰色系统理论认为,由于各种环境因素对系统的影响,使得表现系统行为特征的离散数据呈现出离乱,但是这一无规的离散数列是潜在的有规序列的一种表现,系统总是有其整体功能,也就必然蕴含着某种内在规律。因而任何随机过程都可看作是在一定时空区域变化的灰色过程,随机量可看作是灰色量,通过生成变换可将无规序列变成有规序列。作为灰色系统理论核心和基础的灰色模型(Grey Model) ,简称GM模型,概括而言具有以下3 个特点: 

1.建模所需信息较小,通常只要有4 个以上数据即可建模 

2.不必知道原始数据分布的先验特征,对无规或不服从任何分布的任意光滑离散的原始序列,通过有限次的生成即可转化成为有规序列 

3.建模的精度较高,可保持原系统的特征,能较好地反映系统的实际状况 灰色理论是数学建模过程中常用到的理论,在解决某些已知信息不完全的问题具有独特的优势. 

 

在灰色理论模型GM(1,N)中,通常系统特征量都只有一个,即N=1的情况最

常见也最常用,所以这里只给出GM(1,1) 模型,模型如下:

 

设原始数据序列为:


对作一次累加生成


 

其中 由式(1.1)和式(1.2)可得


 

由此得相应的微分方程模型为




 

此即为GM(1,1)模型,式中a,b为待定参数,a称为发展系数,b称为灰色作用量。

 

 设为待定参数向量,利用最小二乘法求解可得




其中


估计出参数a,b之后,则方程(1.4)的解为




由(1.5)可对 作出预测,并由累减生成得到原始数据序列的模拟系列值为


下面给出其MATLAB代码,以供有需要的朋友参考: 

gg=[[x1,x2,x3,x4,x5],zeros(1,m)];%矩阵gg,其中[x1,x2,x3,x4,x5]是已知数据,前面说到灰色理论只要四个数据以上就可以建模,所以这里用五个比较合理,zeros(1,m)中的m是你所想得到的预测数据的个数,由前面用于预测的已知数据是五个,所以m的值最好也在五个左右.在下面的语句中,实际操作的时候不要忘了把m替换成实际的数值.
result=zeros(1,m);
for j=1:m
g0=gg(:,j:j+4);
n=5;
x0=g0;
x1=zeros(n-1,1);
x1(1)=x0(1);
for i=2:n,
    x1(i)=x1(i-1)+x0(i);
end
for k=1:n-1
    z1(k)=(x1(k)+x1(k+1))/2;
end
z=zeros(1,n-1);
for i=1:n-1
    z(i)=-z1(i);
end
B=[z;ones(1,n-1)];
B=B';
y=zeros(n-1,1);
for i=2:n
    y(i-1)=x0(i);
end
u=inv(B'*B)*B'*y;
a=u(1);
b=u(2);
for k=0:5,
x2(k+1)=(x0(1)-b/a)*exp(-a*k)+b/a;
end
x3(1)=x0(1);
for k=1:5,
    x3(k+1)=x2(k+1)-x2(k);
end
g=x3;
result(j)=g(n+1);
gg(j+5)=g(n+1);
end
result;
r=result' %r即为预测得到的数据

⌨️ 快捷键说明

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