Feuille de TP n˚3 Le but de ce TP est de donner un algorithme

publicité
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
Téléchargement