function [X, k] = Szelo_modszer_graf(f, x_0, x_1, tol, kmax, a, b)
  %{
  -- [X, k] = Szelo_modszer_graf(f, x_0, x_1, tol, kmax, a, b)

  Bemenõ paraméterek
          f       : az f(x) = 0 egyenlet bal oldalán álló függvény
          x_0     : az x* pontos megoldás 0. közelítése
          x_1     : az x* pontos megoldás 1. közelítése 
          tol     : pontosság, abs(f(xstar)) < tol legyen
          kmax    : az iterációs lépések maximális száma
          a       : a grafikonnál használt [a,b] intervallum bal végpontja
          b       : a grafikonnál használt [a,b] intervallum jobb végpontja
      Kimenõ paraméter
         X:  a kiszámolt közelítések - az összes!
         k: a végrehajtott iterációs lépések száma
      Az alkalmazott iterációs formula:
          x_(k+1) = x_k - f(x_k)*(x_k - x_(k-1))/(f(x_k) -f(x_(k-1))) 
      Az X vektorban visszadja az összes számított közelítést 
      és ki is rajzolja az f(x) grafikonjával együtt az összes közelítésnek megfelelõ 
      összes szelõ egyenest.
      
     A grafikus ablak Zoom Area menüpontjával ismételten 
     kinagyíthatjuk a gyök környezetét.
     
     TODO:
     1) bejelölni a szelõk metszéspontjait az X tengellyel
     2) cimkézni, pl. melyik pont melyik közelítésnek felel meg
     3) esetleg: minden szelõ más színnel
     4) ... stb.
    %}
    
    ido = 5;    % 5 sec késleltetés a szelõk felrajzolása elõtt
    m = 200;    % mintapontok száma a sima ábrához
    x = [0 0];
    X(1) = x_0;
    X(2) = x_1;

    xx = linspace(a,b,m);
    plot(xx, f(xx), 'linewidth', 2, 'r-', xx, 0*xx,'k-') 
    hold on
    pause(ido);
    Szelo_plot([X(1),f(X(1))], [X(2), f(X(2))], a, b, m);

    k = 1;
    if abs(f(X(1)))<tol
        return
    end
    k = 2;
    if abs(f(X(2)))<tol
        return
    end

    while abs(f(X(k))) >=tol && k <= kmax
        if f(X(k)) - f(X(k-1)) == 0
            warning("Nem található megoldás, a szelõ párhuzamos az $x$ tengellyel!")
            break;
        end
        X(k+1) = X(k) - f(X(k))*(X(k) - X(k-1))/(f(X(k)) -f(X(k-1)));
        pause(ido);
        % a kiszámolt új közelítésnek megfelelõ szelõ felrajzolása       
        Szelo_plot([X(k), f(X(k))], [X(k+1), f(X(k+1))], a, b);
        k = k+1;
        k, uj_xkoz = X(k) % hogy a konzolon is lássuk        
    end

    if k == kmax + 1 then
        k = k-1;
        warning('Az iteráció valószínûleg kmax lépés után sem konvergált'); 
    end

endfunction


