Pages

Pythonerie ? sujet

mercredi 29 janvier 2014




Bonsoir,
j'ai fait cette algorithme dans le but de trouver un arrondie de la racine carré.


Code:


a=2
e=10**(-15)


def f(x):
    return(x**2-a)

def Err(x):
    return(f(x)/a)

def dicho():
    bg,bd= a,1
    if a>1 :
        bd=a+1  # si on remplace ici a+1 par 1, on a une boucle infini mais seulement pour la valeur a= 9 ? 
        bg=1

    elif a==1:
        return (1)

    while abs(Err(bd))>e:
        if Err((bd+bg)/2)*f(bg)<0:
            bd=(bd+bg)/2
        else :
            bg=(bd+bg)/2
    return (bd)



Comme indiqué par le commentaire; en remplaçant a+1 par a et qu'on change la variable globale a=2 en a=9
on a alors une boucle infini, pourquoi ?

Merci beaucoup !




Aucun commentaire:

Enregistrer un commentaire