function x = olver(func,x0,Nit,r)
% Olvers metode.
% x = olver(f,x0,Nit) loeser f(x)=0 med Olvers metode. 
% x = olver(f,x0,Nit,r) skriver ut feilen |r-x| for 
%     hver iterasjon. 

if nargin < 4
    iflag = 0;   %Eksakt loesning r er ikke oppgitt
else
    iflag = 1;
end 
    
x = x0;
if iflag
    disp(sprintf('n = %2d, x = %11.8f, |r-x| = %8.2e',0,x,abs(r-x)));
end
% iterasjonene starter. 
for n=1:Nit
    [f,df,ddf] = feval(func,x);
    x = x-f/df-0.5*(ddf/df)*(f/df)^2;
    if iflag
        disp(sprintf('n = %2d, x = %17.14f, |r-x| = %8.2e',n,x,abs(r-x)));
    else
        disp(sprintf('n = %2d, x = %17.14f',n,x));        
    end
end




