二阶段网络DEA的本质是线性规划,相关约束如下:
代码如下:
Z=Num(:,11:11)'; %设置了一个1*40的矩阵 为Z
n=size(X',1); %返回X的转置的行数,即为40,n指的是n个决策单元
m=size(X,1); %返回X的转置的行数,即为8,n指的是有m个投入
s=size(Y,1); %返回X的转置的行数,即为2,n指的是有m个投入
p=size(Z,1); %2个Y产出
A=[-X(1:2,:)' zeros(n,4) Z';zeros(n,2) -X(3:4,:)' Y' -Z']; %转置再转置其实就是没有转置,后面就是一些约束性的内容啦,可以查看matlab非线性规划中的内容就可以进行设定
b=zeros(2*n,1);
LB=zeros(p+m+s,1); UB=[];
w=zeros(m+s+p,n);E=zeros(3,n);
for i=1:n
f= [X(:,i)' zeros(1,4)];
Aeq=[zeros(1,4) Y(:,i)' zeros(1,2)]; beq=1;
w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);
E(1,i)=(X(3:4,i)'*w(3:4,i)+Z(:,i)'*w(7:8,i))/(X(:,i)'*w(1:4,i));
E(2,i)=(Y(:,i)'*w(5:6,i))/(X(3:4,i)'*w(3:4,i)+Z(:,i)'*w(7:8,i));
E(3,i)=E(1,i)*E(2,i);
end
w;
E;
v=w(1:m,:);
u=w(m+1:m+s,:);
omiga=w(m+s+1:m+s+p,:);
E=E';