%function [F,G] = fun(z) %function for computing theta and search direction % z = (nu,mu,u1,u2,u3,u4,psi,x) function [F,G] = fun(z) z = z(:); nu = z(1:4); mu = z(5:7); U = [z(8:11) z(12:15) z(16:19) z(20:23)]; x = z(24:25); psimax = z(26); sum = 0; xi0 = 0; for i = 1:4, xi0 = xi0 + nu(i)*(psimax - g(x,U(:,i))); sum = sum + nu(i)*gradgx(x,U(:,i)); end %for xi0 = xi0 - mu(1)*(x(1)*x(2) - 300)... - mu(2)*(x(1) - 2*x(2)) ... -mu(3)*(0.5*x(2) - x(1)); sum = sum + mu(1)*[x(2);x(1)] + mu(2)*[1;-2] + mu(3)*[-1;0.5]; F = xi0 + 0.5*norm(sum)^2; % for i=1:4, G(i) = norm(U(:,i))^2 - 1; end %for l = ones(7,1); lambda = [nu;mu]; G(5) = l'*lambda - 1; G(6) = 1 - l'*lambda;