|
clear
x=[30 60 55 40 70;25 40 70 30 90;130 150 120 70 180];
y=[35 43 76 52 63;60 80 53 42 71];
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=[];
options=optimset('maxiter',1e4,'tolfun',1e-6);
for i=1:n
Aeq=[x(:,i)',zeros(1,s)];beq=1;
f=[zeros(1,m)-y(:,i)'];
w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);
Eii=y(:,i)'*w(m+1:m+s,i);
for k=1:n;
f=[zeros(1,m),y(:,k)'];
Aeq=[x(:,k)',zeros(1,s);Eii*x(:,i)',-y(:,j)'];
beq=[1;0];
v=linprog(f,A,b,Aeq,beq,LB,UB);
E(i,k)=(y(:,k)'*v(m+1:m+s))/(x(:,k)'*v(1:m));
end
end
E
mean(E)
[Y 1]=sort(mean(E));
fliplr(I)
这是交叉效率,也出错了。请帮忙纠错,并能运行成功。谢谢 |
|