Como eu sei que vou precisar disso posteriormente no curso e não tenho o matlab instalado em casa (e nem vou instalar)...
function [x] = simplex(c,A,b)
c=c(:);
b=b(:);
[n m] = size(A);
T=zeros(n+1,m+1);
T(1:n,1:m)=A;
T(1:n,m+1) = b;
T(n+1,1:m)=c';
while ( min(T(n+1,1:m))<0 )
[a q] = min( T(n+1,1:m) );
ind = [];
for i=1:n
if(T(i,q)>0)
ind=[ind;i];
end
end
if (isempty(ind))
break;
end
[raio p]=min(T(ind,m+1)./T(ind,q));
p=ind(p);
for i=1:n+1
for j=1:m+1
if (i~=p)
T(i,1:m+1)= T(i,1:m+1)-(T(i,q)/T(p,q))*T(p,1:m+1);
else
T(p,1:m+1)= T(p,1:m+1)/T(p,q);
end
end
T(i,:)
end
end
T
Nenhum comentário:
Postar um comentário