Différences
Ci-dessous, les différences entre deux révisions de la page.
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] – villersd | teaching:progappchim:polynomes-10 [2016/02/23 13:27] – villersd | ||
---|---|---|---|
Ligne 8: | Ligne 8: | ||
""" | """ | ||
""" | """ | ||
- | b=a[: | + | b = a[:] #copie de la liste des coefficients du polynôme de départ |
- | n=len(b)-1 | + | n = len(b)-1 |
for i in range (n+1): | for i in range (n+1): | ||
- | b[i]=b[i]*i | + | 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]) | b.pop(b[0]) | ||
return b | return b | ||
</ | </ | ||
+ | |||
===== 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] # | + | b = [0] # |
for coef in range(len(a)): | for coef in range(len(a)): | ||
b.append(a[coef]) | b.append(a[coef]) | ||
Ligne 33: | Ligne 34: | ||
def polyshift (a): | def polyshift (a): | ||
""" | """ | ||
- | b=[0]+a | + | b = [0]+a # cela revient à " |
return b | return b | ||
</ | </ | ||
+ | |||
===== 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: | ||
""" | """ | ||
""" | """ | ||
- | b=[0] #on indique un coefficient indépendant nul en début de la liste (constante d' | + | b = [0] #on indique un coefficient indépendant nul en début de la liste (constante d' |
- | n=len(a) | + | n = len(a) |
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]/ | b.append(a[i]/ | ||
return b | return b | ||
</ | </ | ||
+ | |||
===== 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:// | 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:// | ||
Ligne 54: | Ligne 57: | ||
# -*- coding: UTF-8 -*- | # -*- coding: UTF-8 -*- | ||
def polymult_BF(a, | def polymult_BF(a, | ||
- | n=len(a)-1 | + | n = len(a)-1 |
- | m=len(b)-1 | + | m = len(b)-1 |
- | 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)< | while(len(c)< | ||
c.append(0) | c.append(0) | ||
Ligne 63: | Ligne 66: | ||
for i in range(len(a)): | for i in range(len(a)): | ||
for j in range(len(b)): | for j in range(len(b)): | ||
- | if(k==i+j): | + | 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 = polymult_BF(x, |
print prod | print prod | ||
</ | </ | ||
Ligne 80: | Ligne 83: | ||
# -*- coding: UTF-8 -*- | # -*- coding: UTF-8 -*- | ||
def polymult(a, | def polymult(a, | ||
- | n=len(a)-1 | + | n = len(a)-1 |
- | m=len(b)-1 | + | m = len(b)-1 |
- | 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): | for i in range(n+1): | ||
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] | + | 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 = polymult(x, |
print prod | print prod | ||
</ | </ | ||
Ligne 108: | Ligne 110: | ||
cf. http:// | cf. http:// | ||
""" | """ | ||
- | rep=[[1.], | + | rep = [[1.], |
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, | for n in range(2, | ||
Ligne 118: | Ligne 120: | ||
def polyscal(s, | def polyscal(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): | ||
""" | """ | ||
- | b=[0]+a | + | b = [0]+a # cela revient à " |
return b | return b | ||
Ligne 131: | Ligne 133: | ||
""" | """ | ||
""" | """ | ||
- | 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): | ||
| |