楼主: 蔡小朋友
2614 0

[程序分享] 用matlab实现二阶段网络DEA [推广有奖]

  • 0关注
  • 3粉丝

等待验证会员

已卖:25份资源

大专生

61%

还不是VIP/贵宾

-

威望
0
论坛币
43 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
260 点
帖子
15
精华
0
在线时间
94 小时
注册时间
2018-2-8
最后登录
2025-6-25

楼主
蔡小朋友 在职认证  学生认证  发表于 2021-1-5 21:29:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
二阶段网络DEA的本质是线性规划,相关约束如下:
二阶段网络DEA.png
代码如下:
Z=Num(:,11:11)';    %设置了一个1*40的矩阵 为Z
n=size(X',1);     %返回X的转置的行数,即为40,n指的是n个决策单元
m=size(X,1);       %返回X的转置的行数,即为8,n指的是有m个投入
s=size(Y,1);     %返回X的转置的行数,即为2,n指的是有m个投入
p=size(Z,1);      %2个Y产出
A=[-X(1:2,:)' zeros(n,4) Z';zeros(n,2) -X(3:4,:)' Y' -Z'];      %转置再转置其实就是没有转置,后面就是一些约束性的内容啦,可以查看matlab非线性规划中的内容就可以进行设定
b=zeros(2*n,1);
LB=zeros(p+m+s,1); UB=[];
w=zeros(m+s+p,n);E=zeros(3,n);
for i=1:n
  f= [X(:,i)' zeros(1,4)];
  Aeq=[zeros(1,4) Y(:,i)' zeros(1,2)]; beq=1;
  w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);   
    E(1,i)=(X(3:4,i)'*w(3:4,i)+Z(:,i)'*w(7:8,i))/(X(:,i)'*w(1:4,i));
    E(2,i)=(Y(:,i)'*w(5:6,i))/(X(3:4,i)'*w(3:4,i)+Z(:,i)'*w(7:8,i));
    E(3,i)=E(1,i)*E(2,i);
end
w;   
E;   
v=w(1:m,:);   
u=w(m+1:m+s,:);   
omiga=w(m+s+1:m+s+p,:);
E=E';

二维码

扫码加我 拉你入群

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

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

关键词:matlab实现 MATLAB matla atlab Lab 非线性规划 MATLAB DEA MATLAB编程 MATLAB语言

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-9 07:29