# -*- coding: utf-8 -*-
# Recherche des zeros d'une fonction par la méthode de Newton-Raphson

def f(x): #fonction simple: décroissante et convexe sur la zone de recherche
    return x**3-3*x+1

def derivef(x): #dérivée de la fonction f à  saisir manuellement
    return 3*x**2-3

def newton(depart,etape):
    a=depart
    for i in range(etape):
        if derivef(a)==0:
            return "impossible de poursuivre"
        x= a - f(a)/derivef(a) #Calculer du point d'intersection entre:
                            # l'axe des abscisse
                            # la tangente Ã  la courbre en a: y=f'(a)(x-a)+f(a)
        a=x
    return x


#Recherche des deux zeros de la courbe,
#suivant le point de départ la recherche mène à l'un ou l'autre.

for i in range(10):
    print(newton(i-5,10))
