层次分析法特征值法求权重python代码
时间: 2024-03-02 14:47:00 浏览: 120
层次分析法中计算权重的代码
层次分析法(Analytic Hierarchy Process,AHP)是一种用于决策分析的方法,特征值法是AHP的一种求解权重的方法。下面是使用Python实现AHP特征值法求权重的代码示例:
```python
import numpy as np
def ahp_eigenvalue(matrix):
# 计算矩阵的特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(matrix)
# 计算特征向量的归一化权重
weights = eigenvectors[:, 0] / np.sum(eigenvectors[:, 0])
return weights
# 示例矩阵
matrix = np.array([[1, 3, 5],
[1/3, 1, 2],
[1/5, 1/2, 1]])
# 调用函数计算权重
weights = ahp_eigenvalue(matrix)
# 输出结果
for i, weight in enumerate(weights):
print(f"权重{chr(65+i)}: {weight}")
```
这段代码实现了AHP特征值法求解权重的功能。首先,定义了一个`ahp_eigenvalue`函数,该函数接受一个矩阵作为输入,并返回计算得到的权重。在函数内部,使用`np.linalg.eig`函数计算矩阵的特征值和特征向量,然后将特征向量的第一列进行归一化处理得到权重。最后,调用该函数并输出结果。
阅读全文