Feuille d'exercices n° 9 bis Dichotomie
Cours
Deux programmes qui s'appellent.
Le premier programme définit une fonction f.
Le second programme calcule les valeurs de f
pour des réels A et B
---------------------------------------------------------------------------------------
EXERCICE 1
Soit la fonction polynômr f : x → x2 + 2 x - 1 qui est strictement
croissante et continue sur l'intervalle [ 0 , + ∞ [.
f( - 1 ) < 0 et f( x ) tend vers + ∞ en + ∞.
Ainsi, on sait que f( x )= 0 admet une unique solution α sur [ 0 , + ∞ [.
Donner un script qui quand on entre les bornes A et B d'un intervalle fermé [ A ; B ]
et la précision E indique, si possible, un intervalle d'amplitude E qui contient la solution α.
--------------------------------------------------------------------------------------------
REPONSE:
On peut considérer:
def f(x):
return x**2+2*x-1
def dicho():
A=input(" Donner la première borne A de l'intervalle [A ; B] : A = ")
B=input(" Donner la seconde borne B de l'intervalle [A ; B]: B = ")
E=input(" Quelle précision voulez-vous? E = ")
if f(A)*f(B)>=0:
print " la fonction f ne s'annule pas sur l'intervalle [",A,";",B,"]"
else:
while B-A>=E:
C=(A+B)/2.
if f(A)*f(C)<=0:
B=C
else:
A=C
print " La fonction f s'annule dans l'intervalle [",A,";",B,"]"
On obtient par exemple
>>> dicho()
Donner la première borne A de l'intervalle [A ; B] : A = -1
Donner la seconde borne B de l'intervalle [A ; B]: B = 2
quelle précision voulez-vous? E = 0.1
La fonction f s'annule dans l'intervalle [ 0.40625 ; 0.5 ]
>>>
-----------------------------------------------------------------