Page 1 sur 1
python et dichotomie
Posté : ven. 5 févr. 2021 20:51
par Céline
Bonjour,
j'essaie d'exécuter un programme Python, mais à chaque fois il n y a rien qui s'affiche (pas de message d'erreur, pas de résultats)..
pourriez-vous m'aider à trouver la raison? merci
voici mon programme:
def f(x):
return x**3+x-1
def dicho(a=0.5,b=0.75):
n=0
while b-a>=10**(-3):
c=(a+b)/2
if f(a)*f(c)<0:
b=c
else:
a=c
n=n+1
return a,b,n
Re: python et dichotomie
Posté : sam. 6 févr. 2021 06:49
par sos-math(21)
Bonjour,
ton programme est correct, et si on respecte les indentations, il doit avoir ce rendu dans ton éditeur :
Code : Tout sélectionner
def f(x):
return x**3 + x - 1
def dicho(a=0.5,b=0.75):
n=0
while b-a >= 10**(-3):
c = (a+b) / 2
if f(a)*f(c) < 0:
b = c
else:
a = c
n = n + 1
return a,b,n
Quand on l'exécute, il ne se passe rien et c'est normal puisque tu as défini une fonction qui est une sorte de boite qui enveloppe des instructions. Celles-ci ne s'exécuteront que si tu appelles ta fonction.
Dans la console, si tu appelles ta fonction avec les arguments associés à \(f\) :
Tu obtiendras bien une réponse :
Ce qui te donne bien un encadrement de la racine de \(f\) à \(10^{-3}\) près, ce qui a été obtenu au bout de 8 tours de boucle.
Est-ce plus clair ?
Bonne continuation
Re: python et dichotomie
Posté : sam. 6 févr. 2021 16:58
par Céline
ah d'accord! mais, comment faire pour appeler cette fonction ? faire print ?
merci
Re: python et dichotomie
Posté : sam. 6 févr. 2021 17:52
par sos-math(21)
Bonjour,
je crois y avoir répondu : tu te mets dans la console (le shell) et tu tapes :
Et l'interpréteur doit te renvoyer la réponse :
Dans mon environnement (spyder), cela donne :
- Capture.PNG (3.6 Kio) Vu 1538 fois
Quel environnement utilises-tu ?