function x = MetodoUnPunto(h,x0,N)
    // Metodo ad un punto definito dalla funzione h, continua.
    // La costruzione della successione si arresta dopo
    // N iterazioni.
    //
    // La colonna x contiene la porzione costruita della successione
    // generata dal metodo a partire da x0.
    x = x0;
    for k = 1:N,
        x($+1) = h( x($) );
    end
endfunction
//
function y = h2(x)
    y = exp(-x)
endfunction
//
function y = h3(x)
    y = ( x + exp(-x) )/2
endfunction
//
function y = h4(x)
    y = x - ( x + log(x) ) .^2
endfunction
// ------------------------------------------------------
clf();
x = linspace(0.55,0.66,200)';
plot2d(x,[h4(x),x],style = [5,2]);
xgrid();
xlabel('x');
legend('y = h4(x)','y = x','in_lower_right');
halt();
//
x0 = 0.66;
N = 25;
s3 = MetodoUnPunto(h3,x0,N);
s2 = MetodoUnPunto(h2,x0,N);
s4 = MetodoUnPunto(h4,x0,N);
plot2d(s4($),h4( s4($) ), style = -4);
plot2d(s3($),h3( s3($) ), style = -5);
legend('y = h4(x)','y = x','p.u. h4','p.u. h3','in_lower_right');
//
halt();
a = s3($);
clf();
plot2d([0:N]',[abs(s2 - a), abs(s3 - a), abs(s4 - a)], style = [5,2,1]);
xgrid();
xlabel('k');
legend('|s2(k) - a|','|s3(k) - a|','|s4(k) - a|');
halt();
//
clf();
plot2d('nl',[0:N]',[abs(s2 - a), abs(s3 - a), abs(s4 - a)], style = [5,2,1]);
xgrid();
xlabel('k');
legend('|s2(k) - a|','|s3(k) - a|','|s4(k) - a|','in_lower_left');
