function r = newton_einfach_sys(x,fnc,dfdx,small,simplified)

% newton_einfach_sys berechnet die Nullstelle einer vektorwertigen Funktion 
% fnc mit Hilfe des vereinfachten Newton-Verfahrens.
% Die Anfangsiterierte ist der Spaltenvektor 
% Die Jacobi-Matrix der Function fnc muss als m-File bereitgestellt
% werden und der Name in dfdx "ubergeben werden. 
% Die Iteration wird beendet wenn die Differenz zweier aufeinanderfolgenden
% Iterierten klein ist: norm(x^(k+1)-x^k) < small
% Der Aufruf ist r = newton_einfach_sys(x,fnc,dfdx,small)
% Der R"uckgabewert ist die Anzahl der Iterationen

%=================================================================
 if isstr(fnc)~=1 | isstr(dfdx)~=1;
   error('Sowohl fnc als auch  dfdx m"ussen strings sein');
 end
%=================================================================

% Initialisierungen
dx = 2*small;        
i = 0;

% berechne Funktionswerte f"ur das gegebene Beispiel
f = feval(fnc,x)';

% berechne Jacobi-Matrix f"ur das gegebene Beispiel
jac = feval(dfdx,x);

% Die Iteration.
while norm(dx) > small;
  i = i + 1;
  if i>100; 
     error('zu viele Iterationen (iter = %d)',i-1);
  end
   
  % berechne die Newton-Korrektur
  dx = -inv(jac)*f;  
  % berechne die neue Iterierte	
  x = x + dx; 
 
  % Ausgabe der Iterierten mit Funktionswert
  % dazu wird der Funktionswert berechnet, der dann gleich 
  % in der n"achsten Iteration genutzt werden kann 
  f = feval(fnc,x)';
 	  
  s = sprintf('Iteration %d Iterierte (%g,%g) Funktionswert (%g,%g)',...
  	             i, x(1), x(2), f(1), f(2));
  disp(s);
end

% setze R"uckgabewert
r = i;
