Formes modulaires¶
Il y a beaucoup de fonctions disponibles pour jouer avec les formes modulaires., ce qui reflète la richesse de la théorie.
?mf
mfDelta mfeigenbasis mfnumcusps
mfEH mfeigensearch mfparams
mfEk mfeisenstein mfperiodpol
mfTheta mfembed mfperiodpolbasis
mfatkin mfeval mfpetersson
mfatkineigenvalues mffields mfpow
mfatkininit mffromell mfsearch
mfbasis mffrometaquo mfshift
mfbd mffromlfun mfshimura
mfbracket mffromqf mfslashexpansion
mfcoef mfgaloisprojrep mfspace
mfcoefs mfgaloistype mfsplit
mfconductor mfhecke mfsturm
mfcosets mfheckemat mfsymbol
mfcuspisregular mfinit mfsymboleval
mfcusps mfisCM mftaylor
mfcuspval mfisequal mftobasis
mfcuspwidth mfkohnenbasis mftocoset
mfderiv mfkohnenbijection mftonew
mfderivE2 mfkohneneigenbasis mftraceform
mfdescribe mflinear mftwist
mfdim mfmanin
mfdiv mfmul
Ici on va avoir une perspective très étroite : se demander comment faire des fonctions L avec les formes modulaires.
Retour sur l’équation fonctionnelle de zeta¶
La première forme modulaire nous est fournie par la fonction zeta, elle apparaît dans la preuve de l’équation fonctionnelle qu’en donne Riemann.
Lemme
La fonction Gamma est la transformée de Mellin de la fonction \(e^{-t}\)
et on a
Si on écrit \(\Lambda(s) = \Gamma_\R(s)\zeta(s)\), on peut donc faire rentrer la somme dans l’intégrale et on obtient
En d’autres termes, \(\Lambda(2s)\) est la transformée de Mellin de la fonction \(\omega(t) = \sum_{n\geq1} e^{-\pi n^2t}\).
Pour plus de symétrie, on pose
on a alors en appliquant la formule de Poisson, et puisque la Gaussienne est invariante par transformée de Fourier,
Proposition
Démonstration
Soit \(f(x)=e^{-(\frac{x}{a})^2}\) la Gaussienne, sa transformée de Fourier
Pour \(a=\frac{1}{\sqrt{\pi t}}\) on obtient
La formule de Poisson \(\sum_{n\in\Z}f(n)=\sum_{n\in\Z}\hat f(n)\) fournit l’équation fonctionnelle.
En faisant le changement de variable \(1/t\) dans l’expression de \(\Lambda\), on en déduit l’équation fonctionnelle de zeta (il faut faire un peu attention à cause des pôles).
Mieux, cette équation est équivalente à l’équation fonctionnelle de zeta.
Une première forme modulaire¶
\(\Theta(t)\) converge dès que \(\re(t)>0\). On fait une rotation du domaine en posant \(\theta(z)=\Theta(-iz)\), si bien que \(\theta\) est définie sur le demi-plan supérieur \(\H=\set{x+iy,y>0}\).
On a alors deux équations fonctionnelles vérifiées par \(\theta\)
\(\theta(z) = \theta(z+2)\)
\(\theta(-1/z) = \sqrt{-iz}\theta(z)\)
La première est liée au fait que c’est une série en \(e^{i\pi}\), et la seconde est la symétrie de Fourier.
Le but des formes modulaires est de généraliser cette situation, en trouvant des fonctions très symétriques sur \(\H\).
Définition¶
Pour \(z\in H\) et \(\gamma\in\SL_2(\Z)\), on pose
On a par exemple \(z+2 = \mmat1201\cdot z\) et \(\frac{-1}z=\mmat0{-1}10\cdot z=\mmat0{-1}10\cdot z\).
Définition
Si \(f:\H\to\C\), et \(\gamma=\mmat abcd\in\SL_2(\Z)\), on note
Proposition
Pour la fonction \(\theta\), on a donc
\(\theta\mid_k\mmat1201=\theta\) (pour tout \(k\))
\(\theta\mid_{\frac12}\mmat0{-1}{1}0(z)=\frac{\theta(-1/z)}{\sqrt{z}}=\zeta_8^{-1}\theta(z)\)
Et ces deux propriétés correspondent respectivement au développement en série et à l’équation fonctionnelle de \(\theta\).
Pour généraliser, on pose
Définition
Soit \(N\geq 1\), on appelle
Définition
Une forme modulaire de niveau \(N\) et de poids \(k\) est une fonction holomorphe \(f:\H\to\C\) telle que
(+ holomorphe (croissance modérée) à l’infini et aux pointes).
On note \(M_k(N)\) l’espace vectoriel de ces formes.
En particulier, \(\theta\) ressemble à une forme de poids \(1/2\), et elle n’est pas de niveau 1 puisqu’il y a une constante quand on transforme par \(\mmat0{-1}{1}0\).
f = mfTheta()
Il se trouve qu’elle est de niveau \(N=4\).
mfparams(f)
On vérifie l’invariance
mf = mfinit([4,1/2]); z = Pi + Euler * I; [ mfeval(mf,f,z), mfeval(mf,f,z+2), mfeval(mf,f,z/(4*z+1))/sqrt(4z+1) ]
Développement en série
Puisque \(\mmat1101\in\Gamma_0(N)\) pour tout \(N\), une forme modulaire \(f\in M_k(N)\) vérifie \(f(z+1)=f(z)\), donc est développable en série de Fourier.
On peut écrire
On appelle les \(a_n\) les coefficients de \(f\).
On vérifie que \(\theta\) est bien la fonction qu’on pense
mfcoefs(f,20)
Exemples de formes modulaires¶
Si on veut des fonctions invariantes par \(\SL_2(\Z)\), une bonne idée est de considérer des séries où l’on somme sur \(\Z^2\), puisque \(\Z^2\) est invariant par \(\SL_2(\Z)\).
Les séries d'Eisenstein.
Pour \(k>2\) pair
Ce sont des formes modulaires de poids \(k\) et de niveau \(1\).
mfparams(mfEk(4))
Leurs coefficients sont les sommes de diviseurs
mfcoefs(mfEk(4),20)
Ces séries sont en quelque sorte les briques de base, on les a normalisées pour que \(a_0=1\).
Les formes modulaires se multiplient (les poids s’additionnent) et s’ajoutent en même poids. On utilise cela pour fabriquer une première forme qui s’annule en l’infini.
La fonction Delta
Delta = mfDelta()
f2 = mflinear([mfpow(mfEk(4),3),mfpow(mfEk(6),2)],[1,-1]/1728)
mfisequal(Delta,f2)
mfparams(Delta)
C’est aussi une forme modulaire de niveau 1, donc invariante par \(\SL_2(\Z)\) tout entier.
En particulier \(z^{12}\Delta(-\frac1z)=\Delta(z)\).
M36=mfinit([3,6]); E6=mfEk(6) [g1,g2,g3,g4] = mfcosets(3) mfslashexpansion(M36,E6,g1,10,1) mfslashexpansion(M36,E6,g2,10,1) mfslashexpansion(M36,E6,g3,10,1) mfcoefs(E6,3)
Premières fonctions L¶
Soit \(f\) une forme modulaire telle que \(a_0=0\), on pose
Alors \(L\) est la transformée de Mellin de \(f\).
Proposition
Note
prendre f(it/N) ?
Si on n’avait pas pris \(a_0=0\) cela aurait divergé : les \(E_k\) ne donnent pas de série de Dirichlet.
Dans le cas du niveau \(N=1\), comme pour \(\Delta\), on trouve facilement une équation fonctionnelle.
En effet, \(z^{-k}f(\frac{-1}z)=f(z)\), en particulier pour \(z=ie^u\) on a
en écrivant \(s=\frac{k}2+ix\), on a
Bon, pour voir
mf = mfinit([1,12]); L = lfunmf(mf,mfDelta())
Linit = lfuninit(L,[30]); ploth(t=0,30,lfunhardy(Linit,t))
Deux remarques :
l’équation fonctionnelle est due (ici) à l’invariance par \(\mid_k\mmat0{-1}10\). Donc pour l’instant ça ne marche que pour des formes de niveau 1.
le calcul montre que \(\Lambda(\frac k2+x)\) est la transformée de Fourier sur \(\R\) de \(f(ie^u)\). C’est cela qui est utilisé pour faire les calculs numériques, puisque les formes modulaires s’évaluent efficacement.
Il reste donc à comprendre :
comment obtenir un produit Eulérien
comment obtenir une équation fonctionnelle en poids plus grand.
Pour cela, on a besoin de la théorie de Hecke, qui met de la structure sur les espaces de formes modulaires.
Produit Eulérien¶
On a \((2\pi)\Gamma(s)=\Gamma_\R(s)\Gamma_\R(s+1)\), donc la fonction \(L\) d’une forme modulaire est de degré 2.
Si on veut un produit eulérien en degré 2, et pour une fonction \(L\) de conducteur \(N\) et de poids \(k\), cela impose sur \(f(z)=\sum a(n)q^n\) les relations suivantes
si \(p\nmid N\),
\[\sum_k a(p^k) T^k = \frac{1}{1-a(p)T+p^{k-1}T^2}\]si \(p\mid N\),
\[\sum_k a(p^k) T^k = \frac{1}{1-a(p)T}\]
Hecke
Soit \(f\in M_k(N)\), telle que \(a(0)=0\) et \(a(1)=1\). La relation ci-dessus est satisfaite si et seulement si \(T_p f = a(p)f\), où
L’application \(T_p\) ci-dessus est appelée opérateur de Hecke.
La théorie de Hecke consiste à utiliser l’algèbre linéaire sur \(M_k(N)\) pour construire des formes modulaires ayant un produit eulérien.
Structure des espaces de formes modulaires¶
Théorème
Pour tous \(k,N\), \(M_k(N)\) est un espace vectoriel de dimension finie. On note le sous-espace des formes nulles aux pointes (cuspidales)
On sait calculer facilement les dimensions.
for(N=1,10,print([mfdim([N,k])|k<-[0..10]])) \\ dim M_k(N)
Le fait que \(\dim=0\) pour \(k\) impair vient de l’équation
Pour calculer un espace de formes modulaires, on utilise
mfinit([N,k])
. Donnons une base de quelques formes
mfcoefs(mfinit([3,6]),10)~
En poids pair \(k\geq4\), il y a toujours une dimension due à la série d’Eisenstein.
Relations¶
Le fait que les dimensions sont petites est une magie des formes modulaires, et la raison pour laquelle elles apparaissent tout le temps en combinatoire.
Par exemple, prenons \(f(z) = \eta(z)^24=q\prod(1-q^n)^24\).
f = mffrometaquo([1,24])
mfparams(f)
C’est une forme de niveau 1 et de poids \(12\). Or la dimension de cet espace est \(2\), engendré par \(E_{12}\) et \(\Delta\).
mfcoefs(mfinit([1,12]),10)
Ce calcul démontre l’identité
Il y a moins de formes cuspidales, en général on s’attend à perdre une dimension par pointe.
for(N=1,10,print([mfdim([N,k],1)|k<-[0..10]])) \\ dim S_k(N)
Opérateurs de Hecke¶
On peut définir des opérateurs plus généraux que les \(T_p\).
Définition
Soit \(f(z)=\sum_{n\geq 0} a(n)q^n\), on pose
Alors - \(T_n\) est un endomorphisme de \(M_k(N)\) qui stabilise \(S_k(N)\). - les \(T_n\) commutent entre eux
On a donc une algèbre d’opérateurs qui agissent sur \(M_k\) et \(S_k\).
En particulier, l’opérateur \(T_n\) contracte les coefficients. Un exemple
mf = mfinit([96,2]); L = mfbasis(mf); mfcoefs(L[12], 14)
mfcoefs(L[14], 14)
Ces formes ont l’air de différer de 1,
f = mflinear([L[14],L[12]],[1,-1]); mfcoefs(f, 50)
g = mfhecke(mf, f, 24); mfcoefs(g, 14)
24*mfcoefs(L[5], 14)
Théorème
Il existe un produit scalaire hermitien sur \(S_k(N)\), pour lequel les opérateurs \(T_p\) sont autoadjoints.
Donc il existe une base formes modulaires qui sont des vecteurs propres de chacun des \(T_p\).
Diagonalisation¶
Avec un ordinateur, il est facile de diagonaliser.
mf = mfinit([96,4], 0); M = mfheckemat(mf, 7)
P = charpoly(M)
factor(p)
On voit ici qu’il y a 6 valeurs propres de multiplicité 1, donc 6 formes propres.
Puisqu’elles sont vecteurs propres de \(T_7\) et qu’il existe une base formée de vecteurs propres, ce sont automatiquement des vecteurs propres de tous les autres opérateurs de Hecke !
Formes nouvelles¶
Comme pour les caractères de Dirichlet, il faut définir le conducteur d’une forme.
Proposition
Si \(M\mid N\), on a \(\Gamma_0(N)\subset \Gamma_0(M)\), et donc on a \(M_k(M)\subset M_k(N)\).
On appelle old form de niveau \(N\) une forme modulaire qui est combinaison linéaire de formes de niveau plus petit.
On a une décomposition orthogonale
où \(S_k(N)^{\text{new}}\) est l’espace vectoriel des newforms de niveau \(N\).
Ce sont elles qui fournissent des fonctions \(L\) de conducteur \(N\).
Involution d’Atkin Lehner¶
Pour finir la construction d’une fonction \(L\), il reste à trouver une équation fonctionnelle, c’est-à-dire à généraliser l’invariance par \(\mmat0{-1}10\) en niveau \(N\).
Proposition
On note \(w_N = \mmat0{-1}N0\) et \(w_Nf(z) = f(\frac{-1}{Nz})\). Alors
\(w_N\) est un endomorphisme de \(S_k(N)\)
\(w_N\) commute aux opérateurs de Hecke
\(w_N\) est une involution, \(w_N^2=1\). En particulier, un vecteur propre vérifie \(w_Nf=\pm f\).
Théorème
Si \(f\in S_k(N)\) vérifie \(w_Nf= \epsilon f\), alors
Bilan¶
Soit \(f\in M_k(N)\) une forme modulaire
\(f\) a un développement de Fourier \(f(z)=\sum_n a(n)q^n\)
si \(f\) est cuspidale, on a un développement en série de Dirichlet et une fonction \(L(f,s)\) obtenue par transformée de Mellin
si \(w_Nf = \pm f\), on a une équation fonctionnelle \(\Lambda(f,s) = (-1)^{\frac k2}\epsilon \Lambda(f,k-s)\) et un prolongement analytique à \(\C\).
si \(f\) est nouvelle et propre pour les opérateurs de Hecke, on a un produit eulérien.
Pour trouver de telles formes, il suffit de trouver des vecteurs propres des opérateurs de Hecke, ce qui est un problème d’algèbre linéaire une fois que l’on sait manipuler les espaces de formes modulaires.
mf = mfinit([96,2],0); /* newspace*/ eig = mfeigenbasis(mf); #eig
L = lfunmf(mf,eig[1])
Linit=lfuninit(L,[30]); ploth(t=0,30,lfunhardy(Linit,t))
lfunzeros(Linit,10)
E = ellinit([0, 1, 0, -2, 0]); lfunzeros(E,10)
[S,f,v] = mffromell(E); f
mfparams(f)