%该程序用于灰色关联分析,其中原始数据的第一行为参考序列,1 至 15 行为正相关序
列,16 至 17 为负相关序列 1。
clc,clear
load x.txt %把原始数据存放在纯文本文件 x.txt 中
%如果全为正相关序列,则将两个循环替换为下列代码
%for i=1:size(x,1)
%x(i, =x(i, /x(i,1);
%end
for i=1:15
x(i, =x(i,:)/x(i,1); %标准化数据
end
for i=16:17
x(i,:)=x(i,1)./x(i,:); %标准化数据
end
data=x;
n=size(data,1);
ck=data(1,:);%分离参考序列
bj=data(2:n,:);m1=size(bj,1);
for j=1:m1
t(j,:)=bj(j,:)-ck;
end
jc1=min(min(abs(t')));jc2=max(max(abs(t')));
rho=0.5;%灰色关联度为 0.5
ksi=(jc1+rho*jc2)./(abs(t)+rho*jc2);
r=sum(ksi')/size(ksi,2);
r %灰色关联度向量
[rs,rind]=sort(r,'descend') %对关联度进行降序排序
%该函数用于灰色预测模型,其中 x0 为列向量,alpha 一般取 0.5,将第一个数据视为序号
为 0,k 从 0 开始的序号矩阵
function y=huiseyuce(x0,alpha,k)
n=length(x0);
x1=cumsum(x0);
for i=2:n
z1(i)=alpha*x1(i)+(1-alpha)*x1(i-1);
end
z1=z1';
B=[-z1(2:n),ones(n-1,1)];
Y=x0(2:n);