全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版)
3774 3
2014-09-18
用linprog函数求解DEA交叉效率模型,但是因为数据太多,需要计算很久。求高手优化~谢谢
程序是这样子的:
%计算交叉评价价值矩阵
[num,txt,raw]=xlsread('E:\Matlab\DEA效率的求解\AllData.xlsx',4,'A2:S2189');
[m,n]=size(num);%其中有7个产出项,9个投入项共16个指标;
X=zeros(m,9);%A为投入矩阵
Y=zeros(m,7);%B为产出矩阵
E=zeros(m);
U=zeros(16,m);
a=1;
c=1;
%区分指标是投入还是产出,并将投入产出分开
for i=1:n
    if num(m,i)==1
        Y(:,a)=num(:,i);
        a= a + 1;
    else
        X(:,c)=num(:,i);
        c=c+1;
    end
end
B=[X,Y];
%第一阶段,计算自我评价Value,Edd
LB=zeros(16,1);UB=[];
for j=1:m
    Aeq=[X(j,:),zeros(1,7)];beq=1;
    Aineq=[-X(j,:),Y(j,:)];bineq=0;
    f=[zeros(1,9),-Y(j,:)];
    [u,fval]=linprog(f,Aineq,bineq,Aeq,beq,LB,UB,[]);
    U(:,j)=u;
    E(j,j)=[zeros(1,9),Y(j,:)]*u;
end
%将各个企业的各企业求和
A=zeros(1,16);
for q=1:16
     A(1,q)=sum(B(:,q));
end
%第二阶段求他评,Edk
for k=1:m
    for t=1:m
        if t~=k
            Aeq1=[A(1,1:9),zeros(1,7)
                E(k,k)*X(t,:),-Y(t,:)];
            beq1=[1
                0];
            Aineq1=[-X(t,:),Y(t,:)];bineq1=0;
            f1=[zeros(1,9),-A(1,10:16)];
            [v,fval]=linprog(f1,Aineq1,bineq1,Aeq1,beq1,LB,UB,[]);
            E(k,t)=[zeros(1,9),A(1,10:16)]*v;
        end
    end
end
第一阶段模型和第二阶段模型在图片里面


附件列表
第二阶段模型.jpg

原图尺寸 43.51 KB

第二阶段模型

第二阶段模型

}EF8_]5EA2PBRS9T375QAT7.jpg

原图尺寸 36.9 KB

第一阶段模型

第一阶段模型

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-9-18 16:43:24
运行的时候有一个非正常提示:
Exiting:Maximum number of iterations exceeded:increase options。MaxIter。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-9-18 17:07:34
进来看看       
              
                          
                  
                   
                                 
        


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-9-25 15:09:05
求大神啊!!!数据过多,计算了四十几个小时,但是效率值居然全部大于一····
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群