SkayaWiki

PythonTD4

JeromePetazzoni :: DerniersChangements :: DerniersCommentaires? :: ParametresUtilisateur :: http://www.enix.org/ :: Vous êtes ec2-18-222-111-44.us-east-2.compute.amazonaws.com
Écrire une classe polynom répondant aux spécifications suivantes :
- on veut pouvoir construire un polynôme en spécifiant les coefficients comme arguments du constructeur, de la plus haute puissance à la plus petite : p1=polynom(1,0,-1) # X^2 - 1
- on veut pouvoir évaluer le polynôme en une valeur X donnée (en l'appelant comme une fonction) : p1(4) # =15
- on veut pouvoir utiliser la fonction len pour connaître le nombre de coefficiens (attention il ne s'agit pas du degré, mais du degré+1) : len(p1) # =3
- on veut pouvoir récupérer le i-ème coefficient en utilisant le polynôme comme un tableau : p1[0] # =-1
- si le constructeur est appelé avec un unique argument et que cet argument est une liste ou un couple, on souhaite utiliser cet argument comme liste des coefficients, où le i-ème élément de la liste correspond à la i-ème puissance du polynôme : polynom([-1,2,4,1]) # X^3 + 4X^2 + 2X - 1-
- on souhaite additionner et soustraireles polynômes entre eux, avec les opérateurs usuels : p1+polynom(1,0,1) # = polynom(2,0,0)
- on souhaite pouvoir utiliser les fonctions repr et str sur ces polynômes ; str réalisant un affichage "joli" par exemple X4 - 3X3 + 2X - 1 (en évitant les formes "lourdes" comme 1X4 par exemple, ou 2X1, ou encore 1X0...) et repr faisant un affichage du style 'polynom(1,0,-1)'
- on souhaite additionner, et soustraire et multiplier les polynômes avec des nombres entiers et flottants, à gauche et aussi à droite (utiliser les opérateurs avec priorité à droite radd et compagnie)
- on souhaite pouvoir élever le degré d'un polynôme avec l'opérateur décalage à gauche : (2*X^3 + 1) << 4 = 2*X^7 + X^4
- implémenter ensuite l'opérateur de multiplication de deux polynômes entre eux.
- proposer un opérateur pour la dérivée des polynômes (et l'implémenter)

Résoudre, dans l'ordre que vous voudrez, et en proposant les restrictions que vous jugerez nécessaires, les problèmes suivants :
- écrire une fonction pour trouver les éventuelles solutions de l'équation P(X)=0 pour un polynôme donné
- écrire une fonction réalisant l'affichage graphique la courbe Y=P(X)

Soyez créatifs pour ces deux dernières questions ; tous les coups sont permis :-)

Exemple d'utilisation :

def test():
p1=polynom(1,0,1)
p2=polynom(1,-2,2,1)
p3=polynom(0,-1,0,1)
print p1, p2, p3
print p1+p2, p1+p3
print p1-p2, p1-p3

Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]