You are on page 1of 2

function [fmax,xopt]=rijesi_simplex(A, B, c) m=size(B,1)+1; n=size(A,2)+m; d=eye(m-1); %bazne promjenljive for i=1:m-1 e(1,i)=i+m-1 end %prva kolona u tabeli bez

zadnjeg reda for i=1:m-1 tabela(i,1)=B(i,1); %kolone do dodatnih promjenljivih bez zadnjeg reda for j=2:size(A,2)+1 tabela(i,j)=A(i,j-1); end %kolone sa dodatnim promjenljivim bez zadnjeg reda for j=size(A,2)+2:n tabela(i,j)=d(i,j-size(A,2)-1); end end %zadnji red tabela(m,1)=0; for i=2:1+size(c,2) tabela(m,i)=-c(i-1); end for(i=m+2:n) tabela(m,i)=0; end for i=1:m-1 e(1,i)=i+m-1; end tabela %ispitivanje da li ima negativnih o=1; for i=2:n if tabela(m,i)<0 o=0; end end while o==0 minkol=2; %vodeca kolona for i=3:n if tabela(m,i)<tabela(m,minkol) minkol=i; end end %vodeci red minred=1; for j=1:m-1 t(1,j)=tabela(j,1)/tabela(j,minkol); end for j=1:m-1 if t(1,j)<t(1,minred) minred=j; end end %vodeci element vodeci=tabela(minred,minkol);

e(1,minred)=minkol-1 %pravilo pravougaonika pocetna=tabela; for i=1:m for j=1:n if i==minred tabela(i,j)=pocetna(i,j)/vodeci; else tabela(i,j)=pocetna(i,j)-((pocetna(i,minkol)*pocetna(minred ,j))/vodeci); end end end %provjera da li ima negativnih koeficijenata o=1; for i=2:n if tabela(m,i)<0 o=0; end end end for i=1:m-1 xopt(1,i)=0; end for i=1:size(e,2) xopt(1,e(1,i))=tabela(i,1); end fmax=tabela(m,1); end

You might also like