python数学建模|综合评价方法

综合评价方法研究

《python数学实验与建模》中课后习题练习与代码笔记3。

综合评价方法包涵较多的模型,本次主要解析两个模型:TOPSIS(逼近理想解)模型和灰色关联分析模型。本次建模问题是传统模型,并没有进行扩展和改进。

一、基本模型

⑴TOPSIS模型

TOPSIS模型是逼近理想解的排序方法,它借助于评价问题的正理想解和负理想解,对各理想解进行排序。正理想解是一个虚拟的最佳对象,正理想解各个指标数值是评价对象该指标的最好值;负理想解亦是一个虚拟的最差对象,负理想解各个指标数值是评价对象该指标的最差值。通过求出各评价对象与正理想解与负理想解的距离,并通过距离指标对各评价对象进行优劣排序。

      数学原理如下:

python数学建模|综合评价方法_第1张图片

⑵灰色关联分析模型

在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较高;反之,则较低。因此,灰色关联分析方法,是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。

数学原理如下:

python数学建模|综合评价方法_第2张图片

二、模型应用与求解

以《python数学实验与建模》第九章课后习题9.1为例。

python数学建模|综合评价方法_第3张图片

求解过程python实现如下所示:

import numpy as np
a = np.array([[8.1,255,12.6,13.2,76,5.4],
              [6.7,210,13.2,10.7,102,7.2],
              [6.0,233,15.3,9.5,63,3.1],
              [4.5,202,15.2,13,120,2.6]])
for j in range(0,6):#数据归一化处理
    a[:,j] = (a[:,j]-min(a[:,j]))/(max(a[:,j])-min(a[:,j]))
print(a)#查看数据的表现情况
#topsis方法
cplus = a.max(axis = 0)
cminus = a.min(axis = 0)
print('正理想解=',cplus,'负理想解=',cminus)
print(a-cplus)#每一列都减去cplus
d1 = np.linalg.norm(a-cplus,axis = 1)
d2 = np.linalg.norm(a-cminus,axis = 1)
print(d1,d2)#显示到正理想解和负理想解的距离
f1 = d2/(d1+d2)
print('topsis的评价值为:',f1)#最终经过综合评估,1号方案可能比较适合
#灰色关联分析
t = cplus-a#计算参考序列与每个序列的差
print('\n',t)
mmin = t.min()#计算最小值
print(mmin)
mmax = t.max()#计算最大值
print(mmax)
rho = 0.5 #分辨系数
xs = (mmin + rho*mmax)/(t+rho*mmax)#计算灰色关联系数
f2 = xs.mean(axis = 1)#求每一行的均值
print("关联系数=",xs,"\n关联度=",f2)#显示灰色关联系数与灰色关联度,可以看出依旧是方案1较为合适

三、结果简要分析

⑴TOPSIS模型输出分析

先确定正理想解与负理想解如下:

正理想解= [1. 1. 1. 1. 1. 1.] 负理想解= [0. 0. 0. 0. 0. 0.]

最终的topsis评价值为如下,可以看出,方案1比较合适。

topsis的评价值为: [0.58313806 0.49911304 0.40463435 0.492181  ]

⑵灰色关联分析模型

通过计算各个数据点的关联系数如下:

[[1.         1.         0.33333333 1.         0.39310345 0.56097561]
 [0.5625     0.37062937 0.39130435 0.42528736 0.61290323 1.        ]
 [0.46153846 0.54639175 1.         0.33333333 0.33333333 0.359375  ]
 [0.33333333 0.33333333 0.93103448 0.90243902 1.         0.33333333]] 

最终的每一行计算平均值得出每个方案的关联度如下,可以看出依然是方案一比较合适,符合TOPSIS模型输出的一致性。

[0.71456873 0.56043738 0.50566198 0.63891225]

四、总结

慢慢走,欣赏啊。

你可能感兴趣的:(python数学建模,python,算法,开发语言)