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}\)

\[\Gamma(s) = \cM[e^{-t};s]\]

et on a

\[\Gamma_\R(s)n^{-s} = \cM[e^{-\pi n^2t};s]\]

Si on écrit \(\Lambda(s) = \Gamma_\R(s)\zeta(s)\), on peut donc faire rentrer la somme dans l’intégrale et on obtient

\[\Lambda(s) = \int_0^\infty (\sum_{n\geq 1} e^{-\pi n^2t}) t^{\frac s2}\frac{\dt}t\]

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

\[\Theta(t) = \sum_{n\in\Z} e^{-\pi n^2t} = 1+2\omega(t).\]

on a alors en appliquant la formule de Poisson, et puisque la Gaussienne est invariante par transformée de Fourier,

Proposition

\[\Theta(\frac1t) = \sqrt{t}\Theta(t)\]

Démonstration

Soit \(f(x)=e^{-(\frac{x}{a})^2}\) la Gaussienne, sa transformée de Fourier

\[\hat f(y) =\int_\R f(x)^{-2i\pi xy}\d x = \sqrt{\frac{\pi}{a^2}}e^{-\pi(ay)^2}\]

Pour \(a=\frac{1}{\sqrt{\pi t}}\) on obtient

\[\hat f(y)=\sqrt{t}e^{-\frac{\pi}ty^2}\]

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

\[\gamma\cdot z = \frac{az+b}{cz+d}\]

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

\[(f\mid_k\gamma)(z) = (cz+d)^{-k}f(\gamma\cdot z)\]

Proposition

\[(f\mid_k\gamma_1)\mid_k\gamma_2 = f\mid_k(\gamma_1\gamma_2)\]

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

\[\Gamma_0(N) = \set{\gamma\in\SL_2(\Z), \gamma \equiv\mmat**0*\mod N}\]

Définition

Une forme modulaire de niveau \(N\) et de poids \(k\) est une fonction holomorphe \(f:\H\to\C\) telle que

\[f\mid_k\gamma = f \text{ pour tout }\gamma\in\Gamma_0(N)\]

(+ 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

\[f(z) = \sum_{n\geq0} a_n q^n, \text{ où } q=e^{2i\pi z}.\]

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

\[E_k(z) = \frac{1}{\zeta(2k)}\sum_{m,n\in\Z^2}'\frac{1}{(mz+n)^k}\]

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 = \frac{E_4^3-E_6^2}{1728}\]
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

\[L(f,s) = \sum_{n\geq 1}\frac{a_n}{n^s}\]

Alors \(L\) est la transformée de Mellin de \(f\).

Proposition

\[\Lambda(f,s) = \cM[f(it),s] = (2\pi)^{-s}\Gamma(s)L(f,s)\]

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

\[i^{-k}e^{\frac -k2u}f(ie^{-u}) = e^{\frac k2u}f(ie^u)\]

en écrivant \(s=\frac{k}2+ix\), on a

\[\begin{aligned} \Lambda(\frac k2+ix) &= \int_0^\infty f(it)t^{\frac k2+ix}\frac{\dt}t\\ &= \int_\R f(ie^u)e^{\frac k2u}e^{iux}\d u\\ &= \int_\R f(ie^u)e^{\frac k2u}e^{iux}\d u\\ &= i^{-k}\int_\R f(ie^{-u})e^{-\frac k2u}e^{iux}\d u\\ &= i^{-k}\Lambda(\frac k2-ix) \end{aligned}\]

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ù

\[(T_p f)(z) = \frac1p\sum_{i=0}^{p-1}f(\frac{z+i}p) +p^{k-1}\chi_N(1,p)f(pz)\]

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)

\[S_k(N) = \set{f\in M_k(N), \forall \gamma, f\mid_k\gamma(\infty)=0}\]

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

\[f = f\mid_k\mmat{-1}00{-1} = (-1)^kf\]

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é

\[\eta(z)^{24} = \Delta(z)\]

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

\[T_n(f) = \sum_m \left( \sum_{d\mid m\wedge n}d^{k-1}a(\frac{mn}d^2)\right)q^m\]

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

\[S_k(N) = S_k(N)^{\text{old}}\oplus S_k(N)^{\text{new}}\]

\(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

\[\Lambda(f,s) = N^{\frac s2}\Gamma_\R(s)\Gamma_\R(s+1)L(f,s) = (-1)^{\frac k2}\epsilon \Lambda(f,k-s)\]

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)