a = -3; %en verdi til venstre for nullpunkt
b = 5; %en verdi til hoyre for nullpunkt.
N=20;  %Intervallet losningen ligger i har bredde (b-a)/2^N
 f  =@(x) x.^3 -5*x +3 ;
 %x/abs(x);
 %exp(x) -3*x 
 %(x.^3 -2*x +1);
if f(a) * f(b) >=0 
disp(['Fortegnene til funksjonen i punktene ' num2str(a) ' og '  num2str(b) ' er like'])
else
    
    %Plotter funksjonen fra a til b:
v =1:N ;  
 W =a:1/100:b ;
 plot(W, f(W))
 hold on
 
for n=1:N
    c = ( a+ b)/2 ;
    v(n) = c ;
    if f(a)*f(c) == 0 
      disp( [ num2str(c) ' er en rot' ]   )
    end
    if f(a)*f(c) <= 0 
        b=c;
    else a=c ;
    end
    plot(c, 0 , '. r' ) %Plotter punktene c 
    pause(1/(n+1)) % venter i 1/(1+n) sekunder
    hold on
    
end
disp('Forutsatt at funksjonen er definert og kontinuerlig i intervalle [a,b]')
C = ceil( n * log(2)/ log(10) )  ; % finner et passende antall siffer svaret skal oppgis med
disp( ['har den minst et nullpunkt i intervallet  ['  num2str(a,C) ' ' num2str(b,C) '].' ]) 
disp([ 'Differansen b-a er lik '  num2str( b-a ) ] )

end

%plot(v, zeros(1,N) 'red ')
