层次分析法怎么算出权重?

如题所述

层次分析法运算方法有算术平均法、几何平均法、特征值法。

1、算术平均法。

%第一步:将判断矩阵按照列归一化(每一个元素除以其所在列的和)。

Sum_A=sum(A)%列求和。

n=size(A,1)%返回行数。

SUM_A=repmat(Sum_A,n,1) %弄成n*n矩阵。

Stand_A = A ./ SUM_A。

%对应的元素相除即可。

%第二步:将归一化的各列相加。

sum(Stand_A,2)%按行求和。

%第三步:将相加后得到的向量中每个元素除以n即可得到权重向量。

disp(‘算术平均法求权重的结果为:‘);

disp(sum(Stand_A,2) / n)。

2、几何平均法。

%%方法2:几何平均法求权重。

%第一步:将A的元素按照行相乘得到一个新的列向量。

clc;A。

Prduct_A = prod(A,2)。

%prod(A,2)意思是按行每个元素相乘。

%第二步:将新的向量的每个分量开n次方(是开方)。

Prduct_n_A = Prduct_A .^ (1/n)。

%第三步:对该列向量进行归一化即可得到权重向量。

%将这个列向量中的每一个元素除以这一个向量的和即可。

disp('几何平均法求权重的结果为:[y;。

disp(Prduct_n_A ./ sum(Prduct_n_A))。

3、特征值法。

%第一步:求出矩阵A的最大特征值以及其对应的特征向量。

clc。

%V是特征向量,D是由特征值构成的对角矩阵(除了对角线元素外,其余位置元素全。

[V,D] = eig(A)。

Max_eig=max(max(D))%也可以写成max(D(:))。

[r,c] = find(D == Max_eig , 1)。

%找到D中第一个与最大特征值相等的元素的位置,记录它的行和列。

%第二步:对求出的特征向量进行归一化即可得到我们的权重。

V(:,c)。

disp('特征值法求权重的结果为:');

disp( V(:,c) ./ sum(V(:,c)) )。

层次分析法:

层次分析法,简称AHP,是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代初,在为美国国防部研究"根据各个工业部门对国家福利的贡献大小而进行电力分配"课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。

层次分析法是指将一个复杂的多目标决策问题作为一个系统,将目标分解为多个目标或准则,进而分解为多指标(或准则、约束)的若干层次,通过定性指标模糊量化方法算出层次单排序(权数)和总排序,以作为目标(多指标)、多方案优化决策的系统方法。

温馨提示:答案为网友推荐,仅供参考
相似回答