Programme dichotomie qui ne marche pas
Utilisateur anonyme -
je n'arrive pas à faire marcher mon programme de dichotomie. Rien ne se passe.
from math import *
a=0
b=1
def f(x):
return x**3+x-1
def dicho(a,b) :
n=O
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
7 réponses
Un code Python utilisant la méthode de dichotomie pour trouver une racine de f(x)=x^3+x-1 sur l’intervalle [0,1] ne produit aucun affichage lors de l’exécution et nécessite des corrections. Plusieurs échanges pointent des erreurs dans le code, comme 'n=O' au lieu de 0 et l’absence d’instruction d’impression, ce qui explique l’absence d’affichage malgré l’exécution. Des explications évoquent aussi la logique de dichotomie: si f(a)*f(c) < 0 alors b=c sinon a=c, et la boucle se poursuit jusqu’à ce que b-a < 10**(-3). En cas de correction, il serait utile d’ajouter une instruction d’impression ou d’appeler explicitement la fonction pour afficher a, b et n à la fin afin de vérifier le progrès.
-
-
Bonjour
En Python, l’indentation est primordiale, or par défaut le site ne la conserve pas.
Pour la conserver il faut utiliser les balises de code. Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
On pourra commencer à essayer de t’aider quand tu auras reposté correctement ton code.
-
from math import * a=0 b=1 def f(x): return x**3+x-1 def dicho(a,b) : n=O 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 -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
le programme au dessus est exactement (j'ai vérifié) le programme du manuel
Il y manque pourtant un petit quelque chose
Oui je connais pas grand chose en python
Ok alors essayons de décortiquer.
A ton avis, à quoi sertdef f(x): return x**3+x-1
? -