设为首页 加入收藏

TOP

多准则决策模型-TOPSIS评价方法-源码(一)
2017-10-10 12:10:40 】 浏览:10540
Tags:准则 决策 模型 -TOPSIS 评价 方法 源码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#多准则决策模型-TOPSIS评价方法
 
##R语言实现-代码
 
MCDM = function (decision  =  NULL, weights  =  NULL, impacts  =  NULL)  #决策矩阵,权重向量,影响因子
{
     if  (missing(weights)) 
         stop( "缺少'权重向量-weights'" )
     if  (missing(impacts)) 
         stop( "缺少'影响因子-impacts'" )
     if  (! is .matrix(decision) |  is .data.frame(decision)) 
         stop( "'决策矩阵-decision'必须是矩阵或数据框" )
     if  (length(weights) ! =  ncol(decision)) 
         stop( "权重向量长度错误" )
     if  (length(impacts) ! =  ncol(decision)) 
         stop( "影响因子长度错误" )
     if  (! all (weights >  0 )) 
         stop( "权重必须大于零" )
     if  (! is .character(impacts)) 
         stop( "影响因子必须是字符型 '+'或'-' 符号" )
     if  (! all (impacts  = =  "+"  | impacts  = =  "-" )) 
         stop( "影响因子只能是字符型 '+'或'-' 符号" )
     weights < -  weights / sum (weights)
     N < -  matrix(nrow  =  nrow(decision), ncol  =  ncol(decision))  #建一个空矩阵
     for  (i  in  1 :nrow(decision)) {
         for  (j  in  1 :ncol(decision)) {
             N[i, j] < -  decision[i, j] / sqrt( sum (decision[, j]^ 2 ))
         }
     }                  #决策矩阵标准化
     =  diag(weights)  #建权重对角矩阵
     =  % % W       #构造加权规范化矩阵
 
 
#确定理想方案和负理想方案
    u <- as.integer(impacts == "+"&nbs
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇R语言-妹子被追后的选择分析 下一篇R初学,边学边写博客。日常小应用..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目