对抗型交叉评价DEA模型matlab代码,代码来自于彭育威老师的《利用MATLAB进行DEA交叉评价分析》一文,非常适合学习。
如果您想做仁慈型DEA,可与我联系。
clear
X=[30 60 55 40 70 ;
25 40 70 30 90; 130 150 120 70 180];%用户键入输入矩阵
Y=[35 43 76 52 63;60 80 53 42 71];%用户键入输出矩阵;
n=size(X',1); m=size(X,1); s=size(Y,1);%以下是第一轮线性规划;
A=[-X',Y'];b=zeros(n,1);
LB=zeros(m+s,1);UB=[];
for i = 1:n
Aeq=[X(:,i)' zeros(1,s)];beq=1;
f=[zeros(1,m) -Y(:,i)'];
w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);%解线性规划,得出DMUi的最佳权重向量wi
Eii=Y(:,i)'*w(m+1:m+s,i);
for k=1: n
f=[zeros(1,m) Y(:,k)'];
Aeq=[X(:,k)' zeros(1,s)
Eii*X(:,i)' -Y(:,i)'];
beq=[1 0];
v=linprog(f,A,b,Aeq,beq,LB,UB);
E(i,k)=(Y(:,k)'*v(m+1:m+s))/(X(:,k)'*v(1:m)); %得到交叉评价值Eik
end
end
E %输出交叉评价矩阵E
ei=mean(E) %计算E的各列平均值ei(1<=ei<=n)
[Y1]=sort(mean(E)) %按e1的大小,对诸决策单元从小到大进行排列
[Y2]=fliplr(Y1) %按照ei的大小,对诸决策单从大到小排序
标签:Aeq,06,交叉,29,zeros,matlab,DEA,beq
From: https://www.cnblogs.com/gongju128/p/18207135