Nombres congruents¶
Définition¶
Définition
Un nombre entier \(n\) est dit congruent si c’est l’aire d’un triangle rectangle de côtés \((a,b,c)\) rationnels.
Autrement, dit, \(n\) est congruent si et seulement si il existe \(a,b,c\in\Q\) tels que
Par exemple, le triangle rectangle de côtés \((3,4,5)\) est d’aire \(n=6\), qui est donc un nombre congruent. \(n=5\) est également congruent, via le triangle \((\frac{3}2, \frac{20}3, \frac{41}6)\) (cette fois il est nécessaire de passer par des longueurs rationnelles).
Dans cet exposé, on va essayer de répondre à deux questions :
quels sont les nombres congruents ?
si un entier \(n\) est congruent, peut-on déterminer un triangle rationnel dont c’est l’aire.
On va voir que l’on peut apporter des réponses très distinctes à ces deux questions, et qui font appel à de très belles théories arithmétiques. Bien que raisonnablement satisfaisantes, ces réponses pour être vraiment complètes nécessiteraient chacune la démonstration d’une des plus grande conjecture de théorie des nombres, la conjecture de Birch et Swinnerton-Dyer.
Premier paramétrage¶
Comme multiplier les longueurs par \(d\) multiplie l’aire par \(d^2\), il suffit de considérer les nombres congruents sans facteurs carrés.
Triplets pythagoriciens¶
On s’intéresse d’abord aux rationnels satisfaisant \(a^2+b^2=c^2\).
En posant \(u=\tfrac ac\) et \(v=\tfrac bc\), il s’agit des points rationnels du cercle \(u^2+v^2=1\). En posant \(\tan(θ)=\tfrac uv\) et \(t=\tan(θ/2)\), les formules trigonométriques classiques nous donnent le paramétrage
où dans l’autre sens on retrouve \(t=\frac{1-u}v=\frac{v}{u+1}\).
Proposition
On a une bijection
d’inverse \((t,c)=(\frac{c-a}{b},c)\).
Par ce paramétrage, les triangles \(a,b,c>0\) correspondent aux points \(t,c\) tels que \(0<t<1\) et \(c>0\).
Un algorithme d’énumération¶
En écrivant \(t=\frac{l}k\) et en chassant les dénominateurs, on obtient le paramétrage suivant des triangles à côtés entiers
on peut alors tenter de chercher les nombres congruents par énumération des entiers \(k>l\), en regardant l’aire obtenue modulo les facteurs carrés.
findcong(n,B=800) = { for(k=1,B, for(l=1,k-1, A = k*l*(k^2-l^2); if(core(A)==n, d = sqrtint(A/n); return([k^2-l^2,2*k*l,k^2+l^2]/d)) ));[]; }
findcong(5)
findcong(7)
findcong(13)
Une courbe elliptique¶
On rajoute à présent la condition d’aire \(ab=2n\).
On obtient \(c^2\frac{(1-t^2)(2t)}{(1+t^2)^2}=2n\), soit en posant \(y=\frac{1+t^2}{c}\) et \(x=-nt\), un point \((x,y)\) sur la courbe
Réciproquement, un point \((x,y)\) fournit un triangle, et on aura \(a,b,c>0\) à condition que \(y>0\) et \(x<0\) (sinon il suffit de prendre des valeurs absolues pour avoir un triangle valide).
Proposition
Soit \(n\) un entier. On a une bijection entre les ensembles de rationnels
abc2xy(a,b,c)=n=a*b/2;[n*b,2*n^2]/(c-a); xy2abc(x,y)=issquare(x^2-y^2/x,&n);[x^2-n^2,2*n*x,x^2+n^2]/y;
Or \(E_n(\Q)\) est une courbe elliptique ; si \(n\) est congruent, on dispose d’une loi de groupe sur les triangles correspondants.
Par exemple, on avait obtenu par énumération le triangle d’aire \(n=7\) et de côtés
[a,b,c] = [35/12, 24/5, 337/60]
on a donc un point \(P\) sur la courbe elliptique \(E_{7}(\Q)\)
E = ellinit([-7^2,0]) P = abc2xy(a,b,c)
ellisoncurve(E,P)
Et on peut surtout obtenir d’autres points en utilisant la loi de groupe
P=elladd(E,P,P)
On peut également utiliser Pari/GP pour retrouver des points sur la courbe, quand celle-ci fait partie de la famille de courbes répertoriées par Cremona.
pt(n)=ellgenerators(ellinit([-n^2,0])) \\ y^2=x^3+(-n^2)*x+0 pt(5)
%1 = [[-4, 6]]
et en effet
xy2abc(-4,6)
On se rend compte que les points deviennent vite gigantesques
pt(61)
%1 = [[-10227204/198025, -20556753594/88121125]]
Et après ?
Si la courbe n’est pas dans les tables précalculées, il existe cependant une fonction qui permet d’en déterminer un point rationnel.
ellheegner(ellinit([-157^2,0]))
Théorème
Le triangle de côtés
a = 411340519227716149383203 / 21666555693714761309610,
b = 6803298487826435051217540 / 411340519227716149383203,
c = 224403517704336969924557513090674863160948472041 / 8912332268928859588025535178967163570016480830
est un triangle rectangle d’aire \(n=157\). Et c’est le plus petit.
C’est le contenu de cette fonction ellheegner
et un morceau des théories magnifiques
qu’il y a derrière que l’on va esquisser à présent.
Rang et nombres congruents¶
Les points d’une courbe elliptique forment un groupe abélien de type fini :
Théorème de Mordell
En notant \(E_n(\Q)_{\text{tors}}\) les points d’ordre fini, il existe un entier \(r\geq0\), appelé rang, tel que
\(E_n(\Q)\) possède toujours au moins quatre points qui sont d’ordre fini : \(\infty\), et les quatre points d’ordre 2 \((-1,0), (0,0), (1,0)\). Aucun de ces points ne fournit de nombre congruent. Il se trouve que la courbe ne peut avoir d’autre points d’ordre fini.
Lemme
On a donc
Théorème
La courbe elliptique \(E_n(\Q)\) possède des points \((x,y)\) avec \(y\neq0\) si et seulement si elle est de rang \(r>0\).
Il reste à déterminer quand cela se produit, et dans ce cas à exhiber des points générateurs.
La magie des fonctions L va rentrer dans le jeu, et permettre de résoudre ce problème de points sur \(\Q\) en passant par les réductions \(E_n(\F_p)\).
Fonction L¶
Définition
On pose
où \(\delta(p)=1\) si \(p\nmid 2n\) et \(0\) sinon, et \(a_p\) est défini par
Dans le cas des courbes \(E_n\), ces fonctions L obéissent à l’équation fonctionnelle suivante.
Théorème
Soit \(N=16n^2\) si \(n\) est impair, et \(N=32n^2\) sinon. On pose
Alors
où \(\epsilon=1\) si \(n=1,2,3[8]\) et \(\epsilon=-1\) si \(n=5,6,7[8]\).
Une des plus fameuses conjecture de théorie des nombres énonce que le rang d’une courbe elliptique sur \(\Q\) influence très précisément le comportement des réductions modulo \(p\), et que ce lien se lit dans le comportement en \(s=1\) de la fonction \(L\).
Conjecture BSD (Birch et Swinnerton-Dyer)
\(E_n(\Q)\) est de rang égal à l’ordre d’annulation de \(L(E,s)\) en \(s=1\).
Dans le cas des courbes \(E_n\), le cas du rang 0 a été démontré dans les années 1980
Théorème (Coates-Wiles)
Si \(L(E_n,1)\neq0\), alors \(E_n(\Q)\) est fini, donc \(n\) n’est pas un nombre congruent.
Cardinaux modulo p¶
Proposition
Notons \(\chi=\kronecker{\cdot}{p}\), de sorte que \(\chi(x)=1\) si et seulement si \(x\) est un carré modulo \(p\).
Alors
Ainsi \(a_p = -\sum_x\chi(x^3-n^2x)\). On calcule les premières valeurs
card(n,np)=[-sum(x=1,p-1,kronecker(x^3-n^2*x,p)) | p <- primes(np)] card(3,20)
card(5,20)
On se rend vite compte de deux choses
\(a_n(p)=0\) si \(p=3[4]\)
quand \(n\) varie, \(a_n(p)\) se contente de changer de signe, ou s’annule si \(p\mid n\).
Et en effet, on a :
Proposition
et \(a_n(p)=0\) si \(p=2\) ou \(p=3[4]\).
Démonstration
Par multiplicativité, \(\chi(x^3-n^2x)=\chi(nx^2)\chi(x/n-n/x)\), et \(n\) étant inversible \(\sum_x=\sum_{x/n}\).
Enfin, \(a_n(p)=\sum_x\chi(1/x-x)=\chi(-1)a_n(p)\) est nul dès que \(-1\) n’est pas un carré, quand \(p=3[4]\).
On se ramène donc à calculer uniquement les valeurs \(a_1(p)\) pour la courbe \(E_1:y^2=x^3-x\).
Il se trouve que cette courbe est à multiplication complexe par \(\Z[i]\), c’est-à-dire que l’on a un isomorphisme
sans rentrer dans les détails, une très belle théorie permet de dire que pour tout \(p>2\), les endomorphismes des réductions \(E(\F_p)\) correspondent aussi à des éléments de \(\Z[i]\), en particulier le morphisme de Frobenius qui permet de caractériser les points de \(\F_p\), et qui va correspondre à un élément \(a+ib\in\Z[i]\) tel que \((a+ib)(a-ib)=a^2+b^2=p\).
Théorème (Deuring)
Soit \(p>2\), \(\End(E_1(\overline{\F_p}))=Z[i]\) et il existe \(\pi\in\Z[i]\) tel que \(p=\pi\bar\pi\) et
En passant par ce raccourci de la multiplication complexe, on a le résultat suivant, où le critère de choix de \(a\) est spécifique à la courbe \(E_1\) :
Théorème
Soit \(p\equiv 1\bmod 4\). Si l’on écrit \(p=a^2+b^2\) avec \(a\) impair, alors \(a_1(p) = \pm2a\). De plus, le signe de \(a\) est tel que \(a\equiv b+1\bmod4\).
Ainsi, on sait calculer très facilement le coefficient \(a_n(p)\) en résolvant l’équation \(p=a^2+b^2\) et en multipliant par le symbole de Jacobi.
Une q-série¶
On peut aussi déterminer la forme modulaire correspondant à \(L\), et ici
Lemme
Développer cette forme modulaire permet de calculer beaucoup plus rapidement les coefficients \(a_n\).
Valeur en 1¶
La valeur de la fonction \(L\) en 1 s’intègre en l’expression suivante :
Proposition
Il est clair que \(L(E,1)=0\) dès que \(ε=-1\), c’est-à-dire pour \(n=5,6,7\bmod 8\). On s’attend donc à ce que tous ces entiers soient congruents.
En revanche, si \(\epsilon=1\), il faut faire le calcul et guetter numériquement les annulations
myellL1(e) = { my(N=ellglobalred(e)[1]); my(a=2*Pi/sqrt(N)); my(K=ceil(precision(1.)*log(10)/a)); my(v=ellan(e,K)); my(q=exp(-a)); my(s=0); forstep(k=K,1,-1,s=s*q+v[k]/k); 2*q*s; }
iscong(n) = issquarefree(n)&&(n%8>4||abs(ellL1(ellinit([-n^2,0]),0))<1e-20); L = select(n->iscong(n),[1..100])
La plupart des nombres correspondent aux classes modulo 8, mais il existe d’autres entiers.
Set(L%8)
select(n->n%8<5,L)
On a donc réussi à obtenir un critère permettant de décider rapidement si un entier donné est congruent, mais on n’a pas de règle systématique.
Le critère de Tunnell¶
En 1983, utilisant un théorème de Waldspurger qui prévoit que les valeurs \(L(E_n,1)\) se retrouvent dans les coefficients d’une certaine forme modulaire de poids \(3/2\), Tunnell détermine explicitement cette forme et démontre le critère suivant
Théorème (Tunnell)
On pose
et
alors pour tout \(n\)
si \(n\) est impair, \(L(E_n,1)=0\) ssi \(a_n=0\).
si \(n=2m\) est pair, \(L(E_n,1)=0\) ssi \(b_m=0\).
En particulier, si \(a_n\neq 0\) alors \(n\) n’est pas congruent, et si \(b_n\neq 0\) alors \(2n\) n’est pas congruent. Et la réciproque est vraie sous BSD.
T(d,n) = 1+2*sum(k=1,sqrtint(n\d),q^(d*k^2)) g(n) = q*eta(q^8+O(q^(n+1)))*eta(q^16+O(q^(n+1))); A(n) = g(n) * T(2,n) B(n) = g(n) * T(4,n)
cong(n) = { AA = A(n); BB = B(n\2); v = vector(n,k,if(k%2,polcoeff(AA,k),polcoeff(BB,k/2))); \\ remove squares for(p=2,sqrtint(n),forstep(k=p^2,n,p^2,v[k]=1)); Vec(select(x->!x,v,1)); }
cong(3000)
La situation est désormais la suivante :
tout entier \(n\) sans facteur carré qui n’apparaît pas dans ces listes n’est pas congruent.
on pense que tout entier \(n\) dans la liste est congruent, d’après la conjecture BSD.
ce critère ne donne absolument pas de construction de triangle d’aire \(n\) quand on pense que \(n\) est congruent.
Calculs de points¶
Il reste désormais à répondre à la seconde question : exhiber un triangle d’aire \(n\) quand \(n\) apparaît dans la liste ci-dessus.
Une très belle technique va permettre d’y arriver quand le rang de la courbe est exactement 1.
Point de Heegner¶
Théorème de modularité
\(E_1\) est modulaire, c’est-à-dire que
\(f(τ)=\sum a_nq^n\) est une forme modulaire nouvelle (normalized newform) de poids 2 pour \(\Gamma_0(32)\)
l’application
\[\phi : τ \mapsto 2iπ\int_{i\infty}^τf(z)dz = \sum_n\frac{a_n}nq^n\]définit une paramétrisation modulaire
\[X_0(32) = \Gamma_0(32)\backslash\H \to^\phi \C/Λ \to^\wp E_1\]
On se place dans le cas où \(n\) est impair.
points de Heegner
Soit \(τ\in X_0(32)\) un point CM pour le discriminant \(n\), (par exemple \(τ=i\frac{\sqrt{2n}}8\) si \(n=5\bmod 8\)). Alors \(\phi(τ)\) appartient à \(E_1(H(n))\), le corps de classe de Hilbert de \(K=\Q(\sqrt{n})\).
Comme on sait expliciter \(\Gal(H(n)/K)=\Cl(K)\) et son action, on peut déterminer en moyennant sur les automorphismes de Galois un point \(\sum_\sigma P^\sigma \in E_1(K)\).
Ainsi, on a un point sur \(E_1(K)\), donc sur \(E_n(\Q)\).
Reconstruction rationnelle¶
Mais ce point est calculé par une approximation réelle. Il reste à reconnaître les coordonnées rationnelles…
Par exemple pour \(E_{157}\), un calcul à 38 décimales donne le point
P = [419.22806532474230298887443119678153609, 7959.0633833662364857658880430407789399]
En utilisant les fractions continues (fonction bestappr
), on sait
déterminer des fractions correspondant aux approximations de \(P\), si l’on
donne une borne sur le dénominateur.
bestappr(P,10^20)
On peut changer la borne sur le dénominateur autant qu’on veut, dans le cas présent on n’y arrivera jamais : l’approximation est trop faible par rapport à la taille du résultat.
Il faut savoir à quoi s’attendre, avoir une idée de la taille des fractions cherchées ; pour cela, on refait appel à la fonction L :
Gross-Zagier
Si \(E_n\) est de rang 1, la hauteur du point générateur \(P\) est proportionnelle à la valeur \(\sqrt{n}L'(E_n,1)\).
Ainsi, on sait à quelle précision faire les calculs.
La fonction ellheegner
de Pari/GP automatise tout ce processus.
default(timer, 1) ellheegner(ellinit([-157^2,0]))
Pour l’entier \(n=2447\), il faut une demi-heure pour déterminer le point
[x,y]={ [350693469184854653527716377000788632990404242854816553018105661841 8840587279849293964559746855920734893438685551897449630051750511026 3845573943345925791575222308091183780551030734982254124197768484316 5100350225/13645475420582990148631664111827720499227532142435909077 5549925120976545834350303794654807284889017894097927130284071187898 8702403402399593806848603481686021401082369725765355290916961440995 3935335430768161, 2067349961237536737356726176424520692020766646283924737500818390397 9722089544446555697255706756665478681738895263131781840980125989682 2422610823804268527843638773667824276518192754449761901587370755704 0412855548413621902483916103904783126495706590656756453214755381193 49599228098340541037210648463396111275831353840/5040608961606801893 4121493559572408132635815306768223473789544002849020205384496375301 4762761088928511592919601929224917585366459829839123453738363429982 3947115175455263533997697471439049024951266305588954634450833770192 9873303246517876878085001989673933742249476468476150379579299967333 786580369880077774159] }
qui correspond au triangle, suivant, où \(a\) et \(b\) sont des fractions dont les numérateurs et dénominateurs ont plus de 200 chiffres (et \(c\) de l’ordre de 400 chiffres).
xy2abc(x,y)