首页 建模方法综合评价方法灰色关联度matlab源程序[1]

建模方法综合评价方法灰色关联度matlab源程序[1]

举报
开通vip

建模方法综合评价方法灰色关联度matlab源程序[1]灰色关联度matlab源程序 2008年07月20日 星期日 16:35 最近几天一直在写算法,其实网上可以下到这些算法的源程序的,但是为了搞懂,搞清楚,还是自己一个一个的看了,写了,作为自身的积累,而且自己的的矩阵计算类库也迅速得到补充,以后关于算法方面,基本的矩阵运算不用再重复写了,挺好的,是种积累,下面把灰关联的matlab程序与大家分享。 灰色关联度分析法是将研究对象及影响因素的因子值视为一条线上的点,与待识别对象及影响因素的因子值所绘制的曲线进行比较,比较它们之间的贴近度,并分别量化,计算出研究对...

建模方法综合评价方法灰色关联度matlab源程序[1]
灰色关联度matlab源程序 2008年07月20日 星期日 16:35 最近几天一直在写算法,其实网上可以下到这些算法的源程序的,但是为了搞懂,搞清楚,还是自己一个一个的看了,写了,作为自身的积累,而且自己的的矩阵计算类库也迅速得到补充,以后关于算法方面,基本的矩阵运算不用再重复写了,挺好的,是种积累,下面把灰关联的matlab程序与大家分享。 灰色关联度分析法是将研究对象及影响因素的因子值视为一条线上的点,与待识别对象及影响因素的因子值所绘制的曲线进行比较,比较它们之间的贴近度,并分别量化,计算出研究对象与待识别对象各影响因素之间的贴近程度的关联度,通过比较各关联度的大小来判断待识别对象对研究对象的影响程度。 关联度计算的预处理,一般初值化或者均值化,根据我的实际需要,本程序中使用的是比较序列与参考序列组成的矩阵除以参考序列的列均值等到的,当然也可以是其他方法。 %注意:由于需要,均值化方法采用各组值除以 样本 保单样本pdf木马病毒样本下载上虞风机样本下载直线导轨样本下载电脑病毒样本下载 的各列平均值 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 1815.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 1244.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源程序 <<隐藏 窗体顶端 HTMLCONTROL Forms.HTML:Hidden.1 窗体底端 灰色关联度 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 1815.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 1244.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) amax = max(eval(['B' amin = min(eval(['B' maxarray(i-1)=amax minarray(i-1)=amin end %find the difference 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' '=D']); num2str(i)])) num2str(i)])) squence and the max value and min value of each squence 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; %载入源数据 n=15; m=4; X_0=zeros(n,m); X_2=zeros(n,m); X_3=zeros(n,m); %其实这里可以载入 execl 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 格的 %参与评价的人数 %参与评价的指标个数 % 数据矩阵 %偏差结果的求取矩阵 % 相关系数计算矩阵 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 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 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。个人意见,仅供参考。 参考资料: http://hi.baidu.com/hfutgiser/blog/item/4dd2ca13bb4ec7866538db9e.html 基于 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 %可以在此观察关联矩阵 %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; %%%%%%%%%可以改进%%%%%%%%%%% 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 柱状图 根据以上三图我们就可以判断出每个学生序列与参考序列(最大值)之间的 关系,与最大值的关系越密切,那么其关联度越大。 根据以上的启示,我进行分类的想法是:1、参考序列我可以选择已知属于 某一类神经元的统计数据,我选择平均值。2、加入一个未知类的数据,与已有 类中的数据一起计算他们与平均值的关联度。3、计算出来的关联度我们可以有 多种处理思路,如果未知类的关联度不是排在最末,可以认为它属于这一类,或 者未知类的关联度大于计算出来的关联度平均值,我们可以认为它属于这一类。 使用关联度进行分类,计算出来的关联度如何使用还是个问题,这个东西是 我琢磨出来的,我还没有见到过相关的文献,估计应该可以用,期望以后的专家 学者钻研了。 参考文献 [1] 郝海燕,王斌.大学生综合素质测评的灰色关联分析法[J].承德石油高等专科学校学 报,2009,11(2):57-59. 2010 年 09 月 23 日上午于 njust 10 系 310 房间 CopyRight:版权所有若需转载或使用请联系作者 Email:dingqian12345@126.com _1434693525.unknown _1434693523.unknown
本文档为【建模方法综合评价方法灰色关联度matlab源程序[1]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_242306
暂无简介~
格式:doc
大小:59KB
软件:Word
页数:7
分类:
上传时间:2018-09-10
浏览量:205