www.gusucode.com > 用matlab实现了五类灰色关联度模型的计算源码程序 > grey_model/gld_gjjd.m

    % 改进的绝对关联度
% P11 -- The Study on the Grey Relational Degree and Its Application 

function r1 = gld_gjjd(x)
s = size(x);
len = s(2);
num = s(1);
% 无量纲化
for i = 1: num
    x(i,:) = x(i,:)./x(i,1);
end
% 求一阶差分
dx(num,len-1) = 0;
for i = 1 : num
    for j = 1 : len - 1
        dx(i,j) = x(i,j+1) - x(i,j);
    end
end
% 计算关联系数
c = 1;
beta(1,1:len-1) = 0;
w(1,1:len-1) = 0;
for i = 2 : num
    temp = sum(abs(x(i,:) - x(1,:)),2);
    for k = 1 : len - 1
        beta(i,k) = atan((dx(i,k) - dx(1,k))/(1 + dx(i,k)*dx(1,k)));
        if beta(i,k) < 0
            beta(i,k) = pi + beta(i,k);
        end
        w(i,k) = 1 - abs(x(i,k) - x(1,k))/temp;
    end
end
r = c./(c + tan(beta./2));
% 计算关联度
wr = w.*r;
r1 = sum(wr(2:num,:),2)/(len - 1);