因不知你的具体方程,按我的经验,作了如下改动。
去掉:Aeq=[X(:,i)' zeros(1,s)]; beq=1;
改成:Aeq=[];beq=[];.
去掉:UB=[];
去掉:w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);
改成:w(:,i)=linprog(f,A,b,Aeq,beq,LB);
修改后的代码:
X=[0,29,21;0,30,18]; %用户输入多指标输入矩阵X
Y=[50,15,1;200,15,1]; %用户输入多指标输出矩阵Y
n=size(X',1); m=size(X,1); s=size(Y,1);
A=[-X' Y'];
b=zeros(n, 1);
LB=zeros(m+s,1);
for i=1:n;
f= [zeros(1,m) -Y(:,i)'];
Aeq=[];beq=[];
w(:,i)=linprog(f,A,b,Aeq,beq,LB); %解线性规划,得DMU;的最佳权向量w;
E(i, i)=Y(:,i)'*w(m+1:m+s,i); %求出DMUi的相对效率值Eii
end
w %输出最佳权向量
E %输出相对效率值Eii
Omega=w(1:m,:) %输出投入权向量。
mu=w(m+1:m+s,:) %输出产出权向量。
运行结果