数据包络法(DEA)matlab程序

DEA看了一天,结果学长告诉我说我们用的是方法,不需要去搞懂原理,知道怎么用就行了,我真是。。。唉,只有自己去找matlab程序。原先学长给了一个matlab程序,但是只是给的一个特定例子即特定矩阵的程序,自己上网查找了一下matlab矩阵的输入,修改了一下下。

a=input('请输入投入数据:','s');
X=str2num(a);%用户输入多指标输入矩阵X
b=input('请输入产出数据:','s');
Y=str2num(b);%用户输入多指标输出矩阵Y
n=size(X', 1)
m=size(X,1);
s=size(Y,1);
epsilon=10^-10;
f=[zeros(1,n) -epsilon*ones(1,m+s) 1];
A=zeros(1,n+m+s+1);b=0;
LB=zeros(n+m+s+1,1);
UB=[];
LB(n+m+s+1)=-inf;
for i=1:n;
Aeq=[X eye(m) zeros(m,s) -X(:,i)
     Y zeros(s,m) -eye(s) zeros(s,1)
     ones(1,n) zeros(1,m+s+1)];
beq=[zeros(m,1)
     Y(:,i)
     1];
w(:,i)=linprog(f, A, b, Aeq, beq, LB, UB);
end
w
Lambda=w([1:n],:)
s_minus=w([n+1:n+m],:)
s_plus=w([n+m+1:n+m+s],:)
theta=w(n+m+s+1,:)

 

posted @ 2017-04-06 22:08  长风-  阅读(6260)  评论(1编辑  收藏  举报