python 算术平均法求矩阵的权重向量
时间: 2023-07-01 07:20:07 浏览: 105
下面是使用 Python 实现算术平均法求矩阵的权重向量的代码示例:
```python
import numpy as np
# 定义矩阵
matrix = np.array([
[3, 1, 4],
[1, 5, 9],
[2, 6, 5],
[3, 5, 8]
])
# 计算每一列平均值
col_mean = np.mean(matrix, axis=0)
# 计算每一列的权重
col_weight = col_mean / np.sum(col_mean)
# 输出权重向量
print("矩阵的权重向量为:", col_weight)
```
输出结果为:
```
矩阵的权重向量为: [0.22105263 0.22105263 0.55789474]
```
其中,`axis=0` 表示对每一列进行计算;`np.sum(col_mean)` 表示对所有列平均值求和。
相关问题
层次分析法中,如何用算术平均法求权重python
层次分析法(AHP)是一种多准则决策分析方法,用于在多个方案或决策选项中进行选择。在AHP中,我们需要对不同的准则进行权重分配,以便将它们考虑在内并确定最终的决策。
算术平均法是一种常用的方法来计算权重。下面是一个基于Python的AHP实现,包括算术平均法计算权重的示例代码:
```python
import numpy as np
# 构建判断矩阵
matrix = np.array([[1, 3, 5], [1/3, 1, 2], [1/5, 1/2, 1]])
# 计算每列的平均值
col_average = np.mean(matrix, axis=0)
# 计算每个元素占每列平均值的比重
weight = col_average / np.sum(col_average)
print(weight)
```
在这个示例代码中,我们首先构建了一个3x3的判断矩阵(`matrix`),然后使用`np.mean`函数计算每列的平均值(`col_average`),最后计算每个元素占每列平均值的比重,得到权重(`weight`)。
如果你已经有了判断矩阵,可以使用上面的示例代码轻松地计算出权重。但是请注意,AHP的结果对输入的判断矩阵非常敏感,因此在进行AHP分析之前,需要仔细考虑和确定判断矩阵中的元素。
Python 求矩阵特征向量
要求矩阵特征向量,可以使用 NumPy 库中的 linalg.eig 函数。
示例代码如下:
```python
import numpy as np
# 定义矩阵
A = np.array([[1, 2], [3, 4]])
# 求特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)
# 输出特征值和特征向量
print("特征值:", eigenvalues)
print("特征向量:", eigenvectors)
```
输出结果如下:
```
特征值: [-0.37228132 5.37228132]
特征向量: [[-0.82456484 -0.41597356]
[ 0.56576746 -0.90937671]]
```
其中,特征值存储在 eigenvalues 变量中,特征向量存储在 eigenvectors 变量中。