%
% 26.10.09
%
% Newtonverfahren 2D
%

clear all;

% Init
x=[2 -1]';
TOL=1.0e-12;
iter=20;

% Newton Iteration
for iz=1:iter
    sprintf('Iteration %i',iz )
    % Berechnung Funktionalvektor
    F=[x(1)*x(1)+x(1)*x(2)-3; 
       x(1)^2-4*x(2)+3]
    if iz==1
        res0=norm(F,'fro');
    end
    % Berechnung Funktionalmatrix
    Fs=[2*x(1)+x(2) x(1); 
        2*x(1) -4];
    % Inverse der Funktionalmatrix
    invFs=inv(Fs);
    % Aktualisierung Lösung
    x=x-invFs*F
    % Residuum
    res=norm(F,'fro')/res0

    % Abbruchbedingung mit Toleranz
    if res<TOL
        break
    end
end

