matlab里面怎么报错,关于DEA在Matlab里面实现,报错了

4.95 3.69 3.53 4.01 4.15

0.14 0.19 0.84 0.67 0.28

15.49 14.88 18.75 21.03 28.63

15.08 18.28 18.94 20.35 53.48

99.71 113.82 118.03 115.10 140.73

以上可以作为Matlab中X=[]输入,也就是输入指标

245.63 321.77 372.52 400.03 576.93

0.20 2.30 2.49 1.97 2.55

22.28 29.22 20.31 8.96 9.98

83.70 193.59 105.34 109.94 127.27

99.63 102.10 98.29 94.08 95.04

8.22 1.13 7.58 3.49 3.42

Y=[],输出指标

主要是求解DEA的CCR模型,你看网上给的模型的代码,看在你的Matlab上可以运行吗?谢谢

clear

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

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

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

epsilon=10^-10; %定义非阿基米德无穷小e =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); %解线性规划,得DMUi 的最佳权向量wi

end

w %输出最佳权向量

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

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

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

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

附上一个pdf里面讲解的

DMU1 DMU2 DMU3 DMU4 DMU5

投入

教职工(人)       60 70 85 106 35

教职工工资(万元) 156 200 157 263 105

运转经费(万元)   50 180 100 86 30

产出

毕业的本科生(人)  80 60 90 96 30

毕业的研究生(人)  12 13 20 17 8

发表的论文(篇)    27 25 15 28 3

完成的科研项目(项)4 2 5 5 1

用同样的程序运行后,得到结果了(我困惑了,为什么的我那个矩阵就不行呢,报错“Subscripted assignment dimension mismatch.”)

DMU1 DMU2 DMU3 DMU4 DMU5

入*  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

(以上也就是lambda的符号)

s*- 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

(以上是松弛变量)

s*+ 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

(也是松弛变量)

q *  1.0000 0.8982 1.0000 0.8206 1.0000

(效率值,1.000表示有效)

帮忙看看吧,我的那个X=[],和Y=[];为什么无法运行啊?往共同探讨,一起共享经验。

1f0bd8bbffa0e23bf204680d47f63487.gif

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值