• Aucun résultat trouvé

a Méthodes utilisées et difficultés rencontrées

Chapitre I Relaxation autour d’un état Inhomogène

2.2. a Méthodes utilisées et difficultés rencontrées

Pour calculer la fonction de dispersion (I.22) et ses zéros, nous avons besoin en premier lieu d’évaluer les expressions intégrales suivantes12 :

∞ X m=−∞ Z mf′ 0(J) mΩ(J) − ω|cm(J)| 2dJ ∞ X m=−∞ Z mf′ 0(J) mΩ(J) − ω|sm(J)| 2dJ, (I.28) où cm(J) = Z π −π cos (θ(ξ, J)) eimξdξ, sm(J) = Z π −π

sin (θ(ξ, J)) eimξdξ, (I.29) et ξ =        π 2 F (Θ, k) K(1/k) si p ≥ 0 π 2  2 −F (Θ, k) K(1/k)  si p < 0

, où Θ satisfait k sin Θ = sin(θ/2), (I.30)

avec F l’intégrale elliptique de première espèce de Legendre, K l’intégrale elliptique com- plète de première espèce de Legendre et k le module associé, qui dépend dans notre cas de l’énergie du système et de la magnétisation de l’état stationnaire initial.

La principale difficulté dans le calcul de ces différentes intégrales réside dans les problèmes de convergence qui apparaissent aux bords des domaines d’intégration, ces problèmes étant généralement hérités des points singuliers des différentes fonctions elliptiques. Considérons par exemple les fonctions cm. Lorsque l’on utilise (I.29) et (I.30), nous pouvons montrer

que les coefficients cm s’écrivent d’une façon plus explicite en fonction du module k :

cm(J) = Z π −π  1 − 2k2sn2 2 πK(k)ξ, k  eimξdξ, (I.31)

avec sn la fonction elliptique de Jacobi définie par

sn (F (φ, k), k) = sin φ. (I.32)

Dans l’évaluation des intégrales (I.28), une des premières étapes est le calcul des fonctions cm(J). Or, bien que nous sachions que ces fonctions convergent lorque J tend vers Jmax

car sn(z, 1) = tanh(z) K(z) −→ z→1−= ∞, ) ⇒ cm(J) −→ J→J− max 0 si m 6= 0 (I.33)

cela semble de moins en moins évident lorsque la valeur de m devient élevée (voir fi- gure I.10). Par exemple pour m = 8, il faut regarder le comportement de c8(J) sur

[0,999 999 9 × Jmax, Jmax] pour observer sa décroissance vers zéro.

À cause de ces difficultés, nous avons été obligés d’abandonner notre première approche dans le calcul de la relation de dispersion. En effet, pour être le plus efficace possible, 12. Rappelons ici qu’en réalité la fonction de dispersion (I.22) n’est pas la vraie fonction de dispersion qui apparaît dans le modèle HMF. En réalité, à cause de l’inhomogénéité de l’état stationnaire f0, il

faut considérer plusieurs domaines distincts lors du changement de variables (θ, p) → (ξ, J) (voir figure

I.5). Pour simplifier ici, nous nous limitons à un domaine : le domaine intérieur à la séparatrice où les particules oscillent dans le système, i.e avec un angle toujours compris dans [0, 2π[. Le lecteur pourra se référer à l’article [BOY10] (article joint dans la partie5.1) pour plus de détails.

Figure I.10 – Représentation des coefficients cm pour m = 4, 6 et 8 en fonction de

la valeur de l’action J. La figure de gauche represente les coefficients cm sur l’intervalle

[Jmin, Jmax]. La figure du centre et celle de droite représentent différents zoom au voisinage

de J = Jmax de la première figure. Nous observons que plus la valeur de m augmente et

plus la convergence vers zéro de cm est lente.

l’utilisation de logiciels de calcul formel ou numérique pour réaliser les calculs semblait judicieuse. Cela permettait d’utiliser un ensemble de méthodes déjà implementées et tes- tées. Malheureusement, au vu des comportements asymptotiques rencontrés, la plupart des algorithmes étaient inefficaces. Soit ceux-ci prenaient un temps rédhibitoire, soit ils arrivaient à la conclusion que les fonctions n’étaient pas intégrables.

D’un autre côté, renoncer à ces logiciels impliquait de renoncer aux méthodes de calcul hautement efficaces déjà implémentées. Pour pallier à ce problème, nous avons utilisé une approche à mi-chemin. Nous avons effectué l’ensemble des calculs avec le langage de programmation C, tout en utilisant une bibliothèque de calcul scientifique longuement éprouvée : la bibliothèque libre “GNU Scientific Library” (GSL). Dès lors, nous avons uti- lisé deux algorithmes d’intégration à pas adaptatif, nommés QAG et QAGIU, basés sur la règle de Gauss-Kronrod disponible dans la bibliothèque. Bien sûr, nous avons rencontré les mêmes difficultés que celles survenues lors de l’utilisation de logiciels de calcul numé- rique, mais cette fois nous avons pu contourner les problèmes de divergence apparente. Un autre avantage de cette approche est qu’il nous a été très facile de jongler avec la précision des résultats et le temps de calcul nécessaire. Après de nombreux tests, nous avons montré qu’il suffisait :

– de calculer les expressions (I.28) pour m allant de −5 à 5 pour obtenir des résultats suffisamment précis,

– d’intégrer les équations sur [Jmin, Jmax−10−8] pour avoir des erreurs relatives d’ordre

10−4 sur les valeurs calculées.

Une fois les intégrales calculées qui nous donnent directement la fonction de dispersion ǫ(ω) dans le demi-plan supérieur ℑ(ω) > 0, il nous faut la prolonger dans le demi-plan inférieur. Pour cela, nous avons choisi de calculer les résidus associés pour satisfaire la prescription de Landau si besoin est. Remarquons qu’à notre connaissance il n’existe dans la littérature qu’un seul calcul similaire [Wei94, VW00]. L’auteur utilise des fractions rationnelles pour interpoler la fonction de dispersion dans le demi-plan inférieur. L’infor- mation obtenue est limitée au voisinage de l’axe ℑ(ω) = 0, ce qui ne sera pas le cas dans notre travail.

Pour calculer les résidus nous avons commencé par chercher les zéros J∗ C de mΩ(J)−ω

pour tous les couples (m, ω) ∈ Z × C. À ce titre, nous avons eu besoin de calculer les différentes intégrales elliptiques et fonctions elliptiques de Jacobi, ainsi que leur conti-

2. RELAXATION EN “TEMPS COURT” AUTOUR D’UN ÉTAT INHOMOGÈNE

nuation analytique dans tout le plan complexe. Pour cela, nous avons utilisé les fonctions thêta de Jacobi qui permettent de calculer plus simplement, dans le plan complexe, toutes les fonctions elliptiques déjà mentionnées. Nous ne détaillerons pas ici les expressions en termes de fonction thêta de Jacobi mais le lecteur intéressé pourra consulter les réfé- rences [Bul65, HR63, MH72,Mor78].

Avant toute chose, nous avons montré que pour tout couple (m, ω)∈ Z × C, il existait un ou plusieurs zéros J∗, avec la contrainte que tous les Jsoient dans le même quadrant de

C. Cela nous a permis d’une part d’alléger grandement les calculs numériques, mais aussi de déterminer le signe de la contribution à ajouter lorsque ω croise l’axe réel.

Nous avons ensuite cherché les minima nuls de |mΩ(J) − ω| à la place des zéros de mΩ(J) − ω. Cette reformulation du problème nous a permis d’utiliser l’algorithme sym- plectique d’optimisation non-linéaire de Nelder-Mead, implémenté dans la bibliothèque GSL, en partant d’un ensemble de conditions initiales réparties dans le “bon” quadrant. Pour terminer, nous avons calculé les résidus associés aux J∗ et multiplié les résultats par

±2iπ selon la façon dont ω croise l’axe réel (de haut en bas ou de bas en haut).

Tout ce que nous venons de faire jusqu’à présent nous permet seulement de calculer la fonction de dispersion ǫ(ω) pour tout ω ∈ C. Cependant, afin de déterminer les pôles de Landau ωL, il nous reste une dernière étape à franchir : nous devons résoudre l’équation

ǫ(ωL) = 0.

A cause de la structure compliquée de la fonction de dispersion ǫ(ω), nous n’avons pas utilisé de méthode générique de minimisation ou de recherche de racines, qui nous aurait amenés à travailler dans un espace à quatre dimensions. En effet, plus la dimension de l’espace est élévée et plus il y a de chances de rater des solutions. Les bassins d’attraction de chaque solution étant de tailles différentes et l’efficacité de ces méthodes résidant dans un bon choix de candidat initial, il est possible de rater une solution dont le bassin d’attraction serait petit par rapport à ceux de ses voisins. À la place, nous avons calculé |ǫ(ω)| sur une grille et identifié les zones susceptibles d’abriter des racines (voir figure

I.11 pour un exemple). Après cette étape préliminaire, nous traçons les lignes de niveau

FigureI.11 – Représentation de |ǫ(ω)| en lignes de niveau en prenant comme état station- naire f0 l’équilibre statistique avec T = 0,2 (voir l’équation (I.34)). Les lignes verticales

en pointillés noirs représentent des branches de coupure tandis que les flèches représentent les zones probables pouvant abriter des zéros de la fonction de dispersion.

d’altitude nulle de ℜ(ǫ(ω)) et ℑ(ǫ(ω)). Les zéros de ǫ(ω) sont simplement obtenus aux points d’intersection de ces courbes (voir figure (I.12) pour un exemple). Notons que la prudence est de rigueur dans l’analyse des résultats, à cause de la présence éventuelle

de branches de coupure. Nous verrons d’ailleurs dans la prochaine partie un exemple de résultat pour différents choix de branches de coupure.

FigureI.12 – Représentation des lignes de niveau ℜ(ǫ(ω)) = 0 et ℑ(ǫ(ω)) = 0 en prenant comme état stationnaire f0 l’équilibre statistique avec T = 0,2 (voir l’équation (I.34)). Les

lignes verticales en pointillés noirs représentent des branches de coupure. Les intersections des lignes de niveau, marquées par les flèches noires, représentent les zéros de la fonction de dispersion. Il faut prendre garde de ne pas tenir compte des fausses racines créées au voisinage des branches de coupure.