Représentation informatique des polynômes

Bonsoir,

On suppose disposer d'une fonction deg donnant le degré d'un polynôme avec -1 comme degré du polynôme nul.

Je ne comprends pas le programme suivant. Je ne comprends absolument rien (impression de lire du chinois) à partir de la ligne 4. Je ne vois pas la logique.97986

Réponses

  • Tu n'as jamais vu une boucle for de ta vie ? Tu n'arrives pas à faire le lien avec comment on calcule les coefficients de la somme et du produit de deux polynômes ? Il faudrait nous en dire un peu plus.
  • Bonjour,

    Peut-être qu'il faudrait que tu commences par apprendre le Python ?
    On ne peut pas comprendre une langue avant de l'avoir apprise, c'est une évidence.
    Donc, étudie un cours de Python.

    Cordialement,

    Rescassol
  • J'ai besoin d'étudier Python pour comprendre des mini programmes cités dans un livre de mathématiques ?

    Ce n'est pas un livre d'informatique, même si j'ai constaté que certains concours comme CCP INT ont massacré leur épreuve de mathématiques en mettant plus d'informatique que de mathématiques, ça ne ressemble plus à rien leur épreuves.

    Je voulais apprendre le Python en m'achetant un bouquin mais je n'ai pas le temps avec le programme de mathématiques de MPSI qui est d'une densité incroyable.
  • Bonsoir,

    > J'ai besoin d'étudier Python pour comprendre des mini programmes cités dans un livre de mathématiques ?

    Oui. Un minimum. Si on te parachute en Chine, tu comprends quoi ?

    Cordialement,

    Rescassol
  • Commençons par la somme, je prends $A=X^2+2X+1$ et $B=X^3-1$.

    J'ai $n_a=2$ puis $n_2=3$.

    Je ne comprends pas ce que fait $s= \max(n_a+1,n_b+1)* [0]$
  • Je ne sais pas quoi étudier dans Python, c'est infiniment vaste. Il faut des années pour maîtriser un tel logiciel.
  • Bonsoir,

    Non, il ne faut pas des années, on peut faire quelques petits programmes en une semaine si on s'y met sérieusement.
    Sinon 4*[0] donne [0,0,0,0] par exemple.

    Cordialement,

    Rescassol
  • Bonsoir,

    Encore un point:
    Quand on veut parler une langue, on s'achète un dictionnaire, entre autres.
    Quand on veut comprendre Python, on l'installe et on teste les programmes ou les morceaux de programme de son bouquin de maths.

    Cordialement,

    Rescassol
  • Ok merci. Je vais le taper sur python en ligne.

    Pourquoi dans le max il y a des n_a+1 et n_b+1 ? A quoi sert le +1 ?
  • Un polynôme de degré $n$ a $n+1$ coefficients.
  • Il ne risque pas de marcher mon programme je n'ai pas de fonction python pour calculer le degré.
  • Bonsoir,

    Tu dis toi même dans ton premier message:

    > On suppose disposer d'une fonction deg donnant le degré d'un polynôme avec -1 comme degré du polynôme nul.

    Si tu ne l'as pas, écris une fonction faisant ça.
    Si tu ne sais pas comment faire, on ne peux pas se substituer à un cours de Python, il faut que tu fasses toi même un minimum de choses.
    Comme dit le proverbe "Aide toi et le ciel t'aidera".

    Cordialement,

    Rescassol
  • Merci Poirot mais comment le programme peut connaitre la valeur de a et b ? C'est quand qu'on rentre les coefficients des polynômes ?
  • C'est ce qui s'appelle mettre la charrue avant les boeufs ! Tu ne comprends même pas que tu définis ainsi un programme, que l'on peut ensuite appeler en remplaçant $a$ et $b$ par des (représentations de) polynômes !
  • Merci. Je vais chercher comment entrer les coefficients d'un polynôme sur Python.
    Puis essayer de trouver une fonction pour calculer le degré d'un polynôme.

    Je mettrai un exemple ici de mon programme.
  • J'ai simplifié le code mais j'ai une erreur que je ne comprends pas tellement97988
  • Le degré du polynôme $A$ est $2$ par $3$ idem pour le polynôme $B$ dont le degré est 3 pas 4.

    Tu as une erreur car à la ligne 11 le programme essaie de récupérer $a[3]$ or l'index maximal du tableau $a$ est $2$ pas $3$...
  • Bonsoir,

    Si tu veux qu'on teste ton programme, poste du code en texte (balise code) qu'on puisse copier/coller et pas une image où on est obligé de recopier.

    Cordialement,

    Rescassol
  • Merci Raoul ! Ça marche maintenant je continue mon programme X:-(
  • J'ai réussi à calculer le produit et afficher mes résultats intermédiaires avec le programme suivant. C'est très intéressant. Mon programme est bancal mais au moins j'ai compris comment utiliser des listes.
    J'ai compris aussi la double boucle for qui provient du coefficient du produit qui est $p_k= \displaystyle\sum_{i+j=k} a_i b_j$. Donc par exemple pour calculer $p[1]$ on fixe $i=0$ et $j=1$ mais aussi $i=1$ et $j=0$ et on les additionne.
    a=[2,3,5]
    b=[1,-2,4,6]
    n_a=len(a)-1
    n_b=len(b)-1
    print ("Le degré du polynome A est",n_a)
    print ("Le degré du polynome B est",n_b)
    s=max(n_a+1,n_b+1)*[0]
    print (s)
    for i in range (n_a+1):
      s[ i] = a[ i]
      print (s)
    for i in range (n_b+1):
      s[ i] += b[ i]
      print (s)
    p=(n_a+n_b+1)*[0]
    print (p)
    for i in range (n_a+1):
      for j in range(n_b+1):
        p[ i+j]=a[ i]*b[j]
        print (p)
    
  • hum tu n'as pas recopié exactement le programme du début. Celui-ci ne plante pas mais il ne fait pas le job...
  • J'ai supprimé la fonction $somme(a,b)$ car quand on appelle la fonction je me demande si on rentre a et b sont forme de liste...

    Il ne fallait pas supprimer la fonction ?
  • Non c'est bon j'avais mal vu. Tu peux utiliser la fonction somme et produit comme ça :
    def somme(a,b):
      n_a=len(a)-1
      n_b=len(b)-1
      s=max(n_a+1,n_b+1)*[0]
      for i in range (n_a+1):
        s[ i] = a[ i]
      for i in range (n_b+1):
        s[ i] += b[ i]
      return s
    
    def produit(a,b):
      n_a=len(a)-1
      n_b=len(b)-1
      p=(n_a+n_b+1)*[0]
      for i in range (n_a+1):
        for j in range(n_b+1):
          p[ i+j]+=a[ i]*b[j]
    
      return p
    
    print (somme([2,3,5],[1,-2,4,6]))
    print (produit([2,3,5],[1,-2,4,6]))
    
  • Oui en fait c'est ta ligne "p[ i+j]=a[ i]*b[j]" qu'il faut remplacer par "p[ i+j]+=a[ i]*b[j]"
  • Merci !
    On se sert de la fonction somme ou produit en l'appelant dans un print.
  • Oui c'est ça. L'idée est que si tu as un gros programme qui a besoin d'utiliser plusieurs fois ces fonctions alors tu les écris une seule fois et tu te limites à les appeler lorsque tu en as besoin.
Connectez-vous ou Inscrivez-vous pour répondre.