Programme dichotomie qui ne marche pas

Plantagenest -  
 Utilisateur anonyme -
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

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.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Plantagenest
     
    les espaces sont présent dans mon programme
    0
  2. Plantagenest
     
    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    
    0
  3. Plantagenest
     
    merci
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      quel est le soucis avec ce programme?
      0
      1. Plantagenest > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        quand je l'exécute le programme n'affiche rien
        0
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Plantagenest
         
        que souhaites-tu afficher?
        0
      3. Plantagenest > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        les valeurs de a,b,n
        0
      4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Plantagenest
         
        quelle instruction utilises-tu pour afficher ces valeurs?
        0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Plantagenest
     
    avec (return a,b,n) à la fin du programme
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      est-ce ton premier exercice en python?
      0
      1. Plantagenest > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Oui 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.
        0
      2. Plantagenest > Plantagenest
         
        c'est un programme de dichotomie
        0
      3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Plantagenest
         
        si tu veux progresser, il est préférable de commencer par des exercices plus simples.
        0
      4. Plantagenest > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        d'accord merci
        0
  6. Utilisateur anonyme
     
    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 sert
    def f(x):
        return x**3+x-1

    ?
    0
    1. georges97 Messages postés 14565 Date d'inscription   Statut Contributeur Dernière intervention   2 919
       
      Bonsoir à tous

      Une correction préalable à faire en ligne 7, n = 0 et non n = o (pour Plantagenest, zéro et non la lettre o)
      0
    2. Plantagenest
       
      definir la fonction f
      0
    3. Plantagenest > georges97 Messages postés 14565 Date d'inscription   Statut Contributeur Dernière intervention  
       
      c'est bien un 0 dans mon programme, ca doit être une erreur quand j'ai collé sur le site
      0
    4. Utilisateur anonyme > 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
      0
    5. Plantagenest > Utilisateur anonyme
       
      à la ligne 10 pour calculer f(a)*f(c)
      0