资源简介
模糊综合评价的一个实际例子,附有malab语言源程序代码
![](http://www.nz998.com/pic/64918.jpg)
代码片段和文件信息
%--------------------------------------------------------------------------
%
% %mohu.m
%本程序为模糊综合评判的程序,人为给定权重
%程序运行,直接输入命令mohu即可
%本程序可以进行扩展
%对于进行二级模糊综合评判,可编制mohufun.m函数来实现
%如[yy1qdhqdh1]=mohufun(RLMwXXyy]来实现运行两次这个函数,并编制相应的m文件,其中放至两个这样的函数即可实
%现
%模糊评判的结果说明:
%1:对于所有等级的隶属度之和为1。
%2:输出结果随某个变量的增大而qdh1的结果呈现出单调递增或递减
%3:最后的等级出[0.2 0 0 0.8]这种情况是正常的,和可拓评判中的对于等级的距离的概念是不一样的。
%只表现有变量是属于0.2这个等级的。
%--------------------------------------------------------------------------
clc
clear all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%此部分由计算时,人为给定部分,即相关求解条件
%要求计算前输入部分
R=4; %影响因素的个数
L=4; %评判的等级个数
M=29; %待评价洞段的个数
w=[0.1 0.7 0.1 0.1];%各指标的权重
%可拓评判的经典域,每天列构成一组,共有L组,由左到右依此为1,2,3,4
%评判结果为1,则表示属于最左边的经典域,为4则属于最右边的经典域
%XX为隶属函数的范围,具体可参见论文基于粗集的模糊综合评判,一个有四个隶属函数
%前两个数,确定是一个下降段的隶属函数,分成三段
%以后依此4上数为一组,确定一个梯形的隶属函数,分成五段
%最后两个是单独一组,为一个上升段的隶属函数分成三段
%下面的每行有12个数,其分成4个等级,分办界点数个2 4 4 2 之和为12
%也就是构成四个等级范围
%XX也是计算的核心数据
xx=[70 90 70 90 110 130 110 130 170 190 170 190
45 35 45 35 30 20 30 20 17 10 17 10
1.5 2.5 1.5 2.5 3 4 3 4 4.5 5.5 4.5 5.5
0.25 0.35 0.25 0.35 0.45 0.55 0.45 0.55 0.65 0.75 0.65 0.75];
%pp1为个指标为越大,等级越高,还是越大,等级越小的指标
%0为指标值越大,等级越大
%1为指标值越大,等级越小
%这一点要严格执行,XX(i:)从小到大为0XX(i:)从大到小为1
%若将以上的XX第行的顺序颠倒,则为pp1=[1 0 1 1 ]
pp1=[0 1 0 0];
%各待评价洞段参数
yy=[200 8 6 0.8
200 9.5 6 0.8
200 11 6 0.8
200 12.5 6 0.8
200 14 6 0.8
200 15.5 6 0.8
200 17 6 0.8
200 18.5 6 0.8
200 20 6 0.8
200 21.5 6 0.8
200 23 6 0.8
200 24.5 6 0.8
200 26 6 0.8
200 27.5 6 0.8
200 29 6 0.8
200 30.5 6 0.8
200 32 6 0.8
200 33.5 6 0.8
200 35 6 0.8
200 36.5 6 0.8
200 38 6 0.8
200 39.5 6 0.8
200 41 6 0.8
200 42.5 6 0.8
200 44 6 0.8
200 45.5 6 0.8
200 47 6 0.8
200 48.5 6 0.8
200 50 6 0.8
];
%下升段和下降段的隶属函数形式
%注意隶属函数的形式和论文中的隶属函数形式也要一样,否则要更改程序中的基些部分
%这里的a指区间的中间点,b指区间的宽度
f1=inline(‘0.5-0.5*sin((x-a)*pi/b)‘‘a‘‘b‘‘x‘);
f2=inline(‘0.5+0.5*sin((x-a)*pi/b)‘‘a‘‘b‘‘x‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%
%求每个指标对于第一个等级的隶属度
for i=1:M
for k=1:R
j=1;
if pp1(k)==0 %先是求越大,等级越高的指标
if yy(ik) yy1(ikj)=1;
elseif yy(ik)<=xx(kj+1)
yy1(ikj)=f1(0.5*(xx(kj)+xx(kj+1))abs(xx(kj)-xx(kj+1))yy(ik)) ;
else yy1(ikj)=0;
end
%再是求值越小,等级越高的指标
%下在和一个相比大于和小于要互换,函数f1和f2也要互换
elseif yy(ik)>xx(kj)
yy1(ikj)=1;
elseif yy(ik)>=xx(kj+1)
yy1(ikj)=f2(0.5*(xx(kj)+xx(kj+1))abs(xx(kj)-xx(kj+1))yy(ik));
else yy1(ikj)=0;
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%求每个指标对于最后一个等级的隶属度
for i=1:M
for k=1:R
j=L;
if pp1(k)==0 %先是求越大,等级越高的指标
if yy(ik) yy1(ikj)=0;
elseif yy(ik)<=xx(kj*4-4)
yy1(ikj)=f2(0.5*(xx(kj*4-5)+xx(kj*4-4))abs(xx(kj*4-5)-xx(kj*4-4))yy(ik));
else yy1(ikj)=1;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5766 2008-03-01 21:54 mohu.m
----------- --------- ---------- ----- ----
5984 2
相关资源
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
- matlab识别系统
评论
共有 条评论