数学建模——熵权法Matlab编程计算权重

数学建模——熵权法Matlab编程计算权重根据2020年美赛f题,利⽤熵权法和Matlab计算出各指标的权重
⾸先对数据进⾏归⼀化
function y=guiyi(x,type,ymin,ymax)
[n,m]=size(x);
y=zeros(n,m);
for i=1:n
美帝国的崩溃电子书for j=1:m
y(i,j)=x(i,j)/sum(x(:,j));%归⼀化⽅法
end
end
然后对进⾏熵权法的计算
仪表设备
function [s,w]=shang(x,ind)
帅同社区论坛%s返回各⾏(样本)得分,w返回各列权重
[n,m]=size(x); % n个样本, m个指标
X=guiyi(x,1,0.002,0.996);
%%计算第j个指标下,第i个样本占该指标的⽐重p(i,j)
for i=1:n
学术论文for j=1:m
p(i,j)=X(i,j)/sum(X(:,j));
end
end
%%计算第j个指标的熵值e(j)
k=1/log(n);
e=ones(1,m);
for j=1:m
e(j)=-k*sum(p(:,j).*log(p(:,j)));
end连枷胸
江苏电视台少儿频道d=ones(1,m)-e; %计算信息熵冗余度
w=d./sum(d); %求权值w
s=100*w*X'; %求综合得分
由于在2020年美赛F题中选取的指标均为正向,因此本次代码没有考虑负向指标
最后运⾏main.m
x=xlsread('data.xlsx');  % 读⼊数据
Ind=[1 1 1 1 1 1 1 1 1 1]; %指定各指标的正向or负向,正向全为1,负向为2,有⼏个指标就有⼏列
[s,w]=shang(x,Ind)
注意:读取数据时,数据⽂件和以上两个函数⽂件需放在同⼀⽂件夹下

本文发布于:2024-09-25 17:12:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/484035.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:指标   计算   权重   权法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议