Polynômes : graphes de fonctions polynomiales

poly08-plot.py
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
écriture d'un programme pour évaluer
des polynomes
"""
from math import *
from pylab import *   # librairies de graphiques (matplotlib)
 
def polyeval(x,a):
    """
    application de l'agorithme de Horner
    cf. http://fr.wikipedia.org/wiki/M%C3%A9thode_de_Ruffini-Horner
    """
    n = len(a)-1 # n = ordre du polynome
    p = 0.
    for i in range(n,-1,-1):
        p = p*x + a[i]
    return p
 
def polyscal(s,a):
    """
    polynôme multiplié par un scalaire s
    """
    b = []
    for coef in a:
        b.append(coef*s)
    return b    # on retourne les coefficients multipliés par s
 
def polyadd(a,b):
    """
    Addition de deux polynomes de coefficients a et b
    """
    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
    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):
            t.append(0)
    elif n1 < n2: # second polynome de plus haut degré que le premier
         for i in range (n2-n1):
             r.append(0)
    # r et t ont à présent la même longueur
    for i in range (len(r)):
        g.append(r[i]+t[i])
    return g  # on retourne les coefficients additionnés dans la liste g
 
# différents tests :
 
absc = []
ordo = []
coef = [0, 9, 0, -120, 0, 432, 0, -576, 0, 256]   # un polynome un peu particulier
xa = -1.04
while xa < 1.04:
    absc.append(xa)
    ordo.append(polyeval(xa,coef))
    xa = xa + 0.01
 
plot(absc,ordo)
show()
Il s'agit à présent de créer d'autres fonctionnalités sur les polynômes !

Ce serait utile pour créer un graphe d'une famille de fonctions polynomiales (comme des polynômes orthogonaux).

Regardez cet exemple simple de graphe multiple !