层次分析法MATLAB程序
时间: 2023-09-26 11:11:35 浏览: 90
以下是一个简单的层次分析法MATLAB程序的示例:
```matlab
% 层次分析法
% 输入判断矩阵
A = [1 3 5;
1/3 1 2;
1/5 1/2 1];
% 计算权重向量
w = sum(A, 2) / 3;
% 计算一致性指标
n = length(w);
RI = [0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49];
CI = (max(eig(A)) - n) / (n - 1);
CR = CI / RI(n);
% 输出结果
disp('权重向量:');
disp(w');
disp(['一致性指标CR:', num2str(CR)]);
```
在这个示例中,我们输入一个 $3\times 3$ 的判断矩阵 $A$,计算它的权重向量 $w$,然后计算一致性指标 $CR$。最后,我们输出结果。
注意,这个程序只是一个简单的示例,实际使用中可能需要进行更多的输入和输出处理。此外,如果输入的判断矩阵不满足一些基本条件,比如正互反性、一致性等,程序可能会出错或输出不合理的结果,因此在使用层次分析法时应格外注意。
相关问题
层次分析法matlab程序代码
以下是层次分析法的Matlab程序代码:
```matlab
% 输入判断矩阵A
A = [1 3 5; 1/3 1 2; 1/5 1/2 1];
% 计算加权矩阵W
[n, ~] = size(A);
W = zeros(n, 1);
for i = 1:n
W(i) = prod(A(i, :) .^ (1/n));
end
W = W / sum(W);
% 计算一致性指标CI和一致性比例CR
lambda_max = max(eig(A));
CI = (lambda_max - n) / (n - 1);RI = [0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49];
CR = CI / RI(n);
% 输出结果
fprintf('加权矩阵W:\n');
disp(W');
fprintf('一致性指标CI:%f\n', CI);
fprintf('一致性比例CR:%f\n', CR);
```
其中,输入的判断矩阵A需要根据具体问题进行设置。程序会输出加权矩阵W、一致性指标CI和一致性比例CR。
阅读全文