模糊综合评判的matlab实现.doc

上传人:b****1 文档编号:270306 上传时间:2022-10-08 格式:DOC 页数:5 大小:31KB
下载 相关 举报
模糊综合评判的matlab实现.doc_第1页
第1页 / 共5页
模糊综合评判的matlab实现.doc_第2页
第2页 / 共5页
模糊综合评判的matlab实现.doc_第3页
第3页 / 共5页
模糊综合评判的matlab实现.doc_第4页
第4页 / 共5页
模糊综合评判的matlab实现.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

模糊综合评判的matlab实现.doc

《模糊综合评判的matlab实现.doc》由会员分享,可在线阅读,更多相关《模糊综合评判的matlab实现.doc(5页珍藏版)》请在冰豆网上搜索。

模糊综合评判的matlab实现.doc

模糊综合评判matlab源程序

2009-04-2020:

35

1.原理

模糊综合评判方法即将评价目标看成是由多种因素组成的模糊集合(称为因素集u),再设定这些因素所能选取的评审等级,组成评语的模糊集合(称为评判集v),分别求出各单一因素对各个评审等级的归属程度(称为模糊矩阵),然后根据各个因素在评价目标中的权重分配,通过计算(称为模糊矩阵合成),求出评价的定量解值。

它是应用模糊变换原理和最大隶属度原则,对各因素作综合评价的。

其原理表示为:

B=E×R

式中E={e1,e2,...,ei,...,em},为模糊向量或称模糊变换器,是评价因素集X={x1,x2,,xi,,xm}的权重分配。

式中R为评价因素X={x1,x2,...,xi,...,xm}与评判集U={u1,u2,,ui,,un}构成的模糊关系矩阵。

   |R1||r11r12...r1m|

R=|R2|=|r21r22...r2m|

   ||  |               |

              |Rn|    |rn2    rn2...rnm|

其中n为评价集合的个数,m为评价因素(或评判指标)的个数。

2.程序算法

下面是采用环境中的常用的超标加权法计算权重,使用“线性降半阶”函数计算隶属度的matlab程序,供各位参考。

clear;clc;

a=[

48.3761111126.33277778819.1455556334.59333331032.364444262.37166672374.722222

15.846.430384615981.3157692756.1965385991.735384682.828461542535.692308

70.722529.8525895.5325294.58751059.1875462.95252724.5

];%a为评价集标准值

d=[

43.4928.05737.98391.121025.667.412134

2.611.82920.75636.411005.4574.092330

28.668.51774.99322.781013.9693.842001

3.011.95897.53614.44889.87123.272200

25.855.72759.59302.031001.9676.151972

21.951161.681003.731077.06110.13004

3.811.09820.51396.611004.7437.042019

5.212.92814.08419.81005.831.492018

4.412.8824.65449.06998.3638.282047

3.011.581220.54956.141244.753.913071

6.012.431791.612338.171278.0830.874362

1.22.671160.54821.291100.8285.412942

6.617.3865.57389.311065.2746.512244

9.823.771240.77939.711165.24177.193248

17.646.44884.2473.49930.29218.952417

26.657.9839.5474.71941.99184.182363

25.254.74808.33486.31881.01191.62217

25.456.93852.01478.37966.45182.542339

35.2718.48785.11331.32979.574.042245

2.812.311601.022533.55486.732.473801

4.214.861815.522584.68963.6104399

15.235.35813.85787.16688.79205.182093

67.0136.65864.23357.761035.8426.312609

84.6534.24892.72381.191060466.642731

15.4321.52898.6888.471061.46414.482483

115.827926.5350.931079.49544.383075

];%b为待判样品值

[m,n]=size(a);

[x,y]=size(d);

TheResultMoHu=[];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

fors=1:

x

   forp=1:

n

       b(p)=d(s,p);

   end

   fori=1:

n%计算每一个列的平均值

       ColAverage(i)=0;

       forj=1:

m

           ColAverage(i)=ColAverage(i)+a(j,i);

       end

       ColAverage(i)=ColAverage(i)/m;

   end

   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   ETotal=0;%超标加权法计算权重

   forj=1:

n

        ETotal=ETotal+(b(j)/ColAverage(j));

   end

   fori=1:

n

       EResult(i)=(b(i)/ColAverage(i))/ETotal;%EResult为计算结果

   end

   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   %使用隶属函数,做预处理对每一列进行排序

   SortedMatrix=a;

   forj=1:

n

       fori=1:

m

           fork=i:

m

               ifSortedMatrix(i,j)>SortedMatrix(k,j)

                   tmp=SortedMatrix(i,j);

                   SortedMatrix(i,j)=SortedMatrix(k,j);

                   SortedMatrix(k,j)=tmp;

               end

           end

       end

   end

   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   %计算单因素隶属度

   c=SortedMatrix;

   forj=1:

n

              fori=1:

m

                   fork=1:

m

                       ifa(i,j)==c(k,j)

                           ifk==1

                               ifb(j)

                                   LSDResult(j,i)=1;

                               end

                               ifb(j)>=c(k,j)&b(j)

                                   LSDResult(j,i)=((c(k+1,j)-b(j))/(c(k+1,j)-c(k,j)));

                               end

                               ifb(j)>=c(k+1,j)

                                   LSDResult(j,i)=0;

                               end

                           end

                           ifk>1&k

                               ifb(j)

                                   LSDResult(j,i)=0;

                               end

                               ifb(j)>=c(k-1,j)&b(j)

                                   LSDResult(j,i)=((b(j)-c(k-1,j))/(c(k,j)-c(k-1,j)));

                               end

                               ifb(j)>=c(k,j)&b(j)

                                   LSDResult(j,i)=((c(k+1,j)-b(j))/(c(k+1,j)-c(k,j)));

                               end

                               ifb(j)>=c(k+1,j)

                                   LSDResult(j,i)=0;

                               end

                           end

                           ifk==m

                               ifb(j)

                                   LSDResult(j,i)=0;

                               end

                               ifb(j)>=c(k

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1