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 Ntels que x2=dy2+ 1,dsans
facteur carré.
Nous allons regarder deux méthodes différentes pour trouver une telle solution. Ces
deux méthodes utilisent le fait que l’équation peut se récrire (x+dy)(xdy) =
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) = a2db2.
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 α2donne une solution à l’équation
de Pell-Fermat.
Soit αZ[d]tel que N(α) = ±2, alors α2
2donne une solution à l’équation
de Pell-Fermat.
Soit αZ[d]tel que N(α) = ±4et tel que 2 ne divise pas α, alors α3
8est
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 dsans 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 solu-
tions 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
x=a0+1
a1+1
a2+1
a3+. . .
(1)
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 xpeut être décomposé en fraction continue, dans ce cas a0Z
et aiN,i1.
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 xest périodique à partir du rang palors il existe un entier
ntel que l’égalité suivante soit vérifiée (on utilise cette notation pour symboliser
la périodicité) :
x= [a0, a1, . . . , ap1, ap, ap+1, . . . , an, ap, ap+1, . . . ]=[a0, a1, . . . , ap1, ap, ap+1, . . . , an]
En fait, on connait même un peu mieux le développement de d:
Si dest 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 pde xla 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 dsans facteur carré, alors :
Si mest pair, le couple (x, y) = (pm1, qm1), où pm1
qm1est la réduite de
rang m1de d, est solution de l’équation de Pell-Fermat.
Si mest impair, le couple (x, y) = (p2m1, q2m1), où p2m1
q2m1est la réduite
de rang 2m1de d, est solution de l’équation de Pell-Fermat.
1. Programmer un algorithme frac_continu_rat qui, étant donné un nombre ra-
tionnel, 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ério-
dique de rang 1 !).
3. Programmer un algorithme reduite qui, étant donné un nombre réel xet un
entier p, calcule la réduite d’indice pde x.
4. Programmer un algorithme res_frac qui, étant donné un entier dsans 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 solu-
tions de l’équation de Pell-Fermat.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !