% programação linear - método Simplex % Prof. Reyolando Brasil - 22/04/2022 % %exemplo treliça elastoplástica % % dimensões do problema % clear clc ninc=10; % número de incognitas neq=8; % número de equações (restrições) c30=sqrt(3)/2; Ne=2500;%plastic axial force % % entrada das matrizes do primeiro tableau % a=[-1 0.5 1 0.5 0 0 0 0 0 0;1 -c30 0 c30 0 0 0 0 0 0;0 1 0 0 1 0 0 0 0 0;0 0 1 0 0 1 0 0 0 0;... 0 0 0 1 0 0 1 0 0 0;0 -1 0 0 0 0 0 1 0 0;0 0 -1 0 0 0 0 0 1 0;0 0 0 -1 0 0 0 0 0 1]; %constraint equations b=[0; 0; Ne; Ne; Ne; Ne; Ne; Ne]; % resources vector c=[-1 0 0 0 0 0 0 0 0 0]; %objective function f=0; fant=100000; % while(1) % % coluna da incógnita que entra % centra=100000; for j=1:ninc if c(j) < centra centra=c(j); jentra=j; end end if centra>=0 disp('Solution is optimal') break end % % linha da incognita que sai % razaoa=100000; index=0; for i=1:neq if a(i,jentra) > 0 index=index+1; razao=b(i)/a(i,jentra); if razao < razaoa razaoa=razao; isai=i; end end if index==0 disp('Solution is unbounded') end end % % faz o pivo unitário % pivo=a(isai,jentra); for j=1:ninc a(isai,j)=a(isai,j)/pivo; end b(isai)=b(isai)/pivo; % % modifica as demais linhas acima e abaixo da linha que sai para zerar a coluna % acima e abaixo do pivo % for i=1:neq if i ~= isai const=a(i,jentra); for j=1:ninc a(i,j)=a(i,j)-const*a(isai,j); end b(i)=b(i)-const*b(isai); end end const=c(jentra); for j=1:ninc c(j)=c(j)-const*a(isai,j); end f=f-const*b(isai); fa=abs(f); if fa