Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
teaching:progappchim:polynomes-8 [2012/11/09 12:12] – créée villersd | teaching:progappchim:polynomes-8 [2017/02/24 11:43] (Version actuelle) – villersd | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Polynômes : graphes de fonctions polynomiales ====== | ====== Polynômes : graphes de fonctions polynomiales ====== | ||
- | <sxh python; title : poly08-plot.py> | + | <code python poly08-plot.py> |
- | # | + | #!/usr/bin/env python |
# -*- coding: UTF-8 -*- | # -*- coding: UTF-8 -*- | ||
- | """ | + | """ |
+ | écriture d'un programme pour évaluer | ||
des polynomes | des polynomes | ||
""" | """ | ||
Ligne 10: | Ligne 11: | ||
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=a[n] | + | p = 0. |
- | for i in range(n-1,-1,-1): | + | for i in range(n, |
- | p=p*x+a[i] | + | p = p*x + a[i] |
return p | return p | ||
- | def polyscal(a,s): | + | def polyscal(s,a): |
- | """ | + | """ |
- | b=[] | + | polynôme |
+ | | ||
+ | b = [] | ||
for coef in a: | for coef in a: | ||
b.append(coef*s) | b.append(coef*s) | ||
Ligne 27: | Ligne 31: | ||
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=[] # polynome somme | + | |
- | n1=len(r) # ordre du premier polynome | + | t = b[:] # idem pour b |
- | n2=len(t) # ordre du second polynome | + | g = [] # polynome somme |
- | if n1>n2: # premier polynome de plus haut degré que le second | + | n1 = len(r) # ordre du premier polynome |
+ | n2 = len(t) # ordre du second polynome | ||
+ | if n1 > n2: # premier polynome 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 polynome de plus haut degré que le premier | + | elif n1 < n2: # second polynome de plus haut degré que le premier |
for i in range (n2-n1): | for i in range (n2-n1): | ||
| | ||
Ligne 47: | Ligne 52: | ||
# différents tests : | # différents tests : | ||
- | absc=[] | + | absc = [] |
- | ordo=[] | + | ordo = [] |
- | coef=[0, | + | coef = [0, 9, 0, -120, 0, 432, 0, -576, 0, 256] # un polynome un peu particulier |
- | xa=-1.04 | + | xa = -1.04 |
while xa < 1.04: | while xa < 1.04: | ||
absc.append(xa) | absc.append(xa) | ||
ordo.append(polyeval(xa, | ordo.append(polyeval(xa, | ||
- | xa=xa+0.01 | + | xa = xa + 0.01 |
plot(absc, | plot(absc, | ||
show() | show() | ||
- | </sxh> | + | </code> |
<note tip>Il s'agit à présent de créer d' | <note tip>Il s'agit à présent de créer d' | ||
+ | Ce serait utile pour créer un graphe d'une famille de fonctions polynomiales (comme des polynômes orthogonaux). | ||
- | [[polynomes-9|Des propositions à la page suivante | + | [[polynomes-9|Regardez cet exemple simple de graphe multiple |