DEA的Matlab程序数据包络分析.doc
《DEA的Matlab程序数据包络分析.doc》由会员分享,可在线阅读,更多相关《DEA的Matlab程序数据包络分析.doc(1页珍藏版)》请在冰豆网上搜索。
模型((PC2R)的MATLAB程序
clear
X=[];%用户输入多指标输入矩阵X
Y=[];%用户输入多指标输出矩阵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=[];
fori=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,:
)%输出产出权向量。
模型(DeC2R)的MATLAB程序
clear
X=[];%用户输入多指标输入矩阵X
Y=[];%用户输入多指标输出矩阵Y
n=size(X',1);m=size(X,1);s=size(Y,1);
epsilon=10^-10;%定义非阿基米德无穷小e=10-10
f=[zeros(1,n)-epsilon*ones(1,m+s)1];%目标函数的系数矩阵:
l的系数为0,s-,s+的系数为-e×e,q的系数为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表示下限为负无穷大。
fori=1:
n;
Aeq=[Xeye(m)zeros(m,s)-X(:
i)
Yzeros(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,:
)%输出l
s_minus=w(n+1:
n+m,:
)%输出s-
s_plus=w(n+m+1:
n+m+s,:
)%输出s+
theta=w(n+m+s+1,:
)%输出q