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 | |||
| teaching:progappchim:polynomes-11 [2016/02/23 13:29] – 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:// | ||
| """ | """ | ||
| Ligne 17: | Ligne 19: | ||
| 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: | ||
| Ligne 28: | Ligne 32: | ||
| def polyshift(a): | def polyshift(a): | ||
| - | """ | + | """ |
| - | b = [0]+a # cela revient à " | + | |
| + | | ||
| + | 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 | r = a[:] # on travaille sur une copie de a pour ne pas le modifier | ||
| 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 66: | Ligne 74: | ||
| 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 !]] | ||