Maîtrise d'Informatique
Maîtrise d'ingénierie mathématique
Module de Calcul Formel
Année 2001-2002



Manipulations de Polynômes



Le but du TD est de réaliser les opérations simples sur les polynômes, en une ou plusieurs variables. Nous allons adopter une représentation distribuée creuse pour les polynômes: un polynôme sera une liste de monômes non nuls triés dans l'ordre lexicographique décroissant des exposants. La liste des variables est implicite (et n'est donc pas codée dans la représentation). Comment représente-t-on le polynôme nul?

Un monôme sera représenté comme une liste à deux éléments où le premier terme est l'exposant et le deuxième est le coefficient.

Un exposant est une liste de longueur le nombre de variables contenant les degrés en chaque variable. Un coefficient est un objet maple quelconque.

Ainsi nous avons la forme suivante pour un polynôme ayant m monômes non nuls sur n variables:

[  [  [  deg1,1 , ...  , degn,1 ] , coeff1 ], ... , [  [  deg1,m , ...  , degn,m ] ,  coeffm ] ]
En particulier en une seule variable on aura:
[  [  [  deg1 ] , coeff1 ], ... , [  [  degm ] ,  coeffm ] ]
Nous allons d'abord nous donner quelques utilitaires de programmation: Nous pouvons maintenant penser à implémenter les opérations arithmétiques, nous allons réaliser l'addition de 2 polynômes P1 et P2.

Nous pouvons passer à la multiplication de P1 et P2.

Pourquoi n'a-t-on pas de notion de division euclidienne sur les polynômes en plusieurs variables? Lorsqu'il n'y a qu'une seule variable nous pouvons écrire la division euclidienne en utilisant les opérations sur les coefficients.

Maintenant que nous avons la base, rajoutez quelques fonctions utilitaires! Inspirez vous des fonctions déjà existantes en maple.
Ce document a été traduit de LATEX par HEVEA.