teaching:progappchim:polynomes-11

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
Prochaine révision
Révision précédente
teaching:progappchim:polynomes-11 [2015/03/06 11:15] villersdteaching:progappchim:polynomes-11 [2017/02/24 11:58] (Version actuelle) villersd
Ligne 1: Ligne 1:
 ====== Graphe d'une famille de polynômes orthogonaux ====== ====== Graphe d'une famille de polynômes orthogonaux ======
-Voici un programme permettant de visualiser les premiers [[http://fr.wikipedia.org/wiki/Polyn%C3%B4me_de_Tchebychev|polynômes orthogonaux de Tchebyshev]] : +Voici un programme permettant de visualiser les premiers [[wp>fr:Polynôme_de_Tchebychev|polynômes orthogonaux de Tchebyshev]] : 
-<sxh python; title : polycheby.py> +<code python polycheby.py> 
-#!/usr/bin/python+#!/usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
-"""graphes de Polynomes de Chebyschev+""" 
 +graphes de Polynomes de Chebyschev
 """ """
  
Ligne 11: Ligne 12:
  
 def polyeval(x,a): def polyeval(x,a):
-    """application de l'agorithme de Horner+    """ 
 +    application de l'algorithme de Horner
     cf. http://fr.wikipedia.org/wiki/M%C3%A9thode_de_Ruffini-Horner     cf. http://fr.wikipedia.org/wiki/M%C3%A9thode_de_Ruffini-Horner
     """     """
-    n=len(a)-1 # n = ordre du polynome +    n = len(a)-1 # n = ordre du polynome 
-    p=0.+    p = 0.
     for i in range(n,-1,-1):     for i in range(n,-1,-1):
-        p=p*x+a[i]+        p = p * x + a[i]
     return p     return p
  
 def polyscal(s,a): def polyscal(s,a):
-    """polynôme multiplié par un scalaire s """ +    """ 
-    b=[]+    polynôme multiplié par un scalaire s 
 +    """ 
 +    b = []
     for coef in a:     for coef in a:
         b.append(coef*s)         b.append(coef*s)
Ligne 28: Ligne 32:
  
 def polyshift(a): def polyshift(a):
-    """Multiplication du polynôme par la variable x""" +    """ 
-    b=[0]+a   # cela revient à "shifter" la liste des coefficients en insérant un 0 "à gauche"+    Multiplication du polynôme par la variable x 
 +    """ 
 +    b = [0] + a   # cela revient à "shifter" la liste des coefficients en insérant un 0 "à gauche"
     return b     return b
  
 def polyadd(a,b): def polyadd(a,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 +    Addition de deux polynômes de coefficients a et b 
-    t=b[:] # idem pour b    +    """ 
-    g=[]   # polynôme somme +    r = a[:] # on travaille sur une copie de a pour ne pas le modifier 
-    n1=len(r) # ordre du premier polynôme +    t = b[:] # idem pour b    
-    n2=len(t) # ordre du second polynôme +    g = []   # polynôme somme 
-    if n1>n2: # premier polynôme de plus haut degré que le second+    n1 = len(r) # ordre du premier polynôme 
 +    n2 = len(t) # ordre du second polynôme 
 +    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)
Ligne 52: Ligne 59:
  
 def polycheby(nmax): def polycheby(nmax):
-    """Fonction générant les coefficients des polynômes de Tchebyshev jusqu'à l'ordre nmax+    """ 
 +    Fonction générant les coefficients des polynômes de Tchebyshev jusqu'à l'ordre nmax
     cf. http://fr.wikipedia.org/wiki/Polyn%C3%B4me_de_Tchebychev pour la formule de récurrence     cf. http://fr.wikipedia.org/wiki/Polyn%C3%B4me_de_Tchebychev 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.]]
Ligne 64: Ligne 72:
  
 # utilisation des objets numpy # utilisation des objets numpy
-x=arange(-1.,1.00001,0.01) +x = arange(-1.,1.00001,0.01) 
-chebs=polycheby(10)   # quelques premiers polynômes de Tchebyshev +chebs = polycheby(10)   # quelques premiers polynômes de Tchebyshev 
-print chebs+print(chebs)
  
 # création des graphes de tous ces polynomes # création des graphes de tous ces polynomes
  
 for pol in chebs: for pol in chebs:
-    print pol+    print(pol)
     plot(x,polyeval(x,pol))     plot(x,polyeval(x,pol))
  
Ligne 78: Ligne 86:
 legend() legend()
 show() show()
-</sxh>+</code>
  
 On obtient cette figure :{{:teaching:progappchim:cheby-10.png?direct&100|Cliquez pour voir en pleine page}} On obtient cette figure :{{:teaching:progappchim:cheby-10.png?direct&100|Cliquez pour voir en pleine page}}
  
-À ce stade, il est utile de s'exercer avec d'autres [[http://en.wikipedia.org/wiki/Classical_orthogonal_polynomials|familles de polynômes orthogonaux]] qui interviennent dans de nombreuses applications de la mécanique quantique.+À ce stade, il est utile de s'exercer avec d'autres [[wp>Classical_orthogonal_polynomials|familles de polynômes orthogonaux]] qui interviennent dans de nombreuses applications de la mécanique quantique.
  
 De plus, des modules de calcul scientifique utilisant les familles classiques de polynômes orthogonaux existent dans [[http://docs.scipy.org/doc/numpy/reference/routines.polynomials.package.html|NumPy]]. Leur mise en œuvre nécessite simplement l'étude de la documentation et d'exemples. De plus, des modules de calcul scientifique utilisant les familles classiques de polynômes orthogonaux existent dans [[http://docs.scipy.org/doc/numpy/reference/routines.polynomials.package.html|NumPy]]. Leur mise en œuvre nécessite simplement l'étude de la documentation et d'exemples.
  
 [[polynomes-12|Suite à la page suivante !]] [[polynomes-12|Suite à la page suivante !]]
  • teaching/progappchim/polynomes-11.txt
  • Dernière modification : 2017/02/24 11:58
  • de villersd