1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
def f(x):
return (x**2 + x - 4)
def dicho (fonction, precision, a=3, b=100):
assert fonction(a) * fonction(b) < 0 #si la condition est respectée on continue, sinon on arrête
while (b-a) > precision :
milieu = (b+a)/2
if fonction(milieu) * fonction(a) > 0 : #la courbe coupe y=0 entre milieu et b
a,b = milieu,b #donc on change la borne a en milieu
else :
a,b = a, milieu
return
#############################
#Programme
#############################
zero = dicho (f, 0.00001, 0, 10)
print ("la courbe s'annule pour x = ", zero) |