数学建模社区-数学中国
标题: 熵权法确定权重 [打印本页]
作者: 2744557306 时间: 2023-8-20 17:23
标题: 熵权法确定权重
这段代码实现了熵权法模型的权重计算。下面是代码的解释:
函数定义:
: b( g7 Z: O" m' X( a$ z3 f0 x/ y
- 函数名为shang,接受三个输入参数:x(决策矩阵),standard(是否已经处理化),flag(判断类型)。
- 返回权重向量w。
% e( G" O1 |3 L& b0 @, D$ I; X% J
变量初始化:
5 M( \9 ~; N, R+ U* d
- 获取决策矩阵x的最小值a和最大值b。
- 获取决策矩阵的行数rows和列数cols。
- 如果函数调用时只提供两个参数,并且standard为0(表示尚未进行处理),则将flag设置为全1向量(表示所有指标都是高优指标)。
2 G7 W( T. [2 x5 {
标准化指标:
( E& s& n6 f- P
- 如果参数standard为0,表示决策矩阵尚未进行处理化。
- 使用循环将决策矩阵x的每个元素进行标准化处理。
0 u. k; i2 |$ k) r6 K N- 如果flag(j)为1,表示该指标为高优指标,使用线性映射将值映射到0到1之间。
- 否则,表示该指标为低优指标,使用线性映射将值映射到1到0之间。2 D# T( w% F: Q5 e
计算概率矩阵p:
+ v/ W# F4 n6 m( f# b" A( `
- 计算标准化矩阵x每列的和he。
- 使用循环计算概率矩阵p,即将标准化矩阵x的每个元素除以对应列的和he(j)。; ?; ^7 m! e' K8 n: s! ]3 r6 H% d. V: Q7 J
指标归一化:
$ X& d) P0 j: M$ \4 q* G9 _. H- 使用循环将概率矩阵p的每个元素进行指标归一化处理。$ B$ z$ m) ~. W1 k% S
- 如果p(i,j)等于0,将z(i,j)设置为0。
- 否则,将z(i,j)设置为p(i,j)的自然对数log(p(i,j))。
. _/ J; O, e: I5 H9 ?+ [
计算e值:
- I# q% c5 P4 C: e0 }/ O9 {
- 初始化e为大小为1 x cols的零向量。
- 对概率矩阵p和归一化矩阵z进行逐元素乘积得到矩阵Q。
- 使用循环计算e值,即对Q的每列求和,乘以常数k。
8 p% g- ~3 j7 v4 h) F
计算权重w:
0 B6 ]$ `* K$ S: P8 e
- 计算e值的和he。
- 使用循环计算权重w,即将(1 - e(i))除以(cols - he)。该步骤将权重归一化,使得所有权重之和为1。1 Y0 O( \/ \8 |* t A: z/ i+ j
该函数的作用是根据熵权法模型,计算决策矩阵中每个指标的权重。熵权法模型是一种多指标决策方法,通过标准化指标和概率计算,得到每个指标的权重,用于综合评价和决策分析。
1 I( n$ n$ m. x2 Z
7 V2 |$ H1 F. W- G, r0 w0 i" Q7 W- D# {
-
-
shang.m
979 Bytes, 下载次数: 0, 下载积分: 体力 -2 点
售价: 3 点体力 [记录]
[购买]
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) |
Powered by Discuz! X2.5 |