Programme dichotomie qui ne marche pas
Bonjour,
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
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
Résumé de la discussion
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.
-
les espaces sont présent dans mon programme
-
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 -
merci
-
-
@yg_bequand je l'exécute le programme n'affiche rien
-
Contributeur@Plantagenestque souhaites-tu afficher?
-
@yg_beles valeurs de a,b,n
-
Contributeur@Plantagenestquelle instruction utilises-tu pour afficher ces valeurs?
-
-
avec (return a,b,n) à la fin du programme
-
-
@yg_beOui je connais pas grand chose en python, le programme au dessus est exactement (j'ai vérifié) le programme du manuel, mais il n'affiche rien quand je l'exécute. Puisque je n'arrive pas à trouver l'erreur je fais appel à votre gentillesse.
-
@Plantagenestc'est un programme de dichotomie
-
Contributeur@Plantagenestsi tu veux progresser, il est préférable de commencer par des exercices plus simples.
-
@yg_bed'accord merci
-
-
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
?-
-
-
@georges97c'est bien un 0 dans mon programme, ca doit être une erreur quand j'ai collé sur le site
-
@Plantagenest
definir la fonction f
c'est un peu succinct comme réponse mais je vais parier que tu as compris.
A quel endroit(s) du programme cette fonction est elle utilisée.
Salut George, bien vu -
@Utilisateur anonymeà la ligne 10 pour calculer f(a)*f(c)
-
-
de la ligne 10 à 14