Fractions rationnelles

DEA algorithmique






Attention
Pour visualiser convenablement les formules mathématiques sous netscape, il faut ajouter la ligne suivante à votre fichier .Xdefaults:
Netscape*documentFonts.charset*adobe-fontspecific: iso-8859-1
et redémarrer netscape.



1  Programmation et polynômes

1.1  Finir la feuille précédente

1.2  Un peu d'arithmétique des polynômes

Écrire une procédure qui calcule simplement le produit de deux polynômes.

Voici maintenant un algorithme pour calculer cette quantité plus rapidement :

On considère les polynômes
A(X) = a0+a1 X, B(X)=b0+b1 X
dont le produit est P(X) = p0 + p1 X + p2 X2. Le calcul classique des pi se fait par :
p0 = a0 b0, p1 = a0 b1 + a1 b0, p2 = a1 b1
ce qui nécessite 4 multiplications.

L'idée est de calculer
p0 = a0 b0, p2 = a1 b1 et p1 = (a0+a1) (b0+b1) - p0 - p2.
On a gagné une multiplication, au prix de quatre additions supplémentaires.

Allons plus loin, en montrant comment calculer le produit de deux polynômes de degré n= 2t-1.
A(X) = a0 + a1 X+···+an-1 Xn-1, B(X) = b0 + b1 X+···+bn-1 Xn-1.
On peut couper en deux ces polynômes et écrire
A(X) = A0(X) + Xn/2 A1(X), B(X) = B0(X) + Xn/2 B1(X),
où les Ai et les Bi sont de degré n/2-1. On calcule alors
P0 = A0 B0,   P1 = (A0+A1)(B0+B1), P
 
¥
= A1 B1
par le même algorithme. On retrouve le produit P(X) par
P(X) = P0 + Xn/2 (P1 - P0 - P
 
¥
)+ Xn P1.
Implémenter cet algorithme et évaluer sa complexité en fonction de n.

Comment adapter cet algorithme quand les polynômes ne sont pas de mêmes degrés? Quand leur degrés sont très différents?

Lorsque les polynômes deviennent trop petits (seuil à déterminer), alors la multiplication naïve devient plus rentable, son utilisation dans l'implémentation de l'algorithme de Karatsuba constitue une optimisation.

Pour des polynômes plus gros, on dispose de la FFT (Fast Fourier Transform, transformée de Fourier rapide en français). Optimalement une procédure qui calcule le produit de deux polynômes utilise l'algorithme naïf sur les très petits polynômes, l'algorithme de Karatsuba sur les polynômes de taille moyenne et la FFT sur les gros polynômes. Le seuil de rentabilité d'un algorithme par rapport à un autre peut varier d'une machine à l'autre.



1.3  Factorisation de polynômes

Choisir un polynôme, consulter l'aide en ligne sur la factorisation Mathematics/Algebra/Polynomials/Factorization and root finding, essayer les différentes fonctions sur ce polynôme.



2  Fractions rationnelles

Choisir deux fractions rationnelles, consulter l'aide en ligne sur les fractions rationnelles Mathematics/Algebra/Rational Expressions, essayer les différentes fonctions sur ces fractions rationnelles.




Valérie Ménissier-Morain et Philippe Aubry
Friday 22 October 1999

This document was translated from LATEX by HEVEA.