% Aufgabe 3
% Projizierten Gradienten

clear all;
fprintf('Programmieraufgabe 3: Projizierte Gradienten\r')
pin=input('Bitte erste Koordinate des Startvektors angeben: ');
epsilon = 10^-4;



H = [2 -1; -1 2];
g = [-4; -6];

f = @(x) x'*H*x + g'*x;
df = @(x) 2*H*x + g;
ddf = @(x) 2*H;


A = [1 1 ; 1 5 ; -4 3 ; 1 -10 ; -eye(2)];
b = [2 5 2 1 zeros(1, 2)]';

% C=0, c=b'=0 ...



x = [(6 + pin) / 10 ; 1/10];
[x,k] = projGrad(f, df, A, b, [], [], x, epsilon);

fprintf('\n########################################################\n');
fprintf('pin		= %s\n', mat2str(pin));
fprintf('k		= %s\n', mat2str(k));
fprintf('x*		= %s\n', mat2str(x));
fprintf('f(x*)		= %s\n', mat2str(f(x)));



