On ne s'intéressera ici qu'au cas D positif non carré et tout d'abord
au cas k = 1 :
x² - Dy² = 1 (équation de Pell proprement dite).
On a alors les résultats suivants :
xn+1 = x0xn + Dy0yn, yn+1 = y0xn + x0yn
On peut en tirer les formules de récurence donnant indépendemment les suites xn et yn :
xn+2 = 2x0xn+1-xn yn+2 = 2x0yn+1-yn
On peut aussi écrire : xn + yn√D = (x0 + y0√ D)n+1 ou la forme conjuguée en remplaçant + par -
Cela donne les formules donnant directement xn et yn en fonction de n. Ces formules sont généralement de peu d'intérêt immédiat à cause des termes en √D irrationnels qui donnent pourtant des xn et yn entiers !
Posons U0 = 0, V0 = 1, a0 = E[√D], P0 = a0, Q0 = 1
et par convention P-1 = 1 et Q-1 = 0
avec la notation E[x] = partie entière de x. Puis itérons les formules : Un+1 = anVn - Un,
Vn+1 = (D - Un+1²)/Vn,
an+1 = E[ (a0 + Un+1)/Vn+1 ],
En s'arrêtant quand ak > a0 (ou Vk = 1).
Si k est pair c'est la solution cherchée.
|
Cet algorithme est un cas particulier de l'algorithme PQa donnant le développement en fraction continue d'un nombre quadratique (u + √D)/v avec ici u = 0 et v = 1.
Appliquons ces formules à la résolution de x² - 13y² = 1 :
U0 = 0 | V0 = 1 | a0 = 3 | P0 = 3 | Q0 = 1 | ||||
U1 = 3 | V1 = (13 - 9)/1 = 4 | a1 = E[(3 + 3)/4] = 1 | P1 = 4 | Q1 = 1 | ||||
U2 = 4 - 3 = 1 | V2 = (13 - 1)/4 = 3 | a2 = E[(3 + 1)/3] = 1 | P2 = 7 | Q2 = 2 | ||||
U3 = 3 - 1 = 2 | V3 = (13 - 4)/3 = 3 | a3 = E[(3 + 2)/3] = 1 | P3 = 11 | Q3 = 3 | ||||
U4 = 3 - 2 = 1 | V4 = (13 - 1)/1 = 4 | a4 = E[(3 + 1)/4] = 1 | P4 = 18 | Q4 = 5 | ||||
U5 = 4 - 1 = 3 | V5 = (13 - 9)/4 = 1 | a5 = E[(3 + 3)/1] = 6 > 3 => stop |
5 étant impair, (18, 5) est solution de x² - 13y² = -1.
La solution fondamentale de x² - 13y² = 1 est (18² + 13×5², 2×18×5) = (649, 180) ce qui n'était pas évident à trouver sans
disposer de cet algorithme.
Passons maintenant au cas général où k ≠ 1 et tout d'abord
ou la forme conjuguée en remplaçant + par -
Nota : les solutions de l'équation x² - Dy² = 1 sont obtenues à partir de
la solution fondamentale
(x0, y0) de x² - Dy² = -1
par : xn + yn√D = (x0 + y0√D)2n
La solution fondamentale de x² - Dy²=1 est ainsi (x0² + Dy0², 2x0y0).
On a aussi les relations de récurence :
xn+1 = (x0² + Dy0²)xn + 2Dx0y0yn, yn+1 = 2x0y0xn + (x0² + Dy0²)yn
Ainsi que des formules en xn+2 = axn+1 + bxn que je vous laisse chercher à titre d'exercice.
Quant à la recherche de la solution fondamentale, on se reportera à l'algorithme précédent en notant que si k est pair,
c'est que x² - Dy² = -1 n'a pas de solution.
Il n'y a pas en général de critère simple pour le savoir à priori. Citons toutefois le cas ou D est un nombre premier p :
Une condition nécessaire et suffisante pour que l'équation x² - py² = -1 soit soluble est que p = 4k + 1.
Soit l'équation x² - 2y² = -1
x = 1, y = 1 est une solution évidente, qui est fondamentale puisqu'une solution plus petite aurait
x et y < 1.
La solution fondamentale de x² - 2y² = +1 est alors x = 1² + 2*1² = 3
et y = 1² + 1² = 2 .
Et toutes les solutions sont données par
xn+1 = 3xn + 4yn, yn+1 = 2xn + 3yn, c'est à dire :
(1,1) (7,5) (41,29) (239,169) (1393,985) ...
xn + yn√D = (x0 + y0√D)n(ξ + η√D) ainsi que les formules de récurence correspondantes.
Le problème de trouver les solutions primitives indépendantes n'est toutefois pas évident. Une première méthode est de balayer systématiquement les valeurs de x et y, la théorie se contentant de fournir une borne supérieure à ces essais (rappelons que l'équation peut ne pas avoir de solution). C'est la méthode la plus efficace si la borne supérieure n'est pas trop grande.
Tout d'abord explicitons ce que sont des solutions indépendantes et plus précisément celles qui ne le sont pas et qui sont
alors dites "équivalentes".
Deux solutions (x,y) et (x',y') sont équivalentes s'il existe une solution (X,Y) de
x² - Dy² = 1 telle que :
x + y√D = (X + Y√D)(x' + y'√D)
Ce critère étant peu pratique, ajoutons :
Pour que deux solutions (x,y) et (x',y') de x² - Dy² = K soient
équivalentes, il faut et il suffit que :
xx' - Dyy' et x'y - xy' soient multiples de K. |
Reste à donner les bornes des solutions primitives :
si K > 0, les solutions primitives sont bornées par
0 < x ≤ √( (x0 + 1)K/2 ) ou 0 ≤ y ≤ y0√ ( K/2(x0 + 1) ) si K < 0, les solutions primitives sont bornées par
|
S'il n'y a pas de solution entre ces bornes, c'est qu'il n'y a pas de solution du tout.
On pourrait être tenté de chercher un critère pour que x² - Dy² = K soit soluble en
écrivant la congruence
x² ≡ K mod (D),
c'est à dire que K doit être un résidu quadratique de D.
La seule chose que l'on peut dire alors est que si K n'est pas un résidu quadratique de D,
l'équation de Pell est insoluble.
Par exemple l'équation x² - 97y² = 51 est insoluble car le symbole de Legendre (51/97) = -1
montre que 51 n'est pas un résidu quadratique de 97.
Mais cette condition nécessaire n'est pas suffisante...
Il y a donc 4 solutions primitives, mais qui ne sont pas toutes indépendantes
(±3, 0) sont équivalentes, de façon générale (x,y) ~ (-x,-y)
(4,±1) sont indépendantes : 16 + 7 = 26 premier avec 9.
(3,0) et (4,1) sont indépendantes
(3,0) et (4,-1) sont indépendantes
Finalement trois solutions primitives indépendantes : (3, 0), (4, 1) et (4,-1)
Si on s'intéresse aux x,y > 0, (4,-1) ~ (11,4), plus petite solution >0 de cette classe
Les solutions générales sont formées des trois familles :
xn + yn√7 = (8 + 3√7)n(3 + 0√7)
xn + yn√7 = (8 + 3√7)n(4 + √7)
xn + yn√7 = (8 + 3√7)n(4 - √7)
Ou les formules de récurence :
xn+1 = 8xn + 21yn, yn+1 = 3xn + 8yn, en partant de (x, y) = (3,0), (4,1) et (4,-1)
soit les trois familles :
(3,0) (24,9) (381,144) ...
(11,4) (172,65) (2741,1036) ...
(4,1) (53,20) (844,319) ...
La recherche par balayage des solutions devient fastidieuse si la borne est trop grande. Dans ce cas on dispose de deux méthodes plus efficaces.
Pi² - DQi² = (-1)i+1Vi+1V0
Ceci permet de trouver dans le même algorithme les solutions primitives de x² - Dy² = K
Notons tout d'abord que si (x,y) est une solution de x² - Dy² = K, (mx,my) est une solution de x² - Dy² = m²K.
Si donc on obtient un (-1)i+1Vi+1 = K/m²,
alors x = mPi, y = mQi est solution de x² - Dy² = K
Si K² < D, ceci donne toutes les solutions primitives.
Exemple x² - 19y² = -3
U | V | a | P | Q | ||||
0 | 1 | 4 | 4 | 1 | 1 | |||
4 | 3 | 2 | 9 | 2 | -3 | 4 | 1 | est solution de x² - 19y² = -3 |
2 | 5 | 1 | 13 | 3 | 5 | |||
3 | 2 | 3 | 48 | 11 | -2 | |||
3 | 5 | 1 | 61 | 14 | 5 | |||
2 | 3 | 2 | 170 | 39 | -3 | 61 | 14 | est solution de x² - 19y² = -3 |
4 | 1 | 8 | 1 | 170 | 39 | est solution de x² - 19y² = 1 |
Notas :
1) l'équation x² - 19y² = K n'a donc pas de solutions pour K = -1, +2, +3, et -4.
2) x² - 19y² = 5 admet les solutions primitives (9,2) et (48,11) mais on ne sait pas si ce sont les seules car 5² > 19.
Lister les f tels que f² divise K, m=K/f²
Pour chaque f, trouver tous les z : -|m|/2 < z≤|m|/2 et z² ≡ D modulo |m| Pour chaque z appliquer l'algorithme PQa avec U0 = z, V0 = |m| jusqu'à la fin de la période ou un Vi = ±1 - Si Vi = 1, alors (Pi-1,Qi-1) est solution de x² - Dy² = m, ajouter cette solution à la liste. - Si Vi = -1, alors (Pi-1,Qi-1) est solution de x² - Dy² = -m. Si x² - Dy² = -1 a une solution (r,s) (primitive) alors (Pi-1,Qi-1)o(r,s) est solution de x² - Dy²=m. Ajouter (Pi-1,Qi-1)o(r,s) = (Pi-1r + Qi-1sD, Pi-1s + Qi-1r) |
toutes ces solutions étant indépendantes et donnant donc 6 familles de solutions par combinaison avec la solution (649,180)n de x² - 13y² = 1