function [Compliance]=objective(X) global inci coord nel nnos Tmat fg FreeDofs ug ite vComp vVol Wlim ECC ECClim nMax % -------------------------------------------------------------------------% % Inicializacao e montagem das matrices do sistema % -------------------------------------------------------------------------% ite=ite+1; kg=zeros(2*nnos); for e = 1:nel noi=inci(e,5); noj=inci(e,6); xi=coord(noi,1); yi=coord(noi,2); xj=coord(noj,1); yj=coord(noj,2); l=sqrt((xj-xi)^2+ (yj-yi)^2); c=(xj-xi)/l; s=(yj-yi)/l; E=(X(e+nel)^3)*(Tmat(1,1)-Tmat(2,1))+Tmat(2,1); rho=(X(e+nel)^3)*(Tmat(1,4)-Tmat(2,4))+Tmat(2,4); A=X(inci(e,4) ,1); ke= (E*A/l)*[ c^2 c*s -c^2 -c*s; c*s s^2 -c*s -s^2; -c^2 -c*s c^2 c*s; -c*s -s^2 c*s s^2]; loc=[2*noi-1 2*noi 2*noj-1 2*noj]; kg(loc,loc)=kg(loc,loc)+ke; We(e)=A*l*rho; rhoECC=(X(e+nel)^3)*((Tmat(1,5)*Tmat(1,4))-(Tmat(2,5)*Tmat(2,4)))+(Tmat(2,4)*Tmat(2,5)); ECCe(e)=A*l*rhoECC; end %-------------------------------------------------------------------------% % Soluçao da equação do sistema-Problema de autovalor e autovetor %-------------------------------------------------------------------------% %% ******** Solver Linear ************ ug=zeros(2*nnos,1); ug(FreeDofs)=kg(FreeDofs,FreeDofs)\fg(FreeDofs); %******************************************************************** if ite==1 nMax=(fg'*ug); else end Compliance=(fg'*ug)/nMax; vComp(ite)=Compliance; vVol(ite)=sum(We); ECC(ite)=sum(ECCe);