function [Y,t] = euleroimp(lam,fun,a,b,y0,N)

%  [Y,t] = euleroimp(lam,fun,a,b,y0,N)
%
%  Applica il metodo di EULERO IMPLICITO per 
%  approssimare la soluzione del problema ai 
%  valori iniziali
%
%  y'(t) = lam*y(t) + fun(t),    
%  y(a) = y0,    a<=t<=b
%
%  con fun(t,lam) = -lam*g(t) - g'(t).
%
%  N rappresenta il numero di punti della
%  discretizzazione dell'intervallo di integrazione.

Y   = y0;

h   = (b-a)/N;

t  = a + [0:N]*h;

for i =1:N
    
    fi = feval(fun,t(i+1),lam);
    
    eta = y0 + h*fi;
    
    y0 = eta/(1-lam*h);
    
    Y(i+1)=y0;
    
end    