灰色系统模型和matlab
程序员文章站
2022-07-14 10:02:31
...
灰色系统模型理论及其应用
1.关联分析
因素分析的一种,关联分析实际上就是动态过程发展态势的量化比较分析。
1.粗糙式:对于关联分析,一般用excel画出图表,几何形状越接近,关联程度就越大。
2.计算式:
题目的意思是要对铅球运动员的专项成绩进行因素分析,给出的信息是每年最好成绩及16项专项素质和身体素质的时间序列资料。
数据格式如下:
项目/时间 | 1982 | 1983 | … |
---|---|---|---|
铅球专项成绩 | 13.6 | … | … |
… | … | … | … |
Matlab代码块
clc,clear %清空
load x.txt %必须命名为x
for i=1:15
x(i,:)=x(i,:)/x(i,1); %标准化数据
end
for i=16:17
x(i,:)=x(i,:); %标准化数据(后两行数据是分秒)
end
data=x;
n=size(data,2); %求矩阵的列数,即观测时刻的个数
ck=data(1,:); %提出比较数列
bj=data(2:end,:); %提出比较数列
m2=size(bj,1);%求比较数列的个数
for j=1:m2
t(j,:)=bj(j,:)-ck;
end
mn=min(min(abs(t')));%求最小差
mx=max(max(abs(t'))); %求最大差
rho=0.5; %设置分辨系数
ksi=(mn+rho*mx)./(abs(t)+rho*mx); %求关联系数
r=sum(ksi')/n %求关联度
[r,rind]=sort(r,'descend'); %对关联度进行排序
排名越靠前的项目越是主要因素。但是这边无法得知是正关联还是负关联,要想知道,需要计算:
2.优势分析
时,称x3为优势子因素。
例题2:
解析:这个表没截全哈~但是数据的形式和上面一题一样
clc,clear
load x.txt %必须命名为x
for i=1:15
x(i,:)=x(i,:)/x(i,1); %标准化数据
end
for i=16:17
x(i,:)=x(i,:); %标准化数据(后两行数据是分秒)
end
data=x;
n=size(data,1); %求矩阵的行数,即所有因素的个数
m=size(data,2); %求矩阵的列数,即观测时刻的个数
m1=10;m2=7; %m1为母因数个数,m2为子因素个数
ck=data(m2+1:n,:); %提出母因素数据
bj=data(1:m2,:); %提出子因素数据
m2=size(bj,1);%求比较数列的个数
for i=1:m1
for j=1:m2
t(j,:)=bj(j,:)-ck(i,:);;
end
mn=min(min(abs(t')));%求母因素i的最小差
mx=max(max(abs(t'))); %求母因素i的最大差
rho=0.5; %设置分辨系数
ksi=(mn+rho*mx)./(abs(t)+rho*mx); %求关联系数
rt=sum(ksi')/m %求关联度
r(i,:)=rt;
end
r; %得到各个子因素对母因素的关联度,得到一个关联矩阵
%从而可以通过数值得知对每个母因素影响最大的子因素(行数为母因素,列数为子因素)
注意此处是子因素位于数据上方,母因素位于数据下方,对要有清晰的认识。
下一块内容是生成数
生成数:基本方法有累加生成,累减生成,均值生成。通过挖掘和寻找新数的规律性来增加有用信息。
灰色模型GM
灰色系统理论是基于关联空间、光滑离散函数等概念定义灰导数与回微分方程,进而用离散数据列建立微分方程形式的动态模型。需要注意的是GM(1,1)和GM(1,1)的白化型。二者的区别是白化型富有连续性。前面一个1是表示一阶方程,后面的1表示1个变量,也存在GM(1,N)和他的白化型。
然后就是最常用到的灰色预测
就是用来预测的,实质上是将随机过程当做灰色过程,将随机变量当做灰变量。
步骤:
1.数据包的检验和处理
2.建立模型
3.检验预测值
4.预测预报
小姿势
灾变预测,将大于某个值的点组成新数列称为灾变数列,不是预测数据本身的大小,而是预测异常值出现的时间。
3.灾变预测
例题3:
解析:看代码吧
a=[390.6,412,320,559.2,380.8,542.4,553,310,561,300,632,540,406.2,313.8,576,587.6,318.5]';
%录入数据
t0=find(a<=320);n=length(t0);%找出灾变数列
t1=cumsum(t0); %累加运算
B=[-0.5*(t1(1:end-1)+t1(2:end)),ones(n-1,1)];Y=t0(2:end);
r=B\Y; %固定的公式
y=dsolve('Dy+a*y=b','y(0)=y0');
y=subs(y,{'a','b','y0'},{r(1),r(2),t1(1)});
yuce1=subs(y,'t',[0,n+1]);
%为提高精确度,先计算预测值,再显示微分方程的解
y=vpa(y,6) %显示6位数字
yuce=diff(yuce1);%差分运算,还原数据
yuce=[t0(1),yuce];
yuce_new=yuce(n+1:end) %求得两个预测值?这个我也没看懂,有英雄愿意回答甚好
4.灰色预测
例题4:灰色预测计算实例
x0=[71.1 72.4 72.4 72.1 71.4 72.0 71.6]';
n=length(x0);
lamda=x0(1:n-1)./x0(2:n) %计算级比
range=minmax(lamda');
x1=cumsum(x0);%累加运算
B=[-0.5*(x1(1:n-1)+x1(2:n)),ones(n-1,1)];
Y=x0(2:n);
u=B\Y;
x=dsolve('Dx+a*x=b','x(0)=x0');
x=subs(x,{'a','b','x0'},{u(1),u(2),x1(1)});
yuce1=subs(x,'t',[0:n-1]);
%为提高精确度,先计算预测值,再显示微分方程的解
y=vpa(x,6); %显示6位数字
yuce=[x0(1),diff(yuce1)];%差分运算,还原数据
epsilon=x0'-yuce; %计算残差
delta=abs(epsilon./x0'); %计算相对误差
rho=1-(1-0.5*u(1))/(1+0.5*u(10)*lamda'; %计算级比偏差值
脚注
资料来自网络,我只是归纳1.
- 来自《灰色模型理论及应用matlab》 ↩
推荐阅读
-
Win10系统应用和功能卸载按钮灰色无法卸载应用的原因及解决方法图文教程
-
多维灰色GM(1,N)预测模型及MATLAB实现
-
灰色系统模型和matlab
-
关注网银系统的安全:安全模型和架构设计的介绍
-
基于模型(MBD)的树莓派程序开发——设置树莓派自动连接wifi和使用指令连接Matlab/Simulink和树莓派(不使用树莓派连接向导连接)
-
Tensorflow导出pb模型,并在python和matlab下分别进行预测
-
【数学建模】灰色预测模型GM(1,1)附例题分析(MATLAB实现)
-
如何系统了解学习多线程和异步模型?
-
冠层、叶片和光系统尺度的日光诱导叶绿素荧光SIF模拟的辐射传输模型:SCOPE模型介绍
-
Win10系统应用和功能卸载按钮灰色无法卸载应用的原因及解决方法图文教程