Partage
  • Partager sur Facebook
  • Partager sur Twitter

[HELP] ZeroDivisionError: float division by zero

Sujet résolu
    29 décembre 2021 à 19:58:55

    Bonjour tout le monde

    Je dois modéliser les interpolations de Lagrange avec Python mais j'ai cette erreur(Erreur ZeroDivisionError: float division by zero) qui revient à chaque fois pour cette opération: produit=produit*((x-d[k])/(d[j]-d[k])). Voici le contenu des tableaux 

    t=[0,0.4412,0.6112,0.7626,0.9086,1.0121,1.1016,1.1940,1.2807,1.3560,1.4114]
    d=[0]*11
    pas1=0
    for i in range (11):
        
        d[i]=pas1
        pas1=pas1+1
    produit=1
    somme=0
    compt=0
    x=0
    
    while x<=10:
        for j in range (0,10,1):
            for k in range(0,10,1):
                if x==d[k]: 
                    if k==j:
                        produit=1
                        x=x+0.1
                    else :
                        produit=0
                        x=x+0.1
                else :
                    produit=produit*((x-d[k])/(d[j]-d[k]))
                    x=x+0.1
                    
            somme=somme+t[j]*produit
        dtab[compt]=somme
        compt=compt+1


    Quelqu'un peut m'aider? Merci d'avance

    -
    Edité par WalfroySaintGuilhem 29 décembre 2021 à 20:08:36

    • Partager sur Facebook
    • Partager sur Twitter
      29 décembre 2021 à 20:32:46

      Si k == j, d[j]-d[k] vaudra 0.

      Moins vite: rien ne vous interdit d'ajouter print(k, j, d[j] -d[k]) juste avant la ligne qui plante... car si Python dit ZeroDivisionError, s'intéresser au dénominateur...

      • Partager sur Facebook
      • Partager sur Twitter
        3 janvier 2022 à 15:58:04

        il y a aussi le cas particulier k==j==0, puisque d[0]=0 (valeur initiale de pas1 à 0)
        • Partager sur Facebook
        • Partager sur Twitter

        [HELP] ZeroDivisionError: float division by zero

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown