function [z,res]=NEWTONPOL(c,d,z,tol,kmax)
% [z,res]=NEWTONPOL(c,d,z,tol,kmax)
%
% Newton-Verfahren zur Bestimmung einer reellen Nullstelle der rationalen
% Funktion p(x)/q(x), p(x)=c(1)x^{n-1}+...+c(n-1)x+c(n), 
% q(x)=d(1)x^{m-1}+...+d(m-1)x+d(m),
%
% Eingabeparameter
% c        Vektor der Länge n=Polynomgrad+1. c(i) ist der Koeffizient vor 
%          x^{n-i} im Polynom p(x)
% d        Vektor der Länge m=Polynomgrad+1. d(i) ist der Koeffizient vor 
%          x^{n-i} im Polynom q(x)
% z        Startwert z_0 für die Nullstelle
% tol      Abbruchtoleranz, Iteration solange ||phi(z)|| > tol ||phi(z_0)|
% kmax     Maximale Anzahl Iterationsschritte
%
% Ausgabeparameter
% z        Näherungslösung
% res      ||p(z_i)/q(z_i)||, i=0,1,2.... Historie der Fehlerentwicklung für
%          die einzelnen Näherungslösungen


n=length(c)-1;
if (nargin==3)
   kmax=max(n,1000);
   tol=min(n*eps*max([abs(c(n)/c(1)) 1+abs(c(2:n-1)/c(1))]), 1e-2)
elseif (nargin==4)
   kmax=max(n,1000);
end




