%
% file newton_raphson.m
%
% Loesung von f(x) = 0
%
% func : f(x)
% der  : f'(x)
% x    : Startwert
% x0   : Loesung
%
function [x0] = newton_raphson(func,der,x)

tau = 10*eps;                       % fuer Abbruchbedingung

for iter=1:100
      x0 = x;
      fprintf('%d %20.15f\n',iter,x0)

      f = feval(func,x);
      if f == 0 return; end         % ok

      d = feval(der,x);
      if d == 0 error('Ableitung verschwindet!'); return; end

      x = x - f/d;

      if abs(x-x0) <= tau*abs(x0) return; end   % ok
end

error('keine Konvergenz!')
