TOPSIS法求排序,satty近似法求权重

题目:

硕士研究生学位论文常从三个方面给予评价,即选题的意义(A),论文的创新性(B),研究方法及撰写的规范性(C)。三个方面的重要性判断矩阵如下:
A B C
A 1 1/3 1/2
B 3 1 2
C 2 1/2 1
经专家评价,X,Y,Z,W四位同学的论文得分如表
硕士论文 A B C
X 96 85 75
Y 80 82 88
Z 87 95 80
W 86 78 93

问题

  1. 应用satty近似法计算A,B,C的权重,并检验矩阵的一致性。(已知RI=0.58)
  2. 应用线性变换规范化各属性值。
  3. 应用topsis法确定四名同学学位论文的优劣。

一、根据判断矩阵求权重

在这里插入图片描述
在这里插入图片描述
n为指标个数。每行连乘再开n次方,求和,求每一个所占的比例
求一致性:竖着每列求和,每个和与权重相乘,得到最大特征值。再求CI,CR
在这里插入图片描述

二、线性变换

在这里插入图片描述
三个指标都属于效益型,用该数除以最大值
在这里插入图片描述

三、topsis法排序

在这里插入图片描述

  1. 向量规范化。每一列数的平方的和,开根号
    在这里插入图片描述
  2. 正负理想解,画表格
    在这里插入图片描述
    3.由最后一列的值进行比较,越接近1越好。Z>X>W>Y
    在这里插入图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Topsis是一种常用于多属性决策的分析方,通过对每个属性的权重进行评估和确定,以便更准确地进行决策。下面是一个使用MATLAB进行TOPSIS分析的简单代码示例: 首先,假设我们有三个属性A、B和C,每个属性有5个可选项。我们需要计算每个属性的权重并将其标准化。 ```matlab % 属性矩阵 X = [1 3 5; 2 4 2; 3 5 3; 4 2 4; 5 1 1]; % 归一化 normX = X./sqrt(sum(X.^2, 1)); % 正向化 posX = max(normX) - normX; % 权重数组 weights = [0.4 0.3 0.3]; % 加权矩阵 weightX = posX .* weights; % 确定正理想解和负理想解 idealPositive = max(weightX); idealNegative = min(weightX); % 计算与正理想解和负理想解的欧几里德距离 D_positive = sqrt(sum((weightX - idealPositive).^2, 2)); D_negative = sqrt(sum((weightX - idealNegative).^2, 2)); % 计算综合评价得分 closeness = D_negative ./ (D_positive + D_negative); % 输出综合评价得分 closeness ``` 以上代码中,属性矩阵`X`中的每一列对应于一个属性的值。首先,通过将每个属性的值除以该属性值的平方和的开方来对属性矩阵进行归一化。然后,通过从归一化后的矩阵中减去每个属性值的最大值来进行正向化。接下来,通过乘以权重数组,得到加权矩阵。然后,找到正理想解和负理想解,并计算每个样本与两个解的欧几里德距离。最后,通过计算综合评价得分,将其用于排序和决策。 这是一个简单的MATLAB代码示例,可以根据实际需要进行扩展和修改。 ### 回答2: TOPSIS(Technique for Order Preference by Similarity to Ideal Solution)是一种常用的多准则决策方,用于评估候选方案的优劣程度。该方根据每个候选方案与最佳和最差解的接近程度进行评价,从而确定最优解。 在MATLAB中,可以使用以下代码来实现TOPSIS法求权重: 1. 首先,需要定义输入矩阵X,其中每行表示一个候选方案,每列表示一个评价指标。 ```matlab X = [3 5 7; 4 6 8; 2 4 6; 5 7 9]; % 示例输入矩阵 ``` 2. 然后,需要对输入矩阵进行归一化处理,将各个指标的取值范围统一化到[0, 1]区间内。 ```matlab normalized_X = X ./ sqrt(sum(X.^2, 1)); ``` 3. 接下来,需要确定每个评价指标的权重。可以使用主成分分析(PCA)来确定权重。 ```matlab [coeff, ~, latent] = pca(normalized_X); weights = latent ./ sum(latent); ``` 4. 然后,需要确定理想解和反理想解。 ```matlab ideal_solution = max(normalized_X, [], 1); worst_solution = min(normalized_X, [], 1); ``` 5. 计算每个候选方案与理想解和反理想解之间的接近度。 ```matlab d_plus = sqrt(sum((normalized_X - ideal_solution).^2, 2)); d_minus = sqrt(sum((normalized_X - worst_solution).^2, 2)); ``` 6. 最后,根据接近度计算每个候选方案的最终得分。 ```matlab score = d_minus ./ (d_plus + d_minus); ``` 通过上述步骤,就可以使用TOPSIS获取权重并计算候选方案的得分。 请注意,上述代码仅为示例,实际应用中可能需要根据具体情况进行适当的修改和调整。 ### 回答3: TOPSIS是一种多属性决策方,用于确定不同属性对决策结果的重要程度。其主要步骤包括:确定决策矩阵、正向化与标准化、计算加权规范化决策矩阵、计算正负理想解、计算相对接近度,并最终得出最优方案。下面是基于MATLAB的TOPSIS法求权重的代码示例: 1.首先,我们需要输入决策矩阵data,以及每个属性的权重向量weights。假设有N个决策方案和M个属性: ```matlab data = [x1, x2, x3, ..., xn]; % 输入决策矩阵 weights = [w1, w2, w3, ..., wm]; % 输入权重向量 ``` 2.进行正向化与标准化,将数据归一化到[0, 1]之间。 ```matlab % 正向化 max_data = max(data,[],1); % 每个属性的最大值 min_data = min(data,[],1); % 每个属性的最小值 data_normalized = (data - min_data)./ (max_data - min_data); % 标准化 weights_normalized = weights./sum(weights); ``` 3.计算加权规范化决策矩阵。 ```matlab weighted_normalized_matrix = data_normalized .* weights_normalized; ``` 4.计算正负理想解。 ```matlab PIS = max(weighted_normalized_matrix,[],1); % 正理想解,取每个属性的最大值 NIS = min(weighted_normalized_matrix,[],1); % 负理想解,取每个属性的最小值 ``` 5.计算相对接近度。 ```matlab d_plus = pdist2(weighted_normalized_matrix,PIS); % 计算每个方案与正理想解之间的欧氏距离 d_minus = pdist2(weighted_normalized_matrix,NIS); % 计算每个方案与负理想解之间的欧氏距离 relative_closeness = d_minus ./ (d_plus + d_minus); % 相对接近度 = 负距离 / (正距离 + 负距离) ``` 最终,根据相对接近度,可以获得最优方案或进行决策结果排序。 这是一个简单的TOPSIS法求权重的MATLAB代码示例。根据具体的问题和数据,可能需要进行一些调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值