1、Matlab 程序代码模型(P C2R)的 MATLAB 程序clearX=; %用户输入多指标输入矩阵 XY=; %用户输入多指标输出矩阵 Yn=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);
2、 %求出 DMUi 的相对效率值 Eiiendw %输出最佳权向量E %输出相对效率值 EiiOmega=w(1:m,:) %输出投入权向量。mu=w(m+1:m+s,:) %输出产出权向量。模型(D C2R)的 MATLAB 程序clearX=; %用户输入多指标输入矩阵 XY=; %用户输入多指标输出矩阵 Yn=size(X,1); m=size(X,1); s=size(Y,1);epsilon=10-10; %定义非阿基米德无穷小 =10-10f=zeros(1,n) -epsilon*ones(1,m+s) 1; %目标函数的系数矩阵: 的系数为 0,s-,s+的系数为- e,的系数
3、为 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,:) %输出