当前位置:文档之家› 灰色关联度matlab源程序(完整版)

灰色关联度matlab源程序(完整版)

灰色关联度matlab源程序(完整版)
灰色关联度matlab源程序(完整版)

灰色关联度matlab源程序(完整版)

近几天一直在写算法,其实网上可以下到这些算法的源程序的,但是为了搞懂,

搞清楚,还是自己一个一个的看了,写了,作为自身的积累,而且自己的的矩

阵计算类库也迅速得到补充,以后关于算法方面,基本的矩阵运算不用再重复写了,挺好的,是种积累,下面把灰关联的matlab程序与大家分享。

灰色关联度分析法是将研究对象及影响因素的因子值视为一条线上的点,与待识别对象及影响因素的因子值所绘制的曲线进行比较,比较它们之间的贴近度,并分别量化,计算出研究对

象与待识别对象各影响因素之间的贴近程度的关联度,通过比较各关联度的大小来判断待识别对象对研究对象的影响程度。

简言之,灰色关联度分析的意义是指在系统发展过程中,如果两个因素变化的态势是一致的,即同步变化程度较高,则可以认为两者关联较大;反之,则两者关联度较小。因此,灰色关联度分析对于一个系统发展变化态势提供了量化的度量,非常适合动态(Dynamic)的历程分析。灰色关联度可分成“局部性灰色关联度”与“整体性灰色关联度”两类。主要的差别在于局部性灰色关联度有一参考序列,而整体性灰色关联度是任一序列均可为参考序列。关联度分析是基于灰色系统的灰色过程, 进行因素间时间序列的比较来确定哪些是影响大的主导因素, 是一种动态过程的研究。

关联度计算的预处理,一般初值化或者均值化,根据我的实际需要,本程序中使用的是比较序列与参考序列组成的矩阵除以参考序列的列均值等到的,当然也可以是其他方法。

%注意:由于需要,均值化方法采用各组值除以样本的各列平均值

clear;clc;

yangben=[

47.924375 25.168125 827.4105438 330.08875 1045.164375 261.374375

16.3372 6.62 940.2824 709.2752 962.1284 84.874

55.69666667 30.80333333 885.21 275.8066667 1052.42 435.81

]; %样本数据

fangzhen=[

36.27 14.59 836.15 420.41 1011.83 189.54

64.73 35.63 755.45 331.32 978.5 257.87

42.44 23.07 846 348.05 1025.4 296.69

59.34 39.7 794.31 334.63 1016.4 317.27

52.91 17.14 821.79 306.92 1141.94 122.04

4.21 4.86 181

5.52 2584.68 963.61 0.00

6.01 2.43 1791.61 2338.17 1278.08 30.87

3.01 1.58 1220.54 956.14 124

4.75 3.91

25.65 7.42 790.17 328.88 1026.01 92.82

115.80 27 926.5 350.93 1079.49 544.38

12.63 8.75 1055.50 1379.00 875.10 1.65

]; %待判数据

[rows,cols]=size(fangzhen);

p=0.5; %分辨系数

[m,n]=size(yangben);

R=[];

for irow=1:rows

yy=fangzhen(irow,:);

data=[yy;yangben];

data_gyh1=mean(yangben)

for i=1:m+1

for j=1:n

data_gyh(i,j)=data(i,j)/data_gyh1(j);

end

end

for i=2:m+1

for j=1:n

Dij(i-1,j)=abs(data_gyh(1,j)-data_gyh(i,j));

end

end

Dijmax=max(max(Dij));

Dijmin=min(min(Dij));

for i=1:m

for j=1:n

Lij(i,j)=(Dijmin+p*Dijmax)/(Dij(i,j)+p*Dijmax);

end

end

LijRowSum=sum(Lij');

for i=1:m

Rij(i)=LijRowSum(i)/n;

end

R=[R;Rij];

end

R

matlab求灰色关联度矩阵源代码

2010-12-11 22:57

function greyrelationaldegree(X,c)

%GRAYRELATIONALDEGREE this function is used for calculating the gery %relation between squence

%rememeber that the first column of the input matrix is the desicion %attribution squences.what we want to calculate is the grey ralational degree between

%it and other attributions

%X is the squence matrix, c is the parameter used in the function

%in most of the time, the value of c is 0.5

firstrow = X(1,:);

reci_firstrow = 1./firstrow;

reci_convert = diag(reci_firstrow);

initialMIRROR = X*reci_convert;% find the initial value mirror of the sequce matrix

A = initialMIRROR'

[nrow,ncolumn] = size(A);

for (i=2:nrow)

C = A(i,:)-A(1,:)

D=abs(C);

eval(['B' num2str(i) '=D']);

amax = max(eval(['B' num2str(i)]))

amin = min(eval(['B' num2str(i)]))

maxarray(i-1)=amax

minarray(i-1)=amin

end %find the difference squence and the max value and min value of each squence

maxmax = max(maxarray)

minmin = min(minarray)

for(i=2:nrow)

for(j=1:ncolumn)

eval(['greyrelationdegree' num2str(i)

'(j)=(minmin+c*maxmax)/(B' num2str(i) '(j)+c*maxmax)'])

end

end % calculate the greyralational degree of each data

for(i=2:nrow)

eval(['greyrelatioanaldegree_value' num2str(i) '= mean (greyrelationdegree' num2str(i) ')' ])

end

基于matlab灰色关联度计算的实现

2006年07月28日星期五上午 11:06

function r=incident_degree(x0,x1)

%compute the incident degree for grey model.

%Designed by NIXIUHUI,Dalian Fisher University.

%17 August,2004,Last modified by NXH at 21 August,2004

%数据初值化处理

x0_initial=x0./x0(1);

temp=size(x1);

b=repmat(x1(:,1),[1 temp(2)]);

x1_initial=x1./b;

%分辨系数选择

K=0.1;

disp('The grey interconnect degree is: ');

x0_ext=repmat(x0_initial,[temp(1) 1]);

contrast_mat=abs(x0_ext-x1_initial);

delta_min=min(min(contrast_mat));%delta_min在数据初值化后实际为零delta_max=max(max(contrast_mat));

a=delta_min+K*delta_max;

incidence_coefficient=a./(contrast_mat+K*delta_max);%得到关联系数

r=(sum(incidence_coefficient'))'/temp(2); %得到邓氏面积关联度

我们根据图1的步骤和图2的数据进行编程实现,程序如下:

%清除内存空间等

clear;

close all;

clc;

%载入源数据%其实这里可以载入execl表格的

n=15; %参与评价的人数

m=4; %参与评价的指标个数

X_0=zeros(n,m); % 数据矩阵

X_2=zeros(n,m); %偏差结果的求取矩阵

X_3=zeros(n,m); % 相关系数计算矩阵

a1_0=[13 18 17 18 17 17 18 17 13 17 18 13 18 13 18];

a2_0=[18 18 17 17 18 13 17 13 18 13 17 13 13 17 17];

a3_0=[48.67 43.33 43.56 41.89 39.47 43.44 37.97 41.14 39.67 39.83

34.11 40.58 34.19 30.75 21.22];

a4_0=[10 10.7 3 5.4 5.4 0.7 4.2 0.5 9.3 0.85 2.9 5.45 4.2 2.7 6]; %指标数

X_1=[a1_0',a2_0',a3_0',a4_0']; %最后使用到的数据矩阵

%1 寻找参考列

x0=[max(a1_0),max(a2_0),max(a3_0),max(a4_0)]; %取每列的最大值(指标的最大值)

%2 计算偏差结果

i=1;

while(i~=m+1) %为什么这个地方会出问题呢for j=1:1:n

X_2(j,i)=abs(X_1(j,i)-x0(i));

end;

i=i+1;

end

%3 确定偏差的最值

error_min=min(min(X_2));

error_max=max(max(X_2));

%4 计算相关系数

i=1;

p=0.5;

while(i~=m+1)

for j=1:1:n

X_3(j,i)=(error_min+p*error_max)/(X_2(j,i)+p*error_max);

end;

i=i+1;

end

%X_3 %可以在此观察关联矩阵

%5 计算各个学生的关连序

a=zeros(1,n);

for j=1:1:n

for i=1:1:m

a(j)=a(j)+X_3(j,i); %%%%其实可以直接用sum

end;

a(j)=a(j)/m; %%%%%%%%%可以改进%%%%%%%%%%

1 2 3 下一页

%

end

%a %在此可以观测各个学生的序

%改进:如果各个指标的所占权重不一样的话,可以添加相应的权系数

%6 排序

b=a';

[c,s]=sort(b);

for i=1:1:n

d(i)=i;

end

d=d';

result=[d b c s]

%7 将结果显示出来

figure(1);

plot(a);

figure(2)

bar(a); %柱状图

最后所得到的结果如图3到图5所示。

图3 程序运行结果

图4 曲线图

图5 柱状图

根据以上三图我们就可以判断出每个学生序列与参考序列(最大值)之间的关系,与最大值的关系越密切,那么其关联度越大。

根据以上的启示,我用matlab灰度关联分析的想法是:

1、参考序列我可以选择已知属于某一类神经元的统计数据,我选择

平均值。

2、加入一个未知类的数据,与已有类中的数据一起计算他们与平均

值的关联度。

3、计算出来的关联度我们可以有多种处理思路,如果未知类的关联

度不是排在最末,可以认为它属于这一类,或者未知类的关联度大于计算出来的关联度平均值,我们可以认为它属于这一类。

使用关联度进行分类,计算出来的关联度如何使用还是个问题,这个东西是我琢磨出来的,我还没有见到过相关的文献,估计应该可以用,期望以后的专家学者钻研了。

参考文献:

[1] 郝海燕,王斌.大学生综合素质测评的灰色关联分析法[J].承德石油高等专科

学校学报,2009,11(2):57-59.

上一页1 2 3

请教一下用MATLAB实现灰色关联分析的程序

初始矩阵为x=[1.14 1.49 1.69 2.12 2.43 4.32 5.92 6.07 7.85;3.30 3.47 3.61 3.80 4.00 4.19 4.42 4.61 4.80;6.00 6.00 6.00 7.50 7.50 7.50 9.00 9.00 9.00;1.20 1.20 1.80 1.80 1.80 2.40 2.70 3.60 4.00;4.87 5.89 6.76 7.97 8.84 10.05 11.31 12.25 11.64]

我写的程序如下:

x1=[1.14 1.49 1.69 2.12 2.43 4.32 5.92 6.07 7.85;3.30 3.47 3.61 3.80 4.00 4.19 4.42 4.61 4.80;6.00 6.00 6.00 7.50 7.50 7.50 9.00 9.00 9.00;1.20 1.20 1.80 1.80 1.80 2.40 2.70 3.60 4.00;4.87 5.89 6.76 7.97 8.84 10.05 11.31 12.25 11.64]%原始数据5行9列

x1=x

for i=1:5

for j=1:9

x(i,j)=x(i,j)/x1(1,j)

end

x1=x

for i=1:5

for j=1:9

x(i,j)=abs(x(i,j)-x1(i,1)) end

end

max=x(1,1)

min=x(1,1)

for i=1:5

for j=1:9

if x(i,j)>=max

max=x(i,j)

end

end

end

for i=1:5

for j=1:9

if x(i,j)<=min

min=x(i,j)

end

end

k=0.5 %分辨系数取值

l=(min+k*max)./(x+k*max)%求关联系数矩阵

但是运算错误!!!!

请教一下高手

问题补充:

楼下回答的不对,那样虽不会运行错误,但得不到正确的答案怎么没人再给我回答啊555555555

其他回答共1条

4.00;4.87

5.89

6.76

7.97

8.84 10.05 11.31 12.25 11.64]%原始数据5行9列

x1=x %有错,应该为x=x1

for i=1:5

灰色关联matlab程序

浏览次数:170次悬赏分:5 |提问时间:2011-5-25 19:40 |提问者:zjon111 clear;clc;

yangben=[

12409 15296 18743 22399 26451

]; %样本数据

fangzhen=[

216314 265810 314045 340903 397983

1.5 4.8 5.9 -0.7 3.3

1184 1204 1113 1102 1168

11759 13786 15781 17175 19109

38760 51322 61330 68518 83080

109998 137324 172828 224599 278140

79145 93572 114830 132678 156998

161587 172534 217885 260772 303302

]; %待判数据

[rows,cols]=size(fangzhen);

p=0.5; %分辨系数

[m,n]=size(yangben);

R=[];

for irow=1:rows

yy=fangzhen(irow,:);

data=[yy;yangben];

data_gyh1=mean(yangben)

for i=1:m+1

for j=1:n

data_gyh(i,j)=data(i,j)/data_gyh1(j);

end

end

for i=2:m+1

for j=1:n

Dij(i-1,j)=abs(data_gyh(1,j)-data_gyh(i,j));

end

end

Dijmax=max(max(Dij));

Dijmin=min(min(Dij));

for i=1:m

for j=1:n

Lij(i,j)=(Dijmin+p*Dijmax)/(Dij(i,j)+p*Dijmax);

end

end

LijRowSum=sum(Lij');

for i=1:m

Rij(i)=LijRowSum(i)/n;

end

R=[R;Rij];

end

R

哪里出错了,求高手解答,顺便求结果分析

推荐答案

data_gyh1=mean(yangben)得到的是一个数,

而data_gyh(i,j)=data(i,j)/data_gyh1(j)中data_gyh1(j)你把data_gyh1作为一个数组使用的,所以会出错。

追问

怎么改合适呢

回答

其实我不懂灰色关联是什么,所以可能在这个上边帮不了什么忙,你看看灰色关联的原理吧,

data_gyh1=mean(yangben)这一句得到的data_gyh1就是一个定值,

而data_gyh(i,j)=data(i,j)/data_gyh1(j)中需要用到的是什么值呢,你从这方面下手考虑吧。

刚搜了一下,看到了跟你这个类似的源程序。。。。他的样本数据是3*6的,所以

data_gyh1=mean(yangben)得到是yangben的每一列的均值,而你的yangben是一行的,所以应该直接让

data_gyh1=yangben。个人意见,仅供参考。

参考资料:

基于matlab的灰度关联分析法

(2010-09-23 10:12:42)

分类:matlab相关

标签:

matlab

灰度关联

分类

做了四天的研究生数学建模,感觉做的很一般,应该是没有很好的深入理解题意,而且对于神经元的背景信息不是很清楚,导致了后面的东西没有时间处理,最后一天的熬夜,终于把论文给赶了出来,第二天从早上十点一觉睡到晚上六点半。

关于建模神经元这题主要是分类和聚类问题,前者是类别已知,然后判断测试样本是否为某一类。后者是无监督学习,即么有类别信息和其他先验知识,一般要求满足最

大组内相似性和最小组间相似性。我想到了上学期给同学做的一个使用灰度关联分析法进行大学生综合素质评价的东西,下面主要讲一下那个东西是怎么实现的。

多指标综合测评主要有三大类方法:常规数学方法、模糊数学方法、多元统计分析方法。灰色关联分析是灰色系统理论中的一个分支,其对数据的要求不是很严格,不要求数据分布具有特殊规律。下面我按照参考文献1中的内容把综合素质评价的程序给实现。下面是灰度关联法进行综合评价的步骤:

图1 灰度关联分析法进行综合测评的步骤

图2 所使用的综合评价表

我们根据图1的步骤和图2的数据进行编程实现,程序如下:

%清除内存空间等

clear;

close all;

clc;

%载入源数据 %其实这里可以载入execl表格的

n=15; %参与评价的人数

m=4;

%参与评价的指标个数

X_0=zeros(n,m); %

数据矩阵

X_2=zeros(n,m); %偏差结果的求取矩阵

X_3=zeros(n,m); % 相关系

数计算矩阵

a1_0=[13 18 17 18 17 17 18 17 13 17 18 13 18 13 18]; a2_0=[18 18 17 17 18 13 17 13 18 13 17 13 13 17 17]; a3_0=[48.67 43.33 43.56 41.89 39.47 43.44 37.97 41.14 39.67 39.83 34.11 40.58 34.19 30.75 21.22];

a4_0=[10 10.7 3 5.4 5.4 0.7 4.2 0.5 9.3 0.85 2.9 5.45 4.2 2.7 6]; %指标数

X_1=[a1_0',a2_0',a3_0',a4_0']; %最后使用到的数

据矩阵

%1 寻找参考列

x0=[max(a1_0),max(a2_0),max(a3_0),max(a4_0)]; %取每列的最大值(指标的最大值)

%2 计算偏差结果

i=1;

while(i~=m+1)

%为什么这个地方会出问题呢

for j=1:1:n

X_2(j,i)=abs(X_1(j,i)-x0(i));

end;

i=i+1;

end

%3 确定偏差的最值

error_min=min(min(X_2));

error_max=max(max(X_2));

%4 计算相关系数

i=1;

p=0.5;

while(i~=m+1)

for j=1:1:n

X_3(j,i)=(error_min+p*error_max)/(X_ 2(j,i)+p*error_max);

end;

i=i+1;

end

%X_3 %可以在此观察关联矩阵

简单易懂的灰色关联度计算

灰色关联有什么用 灰色关联度,指的是两个系统或两个因素之间关联性大小的量度。目的,是在于寻求系统中各因素之间的主要关系,找出影响目标值的重要因素,从而掌握事物的主要特征,促进和引导系统迅速有效地发展。——这是比较“官方”的解释。我再来一个“野路子”的解释:用两种试验方法,得出两组数据A和B;用理论方法,得到理论解答C。那么,现在来比较试验方法A好还是B好?自然是看其结果,哪一个与C最吻合,哪个就最好呗,灰关联就是用来解决“谁和谁的关联程度更高”这样的问题的。 灰色关联的重要步骤 步骤不多,核心的,首先是数据的归一化处理,这是因为有时一个试验结果矩阵中的每个元素会有不同的量纲;接下来是计算灰色关联矩阵,这个过程涉及到的公式很吓人,我第一眼看的时候竟然没搞明白是什么意思,囧;最后是计算关联度,这也就是得到了最终结果。 下面来看看那个复杂的公式:(Pi为关联度矩阵中的元素) 计算方法 关于关联矩阵中各个元素的计算,我起初被严重误导,认为用Excel是无法完成的,结果还绕了一段弯路,很是丢人~当然,有高手通过Matlab计算的经验,而且还给出了实例,有兴趣的可以参考“仿真百科”里的内容。但我最终还是根据1992年出版的一本老书《灰色理论与方法——提要·题解·程序·应用》中的一个简单实例,用最简单的方法搞定了计算问题。鉴于我不知道如何把Excel 公式按照步骤,类似APDL那样摆出来,那就把那个例子与大家分享,说说计算原理步骤吧。 首先看下面四数列 A=[2,3,4,3.7] B=[60,73,84,58] C=[1204,801,1228,1270]

D=[303,298,247,251] 以A为目标,检验B、C、D与A的关联度。 步骤1.归一化,将数列中的每个元素,除以相同的一个数值,比如A的归一化过程为[2/2, 3/2 ,4/2, 3.7/2]或者更常用的均值化处理,都可以搞定。只需要这几个数列用同一种方法归一即可了。 步骤2.求差序列.经过归一化的A、B、C、D,用A分别减去B/C/D;即 E=A-B; F=A-C; G=A-D 步骤3.求两级最大和最小差值。这是一个容易让人糊涂的地方,但实际操作很简单: 设E中最大值为Emax,最小值为Emin,其余类推;这样一共就有六个数,分别是Emax;Emin;Fmax;Fmin;Gmax和Gmin。从这六个数中,再选出一个最大值和一个最小值,假设为M和N——而这就是上述公式当中双重最值的部分啦。 步骤4.带入公式,得到三组关联系数(单行)矩阵。 步骤5.计算关联度,实际上就是步骤4中,每组矩阵各个元素求和除以元素个数(求均值)。 步骤6.通过比较关联度数值,最大的那个,其对应的数列与目标数列的关联度最高。 Over.

灰色关联模型及其应用研究

重庆三峡学院 大学生创新性实验计划项目申报表 项目名称灰色关联模型及其应用研究 项目负责人 所在院系、专业 指导教师 联系电话 电子邮件 填表日期 教务处制

项目名称灰色关联模型及其应用研究 申请经费0.3万元计划起止时间2014年5月至2015年6月 申报团队学号姓名年级所在院系、专业联系电话E-mail 2012 导师 姓名院系职称/学历E-mail 电话 申请理由(包括项目背景及自身具备的知识条件) 一、项目背景: 灰色系统理论是中国学者邓聚龙教授于1982年提出来的一门新兴理论,该理论是一种运用特定的方法描述信息不完全的系统并进行预测、决策、控制的崭新的系统理论。灰色系统理论认为任何随机过程都是在一定的幅值和一定时区变化的灰色量,并把随机过程看成灰色过程,其是控制论观点和方法的延伸,它从系统的角度出发来研究信息间的关系,即研究如何利用已知信息去揭示未知信息,也即系统的“白化”问题。灰色系统的实质为:部分信息已知部分信息未知的一类系统。灰色关联分析是灰色系统理论的主要内容之一,它是对运行机制与物理原型不清楚或者根本缺乏物理原型的灰关系序列化、模式化,进而建立灰关联分析模型,使灰关系量化、序化、显化,能为复杂系统的建模提供重要的技术分析手段。 灰色关联分析方法是一种多因素分析方法,其基本原理是通过对统计序列几何关系的比较,若序列几何形状越接近,则它们的灰关联度就越大。灰色关联分析的基本任务是基于行为因子序列的微观或宏观几何接近,以分析和确定因子之间的影响程度或对因子对主行为的贡献测度。关联分析的实质是整体比较,是有参考系的、有测度的比较。 目前,常见的灰色关联计算模型主要有以下几种:邓聚龙提出的邓氏关联度;王清印的灰色B型关联度和C型关联度;唐五湘的T型关联度;刘思峰的广义关联度;赵艳林的灰色欧几里德关联度等。

Matlab学习系列.灰色关联分析

28. 灰色关联分析 一、灰色系统理论简介 若系统的内部信息是完全已知的,称为白色系统;若系统的内部信息是一无所知(一团漆黑),只能从它同外部的联系来观测研究,这种系统便是黑色系统;灰色系统介于二者之间,灰色系统的一部分信息是已知的,一部分是未知的。 灰色系统理论以“部分信息已知、部分信息未知”的“小样本”、“贫信息”不确定型系统为研究对象,其特点是: (1)认为不确定量是灰数,用灰色数学来处理不确定量,使之量化,灰色系统理论只需要很少量的数据序列; (2)观测到的数据序列看作随时间变化的灰色量或灰色过程,通过鉴别系统因素之间发展趋势的相似或相异程度,即进行关联度分析; (3)通过累加生成和累减生成逐步使灰色量白化,从而建立相应于微分方程解的模型,从而预测事物未来的发展趋势和未来状态。 二、灰色关联度分析 1. 要定量地研究两个事物间的关联程度,可以用相关系数和相似系数等,但这需要足够多的样本数或者要求数据服从一定概率分布。 在客观世界中,有许多因素之间的关系是灰色的,分不清哪些因素之间关系密切,哪些不密切,这样就难以找到主要矛盾和主要特性。

灰因素关联分析,目的是定量地表征诸因素之间的关联程度,从而揭示灰色系统的主要特性。关联分析是灰色系统分析和预测的基础。 关联分析源于几何直观,实质上是一种曲线间几何形状的分析比较,即几何形状越接近,则发展变化趋势越接近,关联程度越大。如下图所示: x t 曲线A 与B 比较平行,则认为A 与B 的关联程度大;曲线C 与A 随时间变化的方向很不一致,则认为A 与C 的关联程度较小;曲线A 与D 相差最大,则认为两者的关联程度最小。 2. 关联度分析是分析系统中各因素关联程度的方法 步骤: (1) 计算关联系数 设参考序列为 0000{(1),(2),...,()}X x x x n = 比较序列为 {(1),(2),...,()}, 1,,i i i i X x x x n i m == 比较序列X i 对参考序列X 0在k 时刻的关联系数定义为:

灰色关联度分析MATLAB程序

x(1,:)=[83 0.191 12.9 7.2 89.4 0.432 6.33]; x(2,:)=[75 0.189 11.6 9.1 82.3 0.453 5.87]; x(3,:)=[64 0.165 11.9 10.3 69.3 0.512 6.31]; %列出各数值,可修改 x(4,:)=[63 0.165 12.8 9.7 68.2 0.455 6.6]; x(5,:)=[56 0.211 13.2 12.6 77.5 0.317 7.12]; m=5;n=7; x0=[83 0.211 13.2 7.2 89.4 0.317 5.87]; %参考序列 for i=1:n avg(i)=0; %均值初始化 end for i=1:m for j=1:n avg(j)=avg(j)+x(i,j); end end %求均值序列 for i=1:n avg(i)=avg(i)/m; end for j=1:m for i=1:n x(j,i)=x(j,i)/avg(i); %均值化 end end for i=1:n x0(i)=x0(i)/avg(i); %参考序列均值化end for j=1:m for i=1:n delta(j,i)=abs(x(j,i)-x0(i)); %求序列差 end end max=delta(1,1); for j=1:m for i=1:n if delta(j,i)>max max=delta(j,i);

end end end %求两极差 min=0; for j=1:m xgd(j)=0; for i=1:n glxs(j,i)=0.5*max/(0.5*max+delta(j,i)); %计算关联系数及相关度 xgd(j)=xgd(j)+glxs(j,i); end xgd(j)=xgd(j)/n; end xgd %因此,A—E区与参考序列(最佳指标)的相关度分别为0.8489 0.6983 0.5588 0.5858 0.7105

五种灰色关联度分析matlab代码

灰色邓氏关联度分析 % P12 -- The Study on the Grey Relational Degree and Its Application function r1 = gld_deng(x) s = size(x); len = s(2); num = s(1); ro = 0.5; for i = 1: num x(i,:) = x(i,:)./x(i,1); end dx(num,len) = 0; for i = 2 : num for k = 1 : len dx(i,k) = abs(x(1,k) - x(i,k)); end end max_dx = max(max(dx)); min_dx = min(min(dx)); r(1,1:len-1) = 1; for i = 2 : num for k = 1 : len r(i,k) = (min_dx + ro*max_dx)/(dx(i,k) + ro*max_dx); end end r1 = sum(r(2:num,:),2)/(len); 改进灰色绝对关联度分析 % 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);

灰色关联度matlab源程序(完整版)

灰色关联度matlab源程序(完整版) 最 近几天一直在写算法,其实网上可以下到这些算法的源程序的,但是为了搞懂, 搞清楚,还是自己一个一个的看了,写了,作为自身的积累,而且自己的的矩 阵计算类库也迅速得到补充,以后关于算法方面,基本的矩阵运算不用再重复写了,挺好的,是种积累,下面把灰关联的matlab程序与大家分享。 灰色关联度分析法是将研究对象及影响因素的因子值视为一条线上的点,与待识别对象及影响因素的因子值所绘制的曲线进行比较,比较它们之间的贴近度,并分别量化,计算出研究对 象与待识别对象各影响因素之间的贴近程度的关联度,通过比较各关联度的大小来判断待识别对象对研究对象的影响程度。 简言之,灰色关联度分析的意义是指在系统发展过程中,如果两个因素变化的态势是一致的,即同步变化程度较高,则可以认为两者关联较大;反之,则两者关联度较小。因此,灰色关联度分析对于一个系统发展变化态势提供了量化的度量,非常适合动态(Dynamic)的历程分析。灰色关联度可分成“局部性灰色关联度”与“整体性灰色关联度”两类。主要的差别在于局部性灰色关联度有一参考序列,而整体性灰色关联度是任一序列均可为参考序列。关联度分析是基于灰色系统的灰色过程, 进行因素间时间序列的比较来确定哪些是影响大的主导因素, 是一种动态过程的研究。 关联度计算的预处理,一般初值化或者均值化,根据我的实际需要,本程序中使用的是比较序列与参考序列组成的矩阵除以参考序列的列均值等到的,当然也可以是其他方法。 %注意:由于需要,均值化方法采用各组值除以样本的各列平均值 clear;clc; yangben=[ 47.924375 25.168125 827.4105438 330.08875 1045.164375 261.374375 16.3372 6.62 940.2824 709.2752 962.1284 84.874 55.69666667 30.80333333 885.21 275.8066667 1052.42 435.81 ]; %样本数据 fangzhen=[ 36.27 14.59 836.15 420.41 1011.83 189.54 64.73 35.63 755.45 331.32 978.5 257.87 42.44 23.07 846 348.05 1025.4 296.69 59.34 39.7 794.31 334.63 1016.4 317.27

灰色系统预测GM(1-1)模型及其Matlab实现

灰色系统预测GM(1,1)模型及其Matlab 实现 预备知识 (1)灰色系统 白色系统是指系统内部特征是完全已知的;黑色系统是指系统内部信息完全未知的;而灰色系统是介于白色系统和黑色系统之间的一种系统,灰色系统其内部一部分信息已知,另一部分信息未知或不确定。 (2)灰色预测 灰色预测,是指对系统行为特征值的发展变化进行的预测,对既含有已知信息又含有不确定信息的系统进行的预测,也就是对在一定范围内变化的、与时间序列有关的灰过程进行 预测。尽管灰过程中所显示的现象是随机的、杂乱无章的,但毕竟是有序的、有界的,因此得到的数据集合具备潜在的规律。灰色预测是利用这种规律建立灰色模型对灰色系统进行预测。 目前使用最广泛的灰色预测模型就是关于数列预测的一个变量、一阶微分的GM(1,1)模型。它是基于随机的原始时间序列,经按时间累加后所形成的新的时间序列呈现的规律可用一阶线性微分方程的解来逼近。经证明,经一阶线性微分方程的解逼近所揭示的原始时间序列呈指数变化规律。因此,当原始时间序列隐含着指数变化规律时,灰色模型GM(1,1)的预测是非常成功的。 1 灰色系统的模型GM(1,1) 1.1 GM(1,1)的一般形式 设有变量X (0)={X (0)(i),i=1,2,...,n}为某一预测对象的非负单调原始数据列,为建立灰色预测模型:首先对X (0)进行一次累加(1—AGO, Acumulated Generating Operator)生成一次累加序列: X (1)={X (1)(k ),k =1,2,…,n} 其中 X (1)(k )= ∑ =k i 1 X (0)(i) =X (1)(k -1)+ X (0)(k ) (1) 对X (1)可建立下述白化形式的微分方程: dt dX )1(十) 1(aX =u (2) 即GM(1,1)模型。 上述白化微分方程的解为(离散响应): ∧ X (1)(k +1)=(X (0)(1)- a u )ak e -+a u (3) 或 ∧ X (1)(k )=(X (0)(1)- a u ))1(--k a e +a u (4)

灰色理论灰色预测模型和灰色关联度分析matlab通用代码

%该程序用于灰色关联分析,其中原始数据的第一行为参考序列,1至15行为正相关序列,16至17为负相关序列 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); ab=B\Y; y1=(x0(1)-ab(2)/ab(1))*exp(-ab(1)*k)+ab(2)/ab(1);%产生预测累加生成序列 y=[x0(1) diff(y1)]%产生灰色预测数据 1 / 1

灰色预测+灰色关联分析

灰色关联分析法 根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,来衡量因素间关联程度。灰色关联分析法的基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密。 根据评价目的确定评价指标体系, 为了评价×××我们选取下列评价指标: 收集评价数据(此步骤一般为题目中原数据,便省略) 将m 个指标的n 组数据序列排成m*n 阶矩阵: '' ' 12''' '''1212''' 1 2(1)(1)(1)(2)(2)(2)(,,,)()()()n n n n x x x x x x X X X x m x m x m ?? ? ?= ? ? ??? 对指标数据进行无量纲化 为了消除量纲的影响,增强不同量纲的因素之间的可比性,在进行关联度计算之前,我们首先对各要素的原始数据作...变换。无量纲化后的数据序列形成如下矩阵: 01010101(1)(2) (1)(2)(2)(2)(,,,)()()()n n n n x x x x x x X X X x n x n x n ?? ? ?= ? ??? 确定参考数据列 为了比较...【评价目的】,我们选取...作为参考数据列,记作 ''''0000((1),(2),,())T X x x x n = 计算0()() i x k x k -,得到绝对差值矩阵 求两级最小差和两级最大差 011min min ()()min(*,*,*,*,*,*)*n m i i k x k x k ==-== 01 1 max max ()()max(*,*,*,*,*,*)*n m i i k x k x k ==-== 求关联系数 由关联系数计算公式0000min min ()()max max ()() ()()()max max ()() i i i k i k i i i i k x k x k x k x k k x k x k x k x k ρζρ-+?-= -+?-,取 0.5ρ=,分别计算每个比较序列与参考序列对应元素的关联系数,得关联系数如 下:

matlab灰色关联度

灰色关联度matlab源程序 最近几天一直在写算法,其实网上可以下到这些算法的源程序的,但是为了搞懂,搞清楚,还是自己一个一个的看了,写了,作为自身的积累,而且自己的的矩阵计算类库也迅速得到补充,以后关于算法方面,基本的矩阵运算不用再重复写了,挺好的,是种积累,下面把灰关联的matlab程序与大家分享。 灰色关联度分析法是将研究对象及影响因素的因子值视为一条线上的点,与待识别对象及影响因素的因子值所绘制的曲线进行比较,比较它们之间的贴近度,并分别量化,计算出研究对象与待识别对象各影响因素之间的贴近程度的关联度,通过比较各关联度的大小来判断待识别对象对研究对象的影响程度。 关联度计算的预处理,一般初值化或者均值化,根据我的实际需要,本程序中使用的是比较序列与参考序列组成的矩阵除以参考序列的列均值等到的,当然也可以是其他方法。 %注意:由于需要,均值化方法采用各组值除以样本的各列平均值 clear;clc; yangben=[ 47.924375 25.168125 827.4105438 330.08875 1045.164375 261.374375 16.3372 6.62 940.2824 709.2752 962.1284 84.874 55.69666667 30.80333333 885.21 275.8066667 1052.42 435.81 ]; %样本数据 fangzhen=[ 36.27 14.59 836.15 420.41 1011.83 189.54 64.73 35.63 755.45 331.32 978.5 257.87 42.44 23.07 846 348.05 1025.4 296.69 59.34 39.7 794.31 334.63 1016.4 317.27 52.91 17.14 821.79 306.92 1141.94 122.04 4.21 4.86 181 5.52 2584.68 963.61 0.00 6.01 2.43 1791.61 2338.17 1278.08 30.87 3.01 1.58 1220.54 956.14 124 4.75 3.91 25.65 7.42 790.17 328.88 1026.01 92.82 115.80 27 926.5 350.93 1079.49 544.38 12.63 8.75 1055.50 1379.00 875.10 1.65 ]; %待判数据 [rows,cols]=size(fangzhen); p=0.5; %分辨系数 [m,n]=size(yangben);

灰色关联度matlab源程序(完整版)

灰色关联度matlab源程序(完整版) 近几天一直在写算法,其实网上可以下到这些算法的源程序的,但是为了搞懂, 「 ------------------------------------------------------------------------ 搞清楚,还是自己一个一个的看了,写了,作为自身的积累,而且自己的的矩 I 阵计算类库也迅速得到补充,以后关于算法方面,基本的矩阵运算不用再重复 写了,挺好的,是种积累,下面把灰关联的matlab程序与大家分享。 灰色关联度分析法是将研究对象及影响因素的因子值视为一条线上的点,与待识别对象及影响因素的因子值所绘制的曲线进行比较,比较它们之间的贴近度,并分别量化,计算出研究对 象与待识别对象各影响因素之间的贴近程度的关联度,通过比较各关联度的大小来判断待识 别对象对研究对象的影响程度。 简言之,灰色关联度分析的意义是指在系统发展过程中,如果两个因素变化的态势是一致的, 即同步变化程度较高,则可以认为两者关联较大;反之,则两者关联度较小。因此,灰色关联度分析对于一个系统发展变化态势提供了量化的度量,非常适合动态(Dynamic)的历程分析。灰色关联度可分成局部性灰色关联度”与整体性灰色关联度”两类。主要的差别在于局 部性灰色关联度有一参考序列,而整体性灰色关联度是任一序列均可为参考序列。关联度分析是基于灰色系统的灰色过程,进行因素间时间序列的比较来确定哪些是影响大的主导因 素,是一种动态过程的研究。 关联度计算的预处理,一般初值化或者均值化,根据我的实际需要,本程序中使用的是比较 序列与参考序列组成的矩阵除以参考序列的列均值等到的,当然也可以是其他方法。 %注意:由于需要,均值化方法采用各组值除以样本的各列平均值 clear;clc; yangben=[ 47.924375 25.168125 827.4105438 330.08875 1045.164375 261.374375 16.3372 6.62 940.2824 709.2752 962.1284 84.874 55.69666667 30.80333333 885.21 275.8066667 1052.42 435.81 ];%样本数据 fan gzhe n=[ 36.27 14.59 836.15 420.41 1011.83 189.54 64.73 35.63 755.45 331.32 978.5 257.87 42.44 23.07 846 348.05 1025.4 296.69 59.34 39.7 794.31 334.63 1016.4 317.27

灰色关联分析实现及与其他方法相比的特点

一、灰色关联度的简介和应用 灰色关联的用处 灰色关联度,指的是两个系统或两个因素之间关联性大小的量度。目的,是在于寻求系统中各因素之间的主要关系,找出影响目标值的重要因素,从而掌握事物的主要特征,促进和引导系统迅速有效地发展。——这是比较“官方”的解释。我再来一个“野路子”的解释:用两种试验方法,得出两组数据A和B;用理论方法,得到理论解答C。那么,现在来比较试验方法A好还是B好?自然是看其结果,哪一个与C最吻合,哪个就最好呗,灰关联就是用来解决“谁和谁的关联程度更高”这样的问题的。 灰色关联的重要步骤 步骤不多,核心的,首先是数据的归一化处理,这是因为有时一个试验结果矩阵中的每个元素会有不同的量纲;接下来是计算灰色关联矩阵,计算关联度,这也就是得到了最终结果。下面来看看那个复杂的公式:(Pi为关联度矩阵中的元素) 计算方法 关于关联矩阵中各个元素的计算,我起初被严重误导,认为用Excel是无法完成的,结果还绕了一段弯路,很是丢人~当然,有高手通过MATLAB计算的经验,而且还给出了实例,有兴趣的可以参考“仿真百科”里的内容。但我最终还是根据1992年出版的一本老书《灰色理论与方法——提要·题解·程序·应用》中的一个简单实例,用最简单的方法搞定了计算问题。鉴于我不知道如何把Excel公式按照步骤,类似APDL那样摆出来,那就把那个例子与大家分享,说说计算原理步骤吧。 首先看下面四数列 A=[2,3,4,3.7] B=[60,73,84,58] C=[1204,801,1228,1270] D=[303,298,247,251] 以A为目标,检验B、C、D与A的关联度。 步骤1.归一化,将数列中的每个元素,除以相同的一个数值,比如A的归一化过程为[2/2, 3/2 ,4/2, 3.7/2]或者更常用的均值化处理,都可以搞定。只需要这几个数列用同一种方法归一即可了。 步骤2.求差序列.经过归一化的A、B、C、D,用A分别减去B/C/D;即 E=A-B; F=A-C; G=A-D 步骤3.求两级最大和最小差值。这是一个容易让人糊涂的地方,但实际操作很简单: 设E中最大值为Emax,最小值为Emin,其余类推;这样一共就有六个数,分别是Emax;Emin;Fmax;Fmin;Gmax和Gmin。从这六个数中,再选出一个最大值和一个最小值,假设为M和N——而这就是上述公式当中双重最值的部分啦。 步骤4.带入公式,得到三组关联系数(单行)矩阵。 步骤5.计算关联度,实际上就是步骤4中,每组矩阵各个元素求和除以元素个数(求均值)。

动态加权综合评价、灰色关联度分析、BP神经网络模型

大气污染预报问题 摘要 本文针对大气污染问题,采用动态加权综合评价方法建立了合理的空气质量评价模型,同时,采用灰色关联度分析方法和BP神经网络模型较好地研究了空气质量和气象参数之间的关系。 问题一中,考虑到污染物浓度这一评价指标的“质的差异”和“量的差异”,采用动态加权综合评价方法建立评价模型。首先对评价指标数据进行归一化处理,然后选取偏大型正态分布函数作为动态加权函数建立评价模型,从而对评价指标每天的观测值进行排序,最后用决策分析中的Borda数方法对四个城市的空气质量综合排序。得到的最终排序结果为:空气质量最差的是B城市,其次是C城市,排在第三位是D城市,而A 城市的空气质量最好。 问题二中,对于空气质量与气象参数关系的问题,采用灰色关联度分析方法和BP 神经网络模型进行探讨。首先,通过灰色关联度分析确定了大气污染物浓度与气象参数强弱主次关系,然后针对其复杂非线性关系建立BP神经网络预测模型,预测2009年7月26日至30日的污染物浓度。最后用实际值对预测值进行了误差分析,结果表明预测值与实际值的误差较小,即BP神经网络模型的预测值具有较高的精度。 本文最大的特色是采用了动态加权综合评价方法建立评价模型,增大了评价结果的客观性,比定常加权模型更科学合理。其次,鉴于空气质量与气象参数复杂的非线性关系,建立了BP神经网络模型,较好地讨论了大气污染物浓度与气象参数的关系,经过检验分析知此模型是解决非线性问题的有力工具。 关键词:动态加权综合评价、灰色关联度分析、BP神经网络模型、MATLAB

一、问题提出 大气是指包围在地球外围的空气层,是地球自然环境的重要组成部分之一。人类生活在大气里,洁净大气是人类赖于生存的必要条件。一个人在五个星期内不吃饭或5天内不喝水,尚能维持生命,但超过5分钟不呼吸空气,便会死亡。随着地球上人口的急剧增加,人类经济增长的急速增大,地球上的大气污染日趋严重,其影响也日趋深刻,如由于一些有害气体的大量排放,不仅造成局部地区大气的污染,而且影响到全球性的气候变化。因此,加强大气质量的监测和预报是非常必要。目前对大气质量的监测主要是监测大气中2SO 、2NO 、悬浮颗粒物(主要为10PM )等的浓度。 附件一给出了城市A 、B 、C 、D 从2009年6月1日至2009年7月25日测量的污染物含量及城市A 的气象参数的数据;附件二给出了城市A 从2009年7月26日至2009年7月30日测量的污染物含量及气象参数的数据。请解决下面两个问题: (1)建立由污染物浓度评价空气质量的数学模型,然后利用附件一中的数据对四个城市的空气质量进行排序。 (2)分析城市A 的空气质量(指2SO 、2NO 、PM10的浓度)与气象参数之间的关系,并利用附件二中的数据进行检验。 二、基本假设 1、假设评价空气质量的各指标间相互作用关系忽略不计; 2、假设空气质量仅与附件中的四个气象参数有关; 3、假设题中数据为每天的统计平均值,能客观反映当天空气污染物浓度的实际情况; 4、假设在预测模型中,在未来一年没有发生重大自然突变; 三、符号说明 ,55;j =

关于灰色关联度分析法

关于灰色关联度分析法 为了适应瞬息万变的市场需求, 企业不断调整自己的核心能力, 在产品的开发设计中更重视供应商的作用。作为供应链合作关系运行的基础, 供应商的评价选择是一个至关重要的问题, 供应商的业绩对企业的影响越来越大,影响着企业的生存与发展。因此, 进行科学全面的供应商评价就显得十分必要。 (1)确定比较对象 产品质量、技术水平、供应能力、经济效益、市场影响度指标属于效益型指标;产品价格、地理位置、售后服务指标属于成本型指标。i 指五个待选供应商编号, ,5,,1 =i j 指八个指标8,,1j =,ij a 是第i 个供应商第j 个指标变量 为了使每个属性变换后的最优值为1 且最差值为0,对数据进行标准0-1变换 利润型指标标准化公式 )/()(min max min j j j ij ij a a a a b --= 成本型指标标准化公式 )/()(min max max j j ij j ij a a a a b --= 数据结果见下表。 (2)计算灰色关联系数 ) ()(max max )()() ()(max max )()(min min )(0000t x t x k x k x t x t x t x t x k s t s i s t s s t s -+--+-=ρρξ 为比较数列对参考数列在第个指标上的关联系数,其中为]1,0[∈ρ分辨系数。称式中)()(min min 0t x t x s t s -、)()(max max 0t x t x s t s -分别为两级最小差及两级最大 差。 一般来讲,分辨系数ρ越大,分辨率越大;ρ越小,分辨率越小。 在这里ρ取

相关主题
文本预览
相关文档 最新文档