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-8 [2012/11/22 10:52] – 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=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 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' | ||