%
% file sekante1.m
%
% Loesung von f(x) = 0
%     mit Sekantenverfahren
%
function [xneu] = sekante1(func,x1,x2)

tau = 10*eps;           % fuer Abbruchbedingung Glg.(5.15)

f1 = feval(func,x1); if f1 == 0  x0 = x1; return; end
f2 = feval(func,x2); if f2 == 0  x0 = x2; return; end
xneu = x2;

for iter = 1:20

      if abs(f2-f1) <= tau*abs(f2)
            return;                             % ok
      end

      xneu = x2 - f2 * (x2 - x1) / (f2 - f1);     % neuer Punkt
      fneu = feval(func,xneu);              %

      x1 = x2;    f1 = f2;          % aufruecken
      x2 = xneu;  f2 = fneu;          %
      fprintf('%d %20.15f \n', iter,xneu)
end

error('keine Konvergenz!')
