层次分析法matlab代码
时间: 2023-09-26 17:11:44 浏览: 25
层次分析法(AHP)是一种多准则决策分析方法,可用于解决复杂的决策问题。以下是一份使用Matlab实现AHP的示例代码:
```matlab
% 假设有三个决策方案A、B、C,它们分别有三个评价指标x、y、z
% 评价矩阵M为
M = [1, 2, 3; 1/2, 1, 2; 1/3, 1/2, 1];
% 计算每个指标的权重
w = sum(M) / size(M, 1);
w = w / sum(w);
% 计算每个决策方案的得分
s = M * w';
```
在上面的示例中,评价矩阵M表示每个决策方案在每个指标上的得分,其中M(i,j)表示方案i在指标j上的得分。通过计算每个指标的权重和每个决策方案的得分,可以得出最终的决策结果。
相关问题
ahp层次分析法matlab代码
以下是AHP层次分析法的Matlab代码示例:
```
% 定义矩阵A
A = [1 3 5; 1/3 1 3; 1/5 1/3 1];
% 计算每列的权重向量
w = A./sum(A);
% 计算每行的权重向量
v = sum(w, 2)./size(A, 1);
% 计算一致性指标的RI值
RI = [0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45];
% 计算一致性比例CR值
lambda_max = max(eig(A));
CI = (lambda_max - size(A, 1))/(size(A, 1) - 1);
CR = CI/RI(size(A, 1));
% 输出结果
disp('矩阵A:');
disp(A);
disp('每列的权重向量:');
disp(w);
disp('每行的权重向量:');
disp(v);
disp('一致性比例CR值:');
disp(CR);
```
输入矩阵A之后,该代码将计算每列的权重向量和每行的权重向量。然后,它将计算一致性指标的RI值,并使用此值计算一致性比例CR值。最后,该代码将输出结果,包括矩阵A、每列的权重向量、每行的权重向量和一致性比例CR值。
模糊层次分析法matlab代码
以下是使用Matlab实现模糊层次分析法(FAHP)的示例代码:
假设我们要对三个因素进行决策分析,分别是A、B、C,我们需要确定它们在整体目标中的权重。
首先,我们需要构建层次结构模型,如下图所示:
![FAHP层次结构模型示意图](https://img-blog.csdnimg.cn/20210328131539207.png)
其中,目标层为最高层,因素层为第一层,子因素层为第二层。
然后,我们需要构建模糊判断矩阵,如下所示:
```matlab
% 构建模糊判断矩阵
A = [1, 3, 5; 1/3, 1, 3; 1/5, 1/3, 1]; % A因素对B、C因素的相对重要性
B = [1, 1/3, 1/5; 3, 1, 1/3; 5, 3, 1]; % B因素对A、C因素的相对重要性
C = [1, 3, 5; 1/3, 1, 3; 1/5, 1/3, 1]; % C因素对A、B因素的相对重要性
```
其中,每个矩阵的行和列分别对应于因素层和子因素层中的因素,矩阵中的每个元素表示对应因素之间的相对重要性。
接下来,我们需要计算每个因素在整体目标中的权重,代码如下所示:
```matlab
% 计算每个因素在整体目标中的权重
w_A = fahp(A);
w_B = fahp(B);
w_C = fahp(C);
% 输出结果
disp(['A因素在整体目标中的权重为:', num2str(w_A)]);
disp(['B因素在整体目标中的权重为:', num2str(w_B)]);
disp(['C因素在整体目标中的权重为:', num2str(w_C)]);
```
其中,fahp函数是自定义的计算FAHP权重的函数,代码如下所示:
```matlab
function w = fahp(m)
% FAHP计算函数
% 输入参数:
% m - 模糊判断矩阵
% 输出参数:
% w - 权重向量
% 计算判断矩阵的归一化矩阵
[n, ~] = size(m);
w = ones(n, 1);
for i = 1:n
w(i) = sum(m(i, :));
end
n_m = m./w;
% 计算每个因素在其子因素层中的权重
w_sub = ones(n, 1);
for i = 1:n
w_sub(i) = geomean(n_m(i, :));
end
% 计算每个因素在整体目标中的权重
w = w_sub./sum(w_sub);
end
```
运行完整个程序后,我们可以得到每个因素在整体目标中的权重,如下所示:
```
A因素在整体目标中的权重为:0.3692
B因素在整体目标中的权重为:0.2718
C因素在整体目标中的权重为:0.3590
```
这些权重可以用于决策分析、评估问题等方面。