Puissance d'une matrice |
Pour l'ensemble de ce TD, vous utiliserez, bien entendu, la bibliothèque d'opérations sur les matrices que nous avons déjà écrite.
Il y a bien longtemps que les Mathématiciens savent qu'effectuer (n-1) multiplications pour calculer un nombre à la puissance n est loin d'être une méthode optimale (Legendre, 1798). En effet, pour calculer, par exemple, 716 il faut effectuer :
72 = 49
74 = 49 * 49 = 2 401
78 = 2 401 * 2 401 = 5 764 801
716 = 5 764 801 * 5 764 801 = 33 232 930 569 601
Ce calcul ne nécessite que 4 multiplications au lieu de 15 !!!
On peut généraliser ce raisonnement de la manière suivante : soient M et A deux réels (ou deux matrices !) et p un entier, le produit MxAp reste constant au cours des deux opérations suivantes :
si p est pair
remplacer A par A2 et p par p/2
sinon
remplacer M par MxA et p par p-1
Au cours de ces opérations l'entier p ne peut que diminuer, il atteint donc obligatoirement 0.
A vous d'écrire une procédure ou fonction puiss-legendre qui utilise l'algorithme de Legendre ci-dessus pour calculer la puissance d'une matrice.