%gradient wrt u of state limit function for problem # 2 %y = gradgu(x,u) function y = gradgu(x,u) v(1) = 400*u(2) + 2000; v(2) = 250*u(3) + 1000; v(3) = 100*u(1) + 500; v(4) = exp(0.7386 + 0.0998*u(4)); Dv_Du = [0 400 0 0 0 0 250 0 100 0 0 0 0 0 0 0.0998*exp(0.7386 + 0.0998*u(4))]; gradGv(1) = -4/(x(1)*x(2)^2*v(4)); gradGv(2) = -4/(x(1)^2*x(2)*v(4)); gradGv(3) = -2*v(3)/(x(1)*x(2)*v(4))^2; %gradGv(4) = 4*v(1)/(x(1)*x(2)^2*v(4)^2)+4*v(2)/(x(1)^2*x(2)*v(4)^2)... %+ 2*v(3)^2/(x(1)^2*x(2)^2*v(4)^3); gradGv(4) = (2/(x(1)*x(2)*v(4)^2))*(2*v(1)/x(2) ... + 2*v(2)/x(1)+v(3)^2/(x(1)*x(2)*v(4))); gradGv = gradGv(:); gradgu = Dv_Du'*gradGv; y = -gradgu;