用Python代码写一下评价20条河流的水质情况的TOPISIS数学建模
时间: 2024-09-28 11:14:42 浏览: 21
在Python中,我们可以使用TOPSIS(Technique for Order Preference by Similarity to Ideal Solution)方法来进行水质评估。这是一种多准则决策分析工具,它将每个选项与理想解(最好状态)和反理想解(最差状态)进行比较,以确定最优选择。以下是一个简单的例子,假设我们有水质数据包含各指标(如pH值、溶解氧、氨氮等):
```python
import numpy as np
# 假设river_data是一个二维数组,每行代表一条河,列代表各个水质指标
river_data = np.array([
[7.5, 6.8, 4.2],
[6.9, 7.1, 5.5],
...,
[7.2, 5.8, 3.1]
])
# 设定权重(这里假设数值越大表示越重要)
weights = np.array([0.4, 0.3, 0.3]) # 这里是三个指标的权重,可以根据实际需求调整
# 计算正向和负向理想解(最小和最大值)
ideal_solution_pos = river_data.max(axis=0)
ideal_solution_neg = river_data.min(axis=0)
# 求出距离理想解的平方距离矩阵
distances_pos = ((river_data - ideal_solution_pos) ** 2).sum(axis=1)
distances_neg = ((river_data - ideal_solution_neg) ** 2).sum(axis=1)
# 计算合成距离(综合考虑两方面)
performance_index = (1 - distances_pos / distances_pos.sum()) * weights + \
(distances_neg / distances_neg.sum()) * weights
# 找到性能指数最高的前几条河
top_rivers = performance_index.argsort()[-5:][::-1]