注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

徐小湛的博客

高等数学课件、函数图形动画、数学软件应用

 
 
 

日志

 
 

MATLAB在数据包络分析中的应用 (MATLAB程序)  

2011-10-03 07:48:11|  分类: Matlab |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

说明:

以下是论文《MATLAB在数据包络分析中的应用》(《西南民族学院学报》2002年第2期)中的几个MATLAB程序。

论文见:http://xuxzmail.blog.163.com/blog/static/2513191620119242852249/

 
 
 
论文中的应用数据
 

 MATLAB在数据包络分析中的应用 - calculus - 高等数学

 

MATLAB在数据包络分析中的应用 - calculus - 高等数学

   

MATLAB在数据包络分析中的应用 - calculus - 高等数学

 

MATLAB在数据包络分析中的应用 - calculus - 高等数学

 

 

论文中的程序及运算结果

 

程序I (模型 (P) 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=[ ];

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);    %解线性规划,得DMUi的最佳权向量wi

  E(i, i)=Y(:,i)'*w(m+1:m+s,i);            %求出DMUi的相对效率值Eii

end

w                 %输出最佳权向量

E                 %输出相对效率值Eii

omega=w(1:m,:)     %输出投入权向量omega

mu=w(m+1:m+s,:)   %输出产出权向量mu

 

 

%DEA_P program  (September 5, 2001)

%论文:MATLAB在数据包络分析中的应用

%大学的系的有效性问题

< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> 

clear

 

X=[

 60    70    85     106      35

156   200   157     263     105

50   180   100      86      30

];

 

Y=[

80    60   90    96   30

12    13   20    17    8

27    25   15    28    3

 4     2    5     5    1

];

 

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=[];

 

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);

    z(i)=Y(:,i)'*w(m+1:m+s,i);

end

 

w

z

omega=w(1:m,:)

mu=w(m+1:m+s,:)

 

 

计算结果(Oct. 3, 2011):

>> Optimization terminated successfully.

Optimization terminated successfully.

Optimization terminated successfully.

Optimization terminated successfully.

Optimization terminated successfully.

 

w =

 

    0.0003    0.0143    0.0001    0.0000    0.0019

    0.0002    0.0000    0.0063    0.0014    0.0015

    0.0191    0.0000    0.0001    0.0073    0.0257

    0.0027    0.0000    0.0007    0.0000    0.0012

    0.0116    0.0554    0.0203    0.0442    0.1177

    0.0155    0.0071    0.0079    0.0000    0.0011

    0.0563    0.0000    0.0819    0.0138    0.0186

 

 

z =

 

    1.0000    0.8982    1.0000    0.8206    1.0000

 

 

omega =

 

    0.0003    0.0143    0.0001    0.0000    0.0019

    0.0002    0.0000    0.0063    0.0014    0.0015

    0.0191    0.0000    0.0001    0.0073    0.0257

 

 

mu =

 

    0.0027    0.0000    0.0007    0.0000    0.0012

    0.0116    0.0554    0.0203    0.0442    0.1177

    0.0155    0.0071    0.0079    0.0000    0.0011

    0.0563    0.0000    0.0819    0.0138    0.0186

 

 

 程序II (模型 (D-epsilon) MATLAB程序)

 

Matlab在数据包络分析中的应用 - calculus - 高等数学

clear

X=[     ];        %用户输入多指标输入矩阵X

Y=[     ];        %用户输入多指标输出矩阵Y

n=size(X',1);m=size(X,1);s=size(Y,1);

epsilon=10^-10;      %定义非阿基米德无穷小 =1010

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)];

     beq=[zeros(m,1)

           Y(:,i)];

      w(:,i)= LINPROG (f,A,b,Aeq,beq,LB,UB);   %解线性规划,得DMUi的最佳权向量wi

end

w                             %输出最佳权向量

lambda=w(1:n,:)          %输出 lambda*

s_minus=w(n+1:n+m,:)     %输出s*

s_plus=w(n+m+1:n+m+s,:)  %输出s*

theta=w(n+m+s+1,:)        %输出 theta*

 

 

%DEA_Dε program (C2R)  (Sept 5, 2001)

%(论文:MATLAB在数据包络分析中的应用

%大学的系的有效性问题

 

clear

X=[

 60    70    85     106     35

156   200   157     263    105

 50    180  100     86     30

];

Y=[

80    60   90    96   30

12    13   20    17    8

27    25   15    28    3

 4     2    5     5    1

];

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)];

     beq=[zeros(m,1)

           Y(:,i)];

      

     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,:)

 

运算结果(Oct. 3, 2011):

>> Optimization terminated successfully.

Optimization terminated successfully.

Optimization terminated successfully.

Optimization terminated successfully.

Optimization terminated successfully.

 

w =

 

    1.0000    0.8472    0.0000    1.0964    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0000

    0.0000    0.1417    1.0000    0.0536    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0000

    0.0000    0.0000    0.0000    0.3464    1.0000

    0.0000    0.0000    0.0000    4.5215    0.0000

    0.0000   25.2345    0.0000    0.0000    0.0000

    0.0000  105.1508    0.0000    0.0000    0.0000

    0.0000   20.5278    0.0000    6.9272    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0000

    0.0000    0.0000    0.0000    3.4454    0.0000

    0.0000    2.0972    0.0000    0.0000    0.0000

    1.0000    0.8982    1.0000    0.8206    1.0000

 

 

lambda =

 

    1.0000    0.8472    0.0000    1.0964    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0000

    0.0000    0.1417    1.0000    0.0536    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0000

    0.0000    0.0000    0.0000    0.3464    1.0000

 

 

s_minus =

 

    0.0000    0.0000    0.0000    4.5215    0.0000

    0.0000   25.2345    0.0000    0.0000    0.0000

    0.0000  105.1508    0.0000    0.0000    0.0000

 

 

s_plus =

 

    0.0000   20.5278    0.0000    6.9272    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0000

    0.0000    0.0000    0.0000    3.4454    0.0000

    0.0000    2.0972    0.0000    0.0000    0.0000

 

 

theta =

 

    1.0000    0.8982    1.0000    0.8206    1.0000

 

>> 

 

 

 程序III(模型 (D) MATLAB程序)(注:原文没有这个程序,列出供参考)

 

%DEA_D program  (Sept. 5, 2001)

% 论文:MATLAB在数据包络分析中的应用

%大学的系的有效性问题

 

clear

 

X=[

 60    70    85     106     35

156   200   157     263    105

 50    180  100     86     30

];

Y=[

80    60   90    96   30

12    13   20    17    8

27    25   15    28    3

 4     2    5     5    1

];

 

n=size(X',1);m=size(X,1);;s=size(Y,1);

 

f=[ zeros(1,n) 1];

Aeq=zeros(1,n+1);beq=0;

LB=zeros(n+1,1);UB=[];LB(n+1)=-Inf;

 

for i=1:n;

   A=[  X   -X(:,i)

       -Y    zeros(s,1)];

   b=[zeros(m,1)

       -Y(:,i)];

   w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);

 

end

w

lambda=w(1:n,:)

theta=w(n+1,:)

 

 

 

运算结果(Oct 3, 2011):

 

theta =

 

    1.0000    0.8982    1.0000    0.8206    1.0000

 

>> Optimization terminated successfully.

Optimization terminated successfully.

Optimization terminated successfully.

Optimization terminated successfully.

Optimization terminated successfully.

 

w =

 

    1.0000    0.8472    0.0000    1.0964    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0000

    0.0000    0.1417    1.0000    0.0536    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0000

    0.0000    0.0000    0.0000    0.3464    1.0000

    1.0000    0.8982    1.0000    0.8206    1.0000

 

 

lambda =

 

    1.0000    0.8472    0.0000    1.0964    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0000

    0.0000    0.1417    1.0000    0.0536    0.0000

    0.0000    0.0000    0.0000    0.0000    0.0000

    0.0000    0.0000    0.0000    0.3464    1.0000

 

 

theta =

 

    1.0000    0.8982    1.0000    0.8206    1.0000

 

  评论这张
 
阅读(1639)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016