a = 2; %en verdi til venstre for nullpunkt
b = 3; %en verdi til hoyre for nullpunkt.
N=40;  %Intervallet losningen ligger i har bredde (b-a)/2^N
 f  =@(x) 3.^x -5*x;
 %x.^3  - 3*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, b-a , '. r' ) %Plotter punktene c 
    pause(1/(n+1)) % venter i 1/(1+n) sekunder
    hold on
    
end
c= (b+a)/2 ;
hold off
disp('Forutsatt at funksjonen er definert og kontinuerlig i intervallet [a,b]')
C = ceil( n * log(2)/ log(10) )  +1   ; % finner et passende antall siffer svaret skal oppgis med
disp( ['har den minst et nullpunkt i intervallet  ['  num2str(a,C) ' ' num2str(b,C) '].' ]) 
disp([ 'Estimatet er '  num2str( c, C ) ] )
disp([ 'Differansen b-a er lik '  num2str( b-a ) ] )

end

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