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 !]] |