// Méthode de la dichotomie 

function zero = dichoto(f,a,b,nbetap)
    zero = [a]
    x0 = a
    x1 = b    
    for i=1:nbetap
        x2 = (x0+x1)/2
        if f(x0)*f(x2)<=0
           x1 = x2              
        else   
           x0 = x2 
        end
        zero = [zero, x2] 
    end
endfunction


// Méthode de la secante 

function zero = secante(f,x0,x1,nbetap)
    zero = [x0,x1]
    for i=3:nbetap+1
        if (abs(x0-x1)>=1E-7)
            x2 = x1 - (x1-x0)*f(x1)/(f(x1)-f(x0))           
        end  
        zero = [zero, x2] 
        x0 = x1
        x1 = x2
    end
endfunction

// Méthode de Newton

function zero = newton(f,ff,x0,nbetap)
    zero = [x0]
    x=x0
    for i=1:nbetap
        x = x - f(x)/ff(x)
        zero = [zero, x] 
    end
endfunction

// Exercice 2 : maintenant les fonctions prennent le paramètre eps (précision) et renvoient le nombre d'étapes pour obtenir cette précision |f(x)| < eps

// Méthode de la dichotomie 

function nbet = dichoto2(f,a,b,eps)
    x0 = a
    x1 = b
    nbet=2
    while abs(f(x1)) > eps
        x2 = (x0+x1)/2
        if f(x0)*f(x2)<=0
           x1 = x2              
        else   
           x0 = x2 
        end
        nbet=nbet+1
    end
endfunction


// Méthode de la secante 

function nbet = secante2(f,x0,x1,eps)
    nbet=2
    while abs(f(x1)) > eps
        if (abs(x0-x1)>=1E-7)
            x2 = x1 - (x1-x0)*f(x1)/(f(x1)-f(x0))           
        end  
        x0 = x1
        x1 = x2
        nbet=nbet+1
    end
endfunction

// Méthode de Newton

function nbet = newton2(f,ff,x0,eps)
    x=x0
    nbet=1
    while abs(f(x)) > eps
        x = x - f(x)/ff(x)
        nbet=nbet+1
    end
endfunction

