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 Prochaine révision | Révision précédente | ||
| teaching:progappchim:polynomes-11 [2015/03/06 11:15] – villersd | teaching: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:// | + | 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/env python |
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
| - | """ | + | """ |
| + | graphes de Polynomes de Chebyschev | ||
| """ | """ | ||
| Ligne 11: | Ligne 12: | ||
| def polyeval(x, | def polyeval(x, | ||
| - | """ | + | """ |
| + | | ||
| cf. http:// | cf. http:// | ||
| """ | """ | ||
| - | 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, | for i in range(n, | ||
| - | p=p*x+a[i] | + | p = p * x + a[i] |
| return p | return p | ||
| 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 28: | Ligne 32: | ||
| def polyshift(a): | def polyshift(a): | ||
| - | """ | + | """ |
| - | b=[0]+a | + | |
| + | | ||
| + | b = [0] + a # cela revient à " | ||
| return b | return b | ||
| def polyadd(a, | def polyadd(a, | ||
| - | """ | ||
| """ | """ | ||
| - | r=a[:] # on travaille sur une copie de a pour ne pas le modifier | + | |
| - | t=b[:] # idem pour b | + | """ |
| - | g=[] # polynôme somme | + | |
| - | 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): | ||
| | | ||
| Ligne 52: | Ligne 59: | ||
| def polycheby(nmax): | def polycheby(nmax): | ||
| - | """ | + | """ |
| + | | ||
| cf. http:// | cf. http:// | ||
| """ | """ | ||
| - | rep=[[1.], | + | rep = [[1.], [0.,1.]] # les deux premiers polynômes (degrés 0 et 1) pour l' |
| 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., | + | x = arange(-1., |
| - | chebs=polycheby(10) | + | chebs = polycheby(10) |
| - | 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, | plot(x, | ||
| Ligne 78: | Ligne 86: | ||
| legend() | legend() | ||
| show() | show() | ||
| - | </sxh> | + | </code> |
| On obtient cette figure : | On obtient cette figure : | ||
| - | À ce stade, il est utile de s' | + | À ce stade, il est utile de s' |
| De plus, des modules de calcul scientifique utilisant les familles classiques de polynômes orthogonaux existent dans [[http:// | De plus, des modules de calcul scientifique utilisant les familles classiques de polynômes orthogonaux existent dans [[http:// | ||
| [[polynomes-12|Suite à la page suivante !]] | [[polynomes-12|Suite à la page suivante !]] | ||