IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

produit de polynome


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 36
    Par défaut produit de polynome
    Bonjour, j'aimerai faire une fonction qui calcule le rpoduit de polynome sachant qu'un polynome est encodé dans un tableau de taille n+1 qui contient en case d'indice i le coeff du monome de degré i.

    Voila ce que j'ai deja fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    def polyProd(P, Q) :
      R=[]
      for i in range(0,len(P)-1):
        for j in range(0,len(Q)-1):
          R=[i+j]*P[i]*Q[j]
     
      return R
    Ce que j'aimerais savoir c'est comment faire pour faire une addition avec ce qu'il ya deja dans le tableau R car en multipliant il peut y avoir deux opération de degré deux et ici ce que je fait ca remplace par le produit qu'il fait ca ne prend pas en compte si il ya deja quelque chose. Donc si vous saviez comment faire.

    Aussi j'ai fait un premier test avec P=0 + 1*X^1 + 1*X^2
    Q= 0 + 2*X^1
    calcule : 1 + 1*X^1
    attendu : 0 + 0*X^1 + 2*X^2 + 2*X^3

    Ensuite ca me fait cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    File "poly2.py", line 76, in <module>
        test_polyProd(polyProd)
      File "poly2.py", line 67, in test_polyProd
        pRes = prettyPrint(res)
      File "*/poly1.py", line 97, in prettyPrint
        s=str(P[0])
    IndexError: list index out of range

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Citation Envoyé par delisiouz Voir le message
    c'est comment faire pour faire une addition avec ce qu'il ya deja dans le tableau R car en multipliant il peut y avoir deux opération de degré deux et ici ce que je fait ca remplace par le produit qu'il fait ca ne prend pas en compte si il ya deja quelque chose.
    R[i+j] = R[i+j] + P[i]*Q[j] ?
    Après avoir initialisé R avec len(P)*len(R) cases contenant 0...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Citation Envoyé par delisiouz Voir le message
    c'est comment faire pour faire une addition avec ce qu'il ya deja dans le tableau R car en multipliant il peut y avoir deux opération de degré deux et ici ce que je fait ca remplace par le produit qu'il fait ca ne prend pas en compte si il ya deja quelque chose.
    R[i+j] = R[i+j] + P[i]*Q[j] ?
    Après avoir initialisé R avec len(P)*len(R) cases contenant 0...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 36
    Par défaut
    Ah ok je pensait que ce n'atait pas la peine d'initiliser un tableau en python car il peut y en avoir autant qu'on veut.
    Par contre je ne sais pas ce qui ne fonctionne pas
    test 1/8 : ECHEC
    P : 0 + 1*X^1 + 1*X^2
    Q : 0 + 2*X^1
    calcule : 0 + 0*X^1 + 0*X^2 + 0*X^3
    attendu : 0 + 0*X^1 + 2*X^2 + 2*X^3
    Voila ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def polyProd(P, Q) :
      R=[0]*(len(Q)+len(P)-1)
      for i in range(0,len(P)-1):
        for j in range(0,len(Q)-1):
          R[i+j]=R[i+j]+(P[i]*Q[j])  
     
      return R
    Quand je le fait a la main avec mon algo ca fait le bon résultat

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Citation Envoyé par delisiouz Voir le message
    Par contre je ne sais pas ce qui ne fonctionne pas
    Il faut comprendre comment la machine traduit ce que vous "pensez".
    Pour çà, il faut poser des questions (au code) et lui faire afficher la réponse avec "print".
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def polyProd(P, Q) :
      R=[0]*(len(Q)+len(P)-1)
      for i in range(0,len(P)-1):
        for j in range(0,len(Q)-1):
          print('i=', i, ,'j=', j, P[i], Q[j])
          R[i+j]=R[i+j]+(P[i]*Q[j])  
     
      return R
    devrait vous afficher des choses et vous essayez de comprendre si çà fait du sens.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 36
    Par défaut
    Voila ce que ca me renvoie
    0 0 0 0
    1 0 1 0
    Mais je ne comprend pas pourquoi ca ne renvoie que 1 et 0 et ca ne passe pas du tout par 2 et 3

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 36
    Par défaut
    Ca marche bien finalement.

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Citation Envoyé par delisiouz Voir le message
    Voila ce que ca me renvoie
    0 0 0 0
    1 0 1 0
    Mais je ne comprend pas pourquoi ca ne renvoie que 1 et 0 et ca ne passe pas du tout par 2 et 3
    Ce sont les valeurs de i et j.
    Elles sont assignées par "for ... in range(len(...)):"
    Donc s'il ne vont pas jusqu'à ... c'est que vos len(...) sont à revoir.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. polynomes et produit
    Par mahdouchsfaq dans le forum MATLAB
    Réponses: 0
    Dernier message: 11/10/2008, 04h13
  2. Produit de 2 polynomes
    Par goldeneagle1 dans le forum C
    Réponses: 1
    Dernier message: 12/05/2008, 17h47
  3. Produit de deux polynomes
    Par Tulas dans le forum Caml
    Réponses: 3
    Dernier message: 02/05/2007, 09h44
  4. [info]Licence des produits Java
    Par XavierZERO dans le forum Général Java
    Réponses: 12
    Dernier message: 16/01/2004, 16h27
  5. [Dev-Pascal] Ne produit pas d'exe
    Par portix dans le forum Autres IDE
    Réponses: 8
    Dernier message: 02/07/2003, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo