模型((PC2R)的MATLAB程序 clear
X=[6,8,9]; %用户输入多指标输入矩阵X Y=[5,7,8]; %用户输入多指标输出矩阵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); UB=[]; for i=1:n;
f= [zeros(1,m) -Y(:,i)'];
Aeq=[X(:,i)' zeros(1,s)]; beq=1;
w(:,i)=LINPROG(f,A,b,Aeq,beq,LB,UB); %解线性规划,得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,:) %输出产出权向量。
模型(DC2R)的MATLAB程序 clear
X=[]; %用户输入多指标输入矩阵X Y=[]; %用户输入多指标输出矩阵Y n=size(X',1); m=size(X,1); s=size(Y,1);
epsilon=10^-10; %定义非阿基米德无穷小=10-10
f=[zeros(1,n) -epsilon*ones(1,m+s) 1]; %目标函数的系数矩阵:的系数为0,s-,s+的系数为-e,的系数为1;
A=zeros(1,n+m+s+1); b=0; %<=约束; LB=zeros(n+m+s+1,1); UB=[]; %变量约束;
LB(n+m+s+1)= -Inf; %-Inf表示下限为负无穷大。 for i=1:n;
Aeq=[X eye(m) zeros(m,s) -X(:,i)
Y zeros(s,m) -eye(s) zeros(s,1)]; beq=[zeros(m, 1 ) Y(:,i)];
w(:,i)=LINPROG (f,A,b,Aeq,beq,LB,UB); %解线性规划,得DMU的最佳权向量w; end
w %输出最佳权向量
lambda=w(1:n,:) %输出 s_minus=w(n+1:n+m,:) %输出s- s_plus=w(n+m+1:n+m+s,:) %输出s+ theta=w(n+m+s+1,:) %输出
--
--
w =
1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0713 0.0000 0.0000 1.0000 0.2495 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000
lambda =
1.0000 0.0000 0.0000 0.0000
s_minus =
0.0000 0.0000 0.0000 0.0000
s_plus =
1.0e-005 *
0.0000
theta =
1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0010 0.0037 1.0000 1.0000 28.5097 0.0000 0.8553 0.0000 0.0713 0.2495 0.0000 0.0000 0.0000 0.0000 28.5097 0.1474 0.8553
--
因篇幅问题不能全部显示,请点此查看更多更全内容