1-9标度法,运用matlab求出权重
时间: 2023-08-23 12:10:04 浏览: 181
在使用1-9标度法计算权重时,可以使用以下步骤:
1. 构建判断矩阵A,其中A(i,j)表示准则i与准则j之间的重要程度比较,比较结果用1-9标度法表示。
2. 对A的每一列进行归一化处理,即将每一列的所有元素除以该列元素之和,得到归一化判断矩阵B。
3. 计算B的特征向量,可以使用Matlab中的eig函数求解。
4. 对特征向量进行归一化处理,得到最终权重向量W。
下面是一个Matlab代码示例:
```matlab
% 构建判断矩阵A
A = [1 5 3; 1/5 1 1/3; 1/3 3 1];
% 归一化处理得到判断矩阵B
B = A./sum(A);
% 求解特征向量
[V, D] = eig(B);
% 获取最大特征值的索引
[~, idx] = max(diag(D));
% 获取最终权重向量
W = V(:, idx);
W = W./sum(W);
```
在上面的示例中,判断矩阵A表示三个准则之间的比较,归一化处理得到判断矩阵B,使用eig函数求解特征向量和特征值,获取最大特征值的索引和最终权重向量W。
相关问题
我使用的是matlab2016b,帮我编写一段代码,内容为:使用层次分析法,利用判断矩阵的扰动误差矩阵调整判断矩阵的一致性,构造扰动误差矩阵要使用正交矩阵法,我构造的判断矩阵是使用1-9标度法构造的,所以调整后的判断矩阵依旧要符合1-9标度法,而且调整后的判断矩阵主对角线元素依旧为1
好的,以下是使用层次分析法(AHP)对判断矩阵进行一致性调整的MATLAB代码:
```matlab
% 构造判断矩阵 A
A = [1, 2, 5;
1/2, 1, 3;
1/5, 1/3, 1];
% 构造正交矩阵 B
B = [1, 1, 1;
1, -1, 0;
1, 0, -1];
% 计算扰动误差矩阵 E
E = B * randn(3) * B';
% 调整判断矩阵 A 以满足一致性
[~, ~, lambda_max] = ahp(A); % 计算初始一致性指标
A_new = (A + E) ./ (1 + lambda_max * E); % 调整后的判断矩阵
A_new(logical(eye(size(A_new)))) = 1; % 主对角线元素置 1
% 检查调整后的判断矩阵是否符合 1-9 标度法
[row, col] = find(A_new < 1 | A_new > 9);
if isempty(row)
disp('调整后的判断矩阵符合 1-9 标度法!');
else
disp('调整后的判断矩阵不符合 1-9 标度法!');
end
```
其中,`ahp` 函数是一个计算层次分析法一致性的函数,可以使用以下代码进行定义:
```matlab
function [CI, RI, lambda_max] = ahp(A)
% 计算层次分析法(AHP)的一致性指标
n = size(A, 1);
WI = sum(A) ./ n; % 计算每个指标的权重
RI = [0, 0, 0.58, 0.9, 1.12, 1.24, 1.32, 1.41, 1.45, 1.49]; % 随机一致性指标
lambda_max = max(eig(A)); % 计算最大特征值
CI = (lambda_max - n) / (n - 1); % 计算一致性指标
CR = CI / RI(n); % 计算一致性比率
if CR < 0.1
disp('判断矩阵 A 通过一致性检验!');
else
disp('判断矩阵 A 未通过一致性检验!');
end
```
注意,在进行一致性调整时,需要先计算初始的一致性指标,然后利用扰动误差矩阵进行调整。调整后的判断矩阵需要再次检查是否符合 1-9 标度法。
利用九级标度法的AHP层级分析法MATLAB代码
以下是一个简单的AHP层级分析法的MATLAB代码:
```
clc; clear;
% 构建判断矩阵
A = [1, 1/2, 3;
2, 1, 4;
1/3, 1/4, 1];
% 计算加权平均值
w = sum(A)./sum(sum(A));
% 计算一致性指标
[n, ~] = size(A);
lambda_max = max(eig(A));
CI = (lambda_max - n)/(n-1);
RI = [0, 0, 0.58, 0.9, 1.12, 1.24, 1.32, 1.41, 1.45];
CR = CI/RI(n);
% 输出结果
fprintf('加权平均值:\n');
disp(w);
fprintf('一致性指标:\n');
disp(CR);
```
在这个例子中,我们构建了一个3x3的判断矩阵A,然后计算了加权平均值w和一致性指标CR。其中,RI是预先计算好的一致性比率表。在实际应用中,我们需要根据具体问题构建判断矩阵,然后通过AHP方法进行分析,得到最终的权重和一致性指标。
阅读全文