function [f,g] = obj3a(x); %Anzahl der Punkte im Federsystem N=length(x)/2; %Gewichte als Parameter - globale Variable global w; %Federkonstante als Parameter - globale Variable global K; %Abstand zwischen 2 Federn Li=1./(N+1); %Auslenkung dLi = sqrt(([0;x(1:N)]-[x(1:N);1]).^2+([0;x(N+1:2*N)]-[x(N+1:2*N);0]).^2)-Li; %Zielfunktional, Formel (1.13) f = 0.5*sum(K.*(dLi.^2)) + sum(w.*x(N+1:2*N)); %Gradient g=zeros(size(x)); g=g+[zeros(N,1);w]; if (N > 1) g(1)=g(1)+(K(1)*dLi(1))/(Li+dLi(1))*x(1)+(K(2)*dLi(2))/(Li+dLi(2))*(x(1)-x(2)); g(N+1)=g(N+1)+(K(1)*dLi(1))/(Li+dLi(1))*x(N+1)+(K(2)*dLi(2))/(Li+dLi(2))*(x(N+1)-x(N+2)); g(N)=g(N)+(K(N)*dLi(N))/(Li+dLi(N))*(x(N)-x(N-1))+(K(N+1)*dLi(N+1))/(Li+dLi(N+1))*(x(N)-1.); g(2*N)=g(2*N)+(K(N)*dLi(N))/(Li+dLi(N))*(x(2*N)-x(2*N-1))+(K(N+1)*dLi(N+1))/(Li+dLi(N+1))*(x(2*N)); for j=2:N-1 g(j)=g(j)+(K(j)*dLi(j))/(Li+dLi(j))*(x(j)-x(j-1))+(K(j+1)*dLi(j+1))/(Li+dLi(j+1))*(x(j)-x(j+1)); g(N+j)=g(N+j)+(K(j)*dLi(j))/(Li+dLi(j))*(x(N+j)-x(N+j-1))+(K(j+1)*dLi(j+1))/(Li+dLi(j+1))*(x(N+j)-x(N+j+1)); end; else g(1) = g(1)+(K(1)*dLi(1))/(Li+dLi(1))*x(1)+(K(2)*dLi(2))/(Li+dLi(2))*(x(1)-1.); g(2) = g(2)+(K(1)*dLi(1))/(Li+dLi(1))*x(2)+(K(2)*dLi(2))/(Li+dLi(2))*(x(2)); end;