数据包络法(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,:)

 

转载于:https://www.cnblogs.com/hydbk/p/6675703.html

  • 13
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值