teaching:progappchim:polynomes-10

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Dernière révisionLes deux révisions suivantes
teaching:progappchim:polynomes-10 [2012/11/22 09:45] villersdteaching:progappchim:polynomes-10 [2016/02/23 13:27] villersd
Ligne 8: Ligne 8:
     """dérivation d'un polynôme     """dérivation d'un polynôme
     """     """
-    b=a[: #copie de la liste des coefficients du polynôme de départ +    b = a[:]  #copie de la liste des coefficients du polynôme de départ 
-    n=len(b)-1  #ordre du polynôme+    n = len(b)-1  #ordre du polynôme
     for i in range (n+1):     for i in range (n+1):
-        b[i]=b[i]*i  #on redéfinit chaque coefficient i de la liste par ce même coefficient*le degré+        b[i] = b[i] * i  #on redéfinit chaque coefficient i de la liste par ce même coefficient*le degré
     b.pop(b[0])  #on supprime le premier élément de la liste (terme indépendant)     b.pop(b[0])  #on supprime le premier élément de la liste (terme indépendant)
     return b     return b
 </sxh> </sxh>
 +
 ===== Multiplication par x ===== ===== Multiplication par x =====
 Proposition de AP, étudiant ba2 2012-2013 : Proposition de AP, étudiant ba2 2012-2013 :
Ligne 23: Ligne 24:
     Cela revient à rajouter un 0 à gauche de la liste passée en argument de la fonction (a).     Cela revient à rajouter un 0 à gauche de la liste passée en argument de la fonction (a).
     """     """
-    b=[0]               #Nouvelle liste dont le premier terme vaut 0.+    b = [0]               #Nouvelle liste dont le premier terme vaut 0.
     for coef in range(len(a)):           #Pour tout les coefficients de la liste a de degré n, on ajoute la liste b.     for coef in range(len(a)):           #Pour tout les coefficients de la liste a de degré n, on ajoute la liste b.
         b.append(a[coef])         b.append(a[coef])
Ligne 33: Ligne 34:
 def polyshift (a): def polyshift (a):
     """Multiplication du polynôme par la variable x"""     """Multiplication du polynôme par la variable x"""
-    b=[0]+a   # cela revient à "shifter" la liste des coefficients en insérant un 0 "à gauche"+    b = [0]+a   # cela revient à "shifter" la liste des coefficients en insérant un 0 "à gauche"
     return b     return b
 </sxh> </sxh>
 +
 ===== Intégration ===== ===== Intégration =====
 Sur base de la proposition de RL, étudiant ba2 2012-2013 : Sur base de la proposition de RL, étudiant ba2 2012-2013 :
Ligne 42: Ligne 44:
     """intégration d'un polynôme     """intégration d'un polynôme
     """     """
-    b=[0]  #on indique un coefficient indépendant nul en début de la liste (constante d'intégration nulle) +    b = [0]  #on indique un coefficient indépendant nul en début de la liste (constante d'intégration nulle) 
-    n=len(a)  #ordre du polynôme après intégration == ordre du polynôme avant intégration +1+    n = len(a)  #ordre du polynôme après intégration == ordre du polynôme avant intégration +1
     for i in range (n):  # on balaie sur toutes les puissances i successives     for i in range (n):  # on balaie sur toutes les puissances i successives
         b.append(a[i]/(i+1)) #le coefficient du terme correspondant après intégration est ajouté         b.append(a[i]/(i+1)) #le coefficient du terme correspondant après intégration est ajouté
     return b     return b
 </sxh> </sxh>
 +
 ===== Multiplication de deux polynômes ===== ===== Multiplication de deux polynômes =====
 Proposition de BF, étudiant ba2 2012-2013, complétée par des commentaires et une application sur des puissances d'un binôme générant les coefficients du [[http://fr.wikipedia.org/wiki/Triangle_de_Pascal|triangle de Pascal]] : Proposition de BF, étudiant ba2 2012-2013, complétée par des commentaires et une application sur des puissances d'un binôme générant les coefficients du [[http://fr.wikipedia.org/wiki/Triangle_de_Pascal|triangle de Pascal]] :
Ligne 54: Ligne 57:
 # -*- coding: UTF-8 -*- # -*- coding: UTF-8 -*-
 def polymult_BF(a,b): def polymult_BF(a,b):
-    n=len(a)-1  # degré du polynôme a +    n = len(a)-1  # degré du polynôme a 
-    m=len(b)-1  # degré du polynôme b +    m = len(b)-1  # degré du polynôme b 
-    p=n+m  # degré du polynôme c = a * b +    p = n + m  # degré du polynôme c = a * b 
-    c=[] # on va créer tous les coefficients du polynôme c, initialisés à 0 :+    c = [] # on va créer tous les coefficients du polynôme c, initialisés à 0 :
     while(len(c)<p+1):     while(len(c)<p+1):
         c.append(0)         c.append(0)
Ligne 63: Ligne 66:
         for i in range(len(a)):  # on considère tous les termes de a         for i in range(len(a)):  # on considère tous les termes de a
             for j in range(len(b)): # on considère tous les termes de b             for j in range(len(b)): # on considère tous les termes de b
-                if(k==i+j):  # si les degrés combinés valent k, on met à jour le coefficient k : +                if k == (i + j):  # si les degrés combinés valent k, on met à jour le coefficient k : 
-                    c[k]=c[k]+(a[i]*b[j])+                    c[k] = c[k] + (a[i]*b[j])
     return c     return c
  
-x=[1,1] +x = [1,1] 
-prod=[1,1]+prod = [1,1]
 for i in range(10): for i in range(10):
-    prod=polymult_BF(x,prod)+    prod = polymult_BF(x,prod)
     print prod     print prod
 </sxh> </sxh>
Ligne 80: Ligne 83:
 # -*- coding: UTF-8 -*- # -*- coding: UTF-8 -*-
 def polymult(a,b): def polymult(a,b):
-    n=len(a)-1  # degré du polynôme a +    n = len(a)-1  # degré du polynôme a 
-    m=len(b)-1  # degré du polynôme b +    m = len(b)-1  # degré du polynôme b 
-    p=n+m  # degré du polynôme c = a * b +    p = n + m  # degré du polynôme c = a * b 
-    c=[] # on va créer tous les coefficients du polynôme c, initialisés à 0 :+    c = [] # on va créer tous les coefficients du polynôme c, initialisés à 0 :
     for k in range(p+1):     for k in range(p+1):
         c.append(0)         c.append(0)
     for i in range(n+1):  # on considère tous les termes de a     for i in range(n+1):  # on considère tous les termes de a
         for j in range(m+1): # on considère tous les termes de b         for j in range(m+1): # on considère tous les termes de b
-            c[i+j]+=a[i]*b[j]  # on incrémente le coefficient de degré k : +            c[i+j] += a[i] * b[j]  # on incrémente le coefficient de degré k :
-                    +
     return c     return c
  
-x=[1,1] +x = [1,1] 
-prod=[1,1]+prod = [1,1]
 for i in range(10): for i in range(10):
-    prod=polymult(x,prod)+    prod = polymult(x,prod)
     print prod     print prod
 </sxh> </sxh>
Ligne 108: Ligne 110:
     cf. http://fr.wikipedia.org/wiki/Polyn%C3%B4me_de_Legendre pour la formule de récurrence     cf. http://fr.wikipedia.org/wiki/Polyn%C3%B4me_de_Legendre pour la formule de récurrence
     """     """
-    rep=[[1.],[0.,1.]] # les deux premiers polynômes (degrés 0 et 1) pour l'application de la formule de récurrence+    rep = [[1.],[0.,1.]] # les deux premiers polynômes (degrés 0 et 1) pour l'application de la formule de récurrence
     if nmax < 1: # si nmax est inférieur au degré 1, on renvoie le polynôme de degré 0     if nmax < 1: # si nmax est inférieur au degré 1, on renvoie le polynôme de degré 0
-        rep=[[1.]]+        rep = [[1.]]
     if nmax > 1:  # pour le degré max supérieur à deux, on calcule les polynômes suivants     if nmax > 1:  # pour le degré max supérieur à deux, on calcule les polynômes suivants
         for n in range(2,nmax+1): # P_n(x) = (2n-1)/n x P_n-1(x) + (1-n)/n P_n-2(x)         for n in range(2,nmax+1): # P_n(x) = (2n-1)/n x P_n-1(x) + (1-n)/n P_n-2(x)
Ligne 118: Ligne 120:
 def polyscal(s,a): def polyscal(s,a):
     """polynôme multiplié par un scalaire s """     """polynôme multiplié par un scalaire s """
-    b=[]+    b = []
     for coef in a:     for coef in a:
         b.append(coef*s)         b.append(coef*s)
Ligne 125: Ligne 127:
 def polyshift(a): def polyshift(a):
     """Multiplication du polynôme par la variable x"""     """Multiplication du polynôme par la variable x"""
-    b=[0]+a   # cela revient à "shifter" la liste des coefficients en insérant un 0 "à gauche"+    b = [0]+a   # cela revient à "shifter" la liste des coefficients en insérant un 0 "à gauche"
     return b     return b
  
Ligne 131: Ligne 133:
     """ Addition de deux polynômes de coefficients a et b     """ Addition de deux polynômes de coefficients a et b
     """     """
-    r=a[:] # on travaille sur une copie de a pour ne pas le modifier +    r = a[:] # on travaille sur une copie de a pour ne pas le modifier 
-    t=b[:] # idem pour b    +    t = b[:] # idem pour b    
-    g=[]   # polynôme somme +    g = []   # polynôme somme 
-    n1=len(r) # ordre du premier polynôme +    n1 = len(r) # ordre du premier polynôme 
-    n2=len(t) # ordre du second polynôme +    n2 = len(t) # ordre du second polynôme 
-    if n1>n2: # premier polynôme de plus haut degré que le second+    if n1 > n2: # premier polynôme de plus haut degré que le second
         for i in range (n1-n2):         for i in range (n1-n2):
             t.append(0)             t.append(0)
-    elif n1<n2: # second polynôme de plus haut degré que le premier+    elif n1 < n2: # second polynôme de plus haut degré que le premier
          for i in range (n2-n1):          for i in range (n2-n1):
              r.append(0)              r.append(0)
  • teaching/progappchim/polynomes-10.txt
  • Dernière modification : 2017/02/24 11:53
  • de villersd