Ovifonctions

Mon objectif est de bricoler une famille de fonctions \( (f_n)_{n \in \mathbb{N}^*} \), où chaque \( f_n \) en quelque sorte illustre l'entier \( n \) ; notamment le graphe de \( f_n \) doit permettre de compter les diviseurs de \( n \) ; et si \( n \) est un nombre premier, cela doit se voir.

1) Premier ingrédient : un support doublement périodique

La première chose dont je vais avoir besoin est approximativement ceci : une palette en carton pour transporter des oeufs !

En termes mathématiques, je construis une fonction \( \phi \)

Voici des choix qui conviennent :

\[ \phi_0(x, y) = \frac{\sin^2(\pi x) + \sin^2(\pi y)}{2} \]

(et ses multiples > 0)

\[ \phi_1(x, y) = 1-\cos^2(\pi x) \cos^2(\pi y) \]

(et ses multiples > 0)

n'importe quel barycentre à coefficients positifs des deux précédents, i.e.

\[ \phi_k = (1-k) \phi_0 + k \phi_1 \]

avec \( k \in [0,1] \)

(et ses multiples > 0)

Image ci-contre : \( k = 1/2\)

2) Deuxième ingrédient : une hyperbole projetée

Prenons un marqueur et traçons sur notre carton (= sur le paysage de la représentation 3D de \( \phi \) ) les points satisfaisant l'équation \( x y = n \), où \( n \) est un entier naturel positif, et où \( x \) et \( y \) sont compris entre \( 1 \) et \( n \) ;

vu de dessus selon une projection orthogonale, cela revient à faire ceci (exemple \( n = 6 \) ) :

Un morceau d'hyperbole

posé sur

une carte coloriée selon les courbes de niveau de \( \phi \)

donne

le trajet d'un cycliste ?

Imaginer un cycliste partant d'une extrémité (A) du morceau d'hyperbole pour se rendre à l'autre (D) ; il devra parcourir creux et bosses d'altitudes variées. Vu en coupe (et ce bien que la coupe ne soit pas plane !) :

Sur ce trajet, on perçoit la notion de diviseur de \( n \) : le cycliste se trouve en \( (x, y) \) avec \( x \) entier et \( y \) entier, si et seulement si il se trouve à l'altitude \( z = \phi(x, y) = 0 \). C'est le cas par exemple en B, où \( x = 2, y = 3\), deux diviseurs associés de \( 6 \).

3) Troisième ingrédient : une paramétrisation de l'hyperbole

Exprimons la position sur l'hyperbole d'équation \( xy = n \) à l'aide d'un seul paramètre \( t \) et des équations paramétriques que voici :

\[ x = n^{\frac{1+t}{2}} \] \[ y = n^{\frac{1-t}{2}} \]

Déjà vérifier que cela fonctionne :

\[ xy = n^{\frac{1+t}{2}} n^{\frac{1-t}{2}} = n^{\frac{1+t}{2}+\frac{1-t}{2}} = n^{\frac{(1+t)+(1-t)}{2}} = \dots = n \]

OK. Quand \( t \) vaut \( -1 \) : \( x = 1 \) et \( y = n \). Quand \( t \) vaut \( +1 \) : \( x = n \) et \( y = 1 \). Autrement dit à \( t \) croissant, on parcourt l'hyperbole depuis en haut à gauche vers en bas à droite. Quand \( t = 0 \) : \( x = y = \sqrt{n} \) : on est à mi-chemin.

Cette paramétrisation a l'avantage de "normaliser" l'intervalle de définition : quel que soit \( n \), \( t \) parcourt \( [-1, 1] \), intervalle ne dépendant pas de \( n \).

De plus, on se place dans une optique de recherche des diviseurs \( d \) de \( n \). Que vaut \( t \) quand \( (x, y) = (d, n/d) \) ?

Réponse :

\[ t_d = 2 \frac{\ln d}{\ln n} - 1 \]

La même formule appliquée à \( n / d \) et non plus à \( d \) donne après simplifications :

\[ t_{n/d} = 1 - 2 \frac{\ln d}{\ln n} \]

On a donc la jolie propriété :

\[ t_{n/d} = - t_d \]

Pour conclure, cette paramétrisation est on ne peut plus naturelle pour faire jouer à \( d \) et \( n / d \) des rôles symétriques.

4) Définition des ovifonctions

On combine les ingrédients vus précédemment en définissant pour tout entier naturel \( n \) une fonction \( f_n \) de \( [-1, 1] \) vers \( \mathbb{R} \) que je baptise "l'ovifonction de \( n \)" :

\[ f_n(t) = \phi \left (n^{\frac{1+t}{2}}, n^{\frac{1-t}{2}} \right) \]

Par construction, hormis pour le cas \( n = 1\) qui est dégénéré, le nombre de zéros de \( f_n \) est égal au nombre de diviseurs de \( n \) ; \( n \) est premier si \( f_n \) atteint zéro exactement 2 fois.

Exemples avec \( \phi = \phi_0 \) :

\( n = 1 \) \( n = 2 \) \( n = 3 \) \( n = 4 \) \( n = 5 \)

 

\( n = 6 \) \( n = 7 \) \( n = 8 \) \( n = 9 \) \( n = 10 \)

 

\( n = 180 \)

 

Exemple avec \( \phi = \phi_1 \) :

\( n = 180 \)

 

Exemple avec \( \phi = \phi_1 \) en représentation polaire \( r = f_n(\theta / \pi) \), où \( \theta \in [-\pi, +\pi] \) - noter que l'on recolle les extrémités à l'ouest (\( -\pi \equiv + \pi \)) ce qui a pour effet d'amalgamer les pics de \( (1, n) \) et de \( (n, 1) \) :

\( n = 37 \)

Légende : pour 37, on n'atteint le centre qu'une fois, donc 37 est un nombre premier.

5) Variante plus graphique

Prenons \( \phi(x,y) = \cos^2(\pi x) \cos^2(\pi y) = 1 - \phi_1(x,y) \), ce qui (comparé à \( \phi_1 \) ) place les diviseurs de \( n \) non plus dans les "creux" ( \( 0 \) ) mais sur les "bosses" ( \( 1 \) ).

Appliquons par dessus une fonction qui "aiguise" les pics, i.e. qui envoie \( 0 \) sur \( 0 \) et \( 1 \) sur \( 1 \) mais qui contracte le reste de l'intervalle \( [0,1] \) vers la valeur \( 1/2 \). Une telle fonction (pour \( t \in [0, 1] \) ) :

\[ t \mapsto \frac{1}{\pi} \arcsin \left ( 2t - 1 \right ) + \frac{1}{2} \]

Envoyons ensuite l'intervalle \( [0,1] \) sur l'intervalle \( [1/2, 1] \) par une transformation affine. Enfin représentons le tout en coordonnées polaires et remplissons l'intérieur de la courbe fermée. Si vous avez bien suivi, cela donne :

\[ \phi(x,y) = \cos^2(\pi x) \cos^2(\pi y) \] \[ \forall \theta \in [ -\pi, \pi ], r \leq f_n\left ( \frac{\theta}{\pi} \right ) = \frac{1}{2 \pi} \arcsin \left ( 2 \phi\left( n^{(1+\theta/\pi)/2}, n^{(1-\theta/\pi)/2)} \right ) - 1 \right ) + \frac{3}{4} \]

Légende : les diviseurs de \( n \) sont matérialisés par les pics atteignant le cercle unité. Le pic orienté plein ouest compte double car représente tout à la fois \( 1 \) et \( n \).

Conclusion : on a commencé avec des oeufs mais on termine avec des oursins !

LR, 28/12/2022.