Théorie des nombres 2012 – 2013 Feuille de TP n˚3 Le but de ce TP est de donner un algorithme permettant de résoudre explicitement l’équation de Pell-Fermat, i.e. de trouver x, y ∈ N tels que x2 = dy 2 + 1, d sans facteur carré. Nous allons regarder deux méthodes différentes pour trouver une telle √ Ces √ solution. deux méthodes utilisent le fait que l’équation √ peut se récrire (x+ dy)(x− dy) = 1. Ainsi, on va travailler dans l’anneau Z[ d]. Dans un premier temps nous allons avoir la méthode dite méthode chakravala puis nous verrons celle utilisant les fractions continues. Methode de chakravala √ On utilise ici l’application norme habituelle N : N (a + db) = a2 − db2 . √ Trouver une solution revient à trouver un élément de norme 1 dans l’anneau Z[ d]. La méthode se base √ sur les 3 propositions suivantes : – Soit α ∈ Z[ d] tel que N (α) = −1, alors α2 donne une solution à l’équation de Pell-Fermat. √ 2 – Soit α ∈ Z[ d] tel que N (α) = ±2, alors α2 donne une solution à l’équation de Pell-Fermat. √ 3 – Soit α ∈ Z[ d] tel que N (α) = ±4 et tel que 2 ne divise pas α, alors α8 est un élément de norme égale à ±1. 1. Programmer l’algorithme norme qui, étant donné un élément α de l’anneau √ Z[ d], calcule N (α). 2. Programmer un algorithme res_chak qui, étant donné un entier d sans facteur carré, calcule une solution de l’équation de Pell-Fermat. 3. Tester cet algorithme sur des exemples et vérifier qu’on obtient bien des solutions de l’équation de Pell-Fermat. Fractions continues On va utiliser ici la théorie des fractions continues pour trouver des solutions à l’équation de Pell-Fermat. Une fraction continue est une expression de la forme 1 x = a0 + 1 a1 + a2 + (1) 1 a3 + . . . comportant un nombre fini ou infini d’étapes. On note généralement par simplicité la fraction continue sous la forme x = [a0 , a1 , a2 , . . . ]. Tout nombre réel x peut être décomposé en fraction continue, dans ce cas a0 ∈ Z et ai ∈ N, ∀i ≥ 1. 1 Deux théoremes importants dans cette théorie vont nous servir : – Un nombre réel est rationnel si et seulement si son développement en fraction continue est fini. – Un nombre irrationnel est quadratique, c’est à dire solution d’une équation du second degré, si et seulement si son développement en fraction continue est périodique à partir d’un certain rang. Si le développement de x est périodique à partir du rang p alors il existe un entier n tel que l’égalité suivante soit vérifiée (on utilise cette notation pour symboliser la périodicité) : x = [a0 , a1 , . . . , ap−1 , ap , ap+1 , . . . , an , ap , ap+1 , . . . ] = [a0 , a1 , . . . , ap−1 , ap , ap+1 , . . . , an ] √ En fait, on connait même un peu mieux le développement de d : – Si d est sans facteur carré alors son développement en fraction continue est √ périodique à partir du rang 1 et est tel que d = [a0 , a1 , a2 , a3 , . . . , a3 , a2 , a1 , 2a0 ]. Si x = [a0 , a1 , a2 , . . . ], on appelle réduite d’indice p de x la fraction [a0 , a1 , a2 , . . . , ap ] (c’est un rationnel !). On a maintenant toutes les bases pour pouvoir énoncer le théorême fondamental pour la résolution de l’équation de Pell-Fermat : √ – Soit d = [a0 , a1 , a2 , a3 , . . . , am ] avec d sans facteur carré, alors : m−1 – Si m est pair, le couple (x, y) = (pm−1 , qm−1 ), où pqm−1 est la réduite de √ rang m − 1 de d, est solution de l’équation de Pell-Fermat. 2m−1 est la réduite – Si m est impair, le couple (x, y) = (p2m−1 , q2m−1 ), où pq2m−1 √ de rang 2m − 1 de d, est solution de l’équation de Pell-Fermat. 1. Programmer un algorithme frac_continu_rat qui, étant donné un nombre rationnel, calcule son développement en fraction continue (fini !). (Indication : utiliser l’algorithme d’Euclide) 2. Programmer un algorithme frac_continu_quad qui, étant donné un nombre irrationnel quadratique, calcule son développement en fraction continue (périodique de rang 1 !). 3. Programmer un algorithme reduite qui, étant donné un nombre réel x et un entier p, calcule la réduite d’indice p de x. 4. Programmer un algorithme res_frac qui, étant donné un entier d sans facteur carré, calcule une solution de l’équation de Pell-Fermat. 5. Tester cet algorithme sur des exemples et vérifier qu’on obtient bien des solutions de l’équation de Pell-Fermat. 2