• Aucun résultat trouvé

A Intégrales multidimensionnelles

Dans le document Méthodes numériques et simulations (Page 159-163)

Supposons qu’on doive intégrer une fonction A(x ) de d variables, ou plutôt la moyenne de A dans son domaine de définition, ce qui revient au même :

〈f 〉 = ddx A(x ) ddx (16.1)

On considère en fait x comme une variable aléatoire, et de ce fait A, en tant que fonction de x , est aussi une variable aléatoire. La densité de probabilité p(x ) est alors une constante égale à 1/vol(Ω) à l’intérieur du domaineΩ, et nulle à l’extérieur de Ω. La technique la plus simple consiste à échan- tillonner x de manière uniforme dans un domaine de définition hypercubique. Si le domaineΩ n’est pas hypercubique, il suffit alors de définir un domaine hypercubique contenantΩ tout juste et de définir A(x ) = 0 à l’extérieur de Ω (voir fig.16.1).

1. L’oncle de Ulam était, semble-t-il, un joueur compulsif qui empruntait de l’argent pour jouer à la roulette à Monte- Carlo.

H f(x) = 0 f(x) 6= 0 x1 x2 FIGURE16.1

Définition d’une région d’intégration hypercubique H autour du domaineΩ d’une fonction.

Le principe de l’intégration Monte-Carlo est d’échantillonner le domaine de A avec N points xi et d’estimer la moyenne ainsi :

〈A〉 ≈ ¯A := 1 N

i

A(xi) (16.2)

Quelle erreur commet-on en procédant de la sorte ? Autrement dit, quel est l’écart-type de ¯A ? La

réponse à cette question provient du théorème de la limite centrale :

step

Théorème 16.1 Limite centrale

Considérons une variable aléatoire A qu’on mesure N fois. Les résultats de chaque mesure, Ai sont des variables aléatoires identiques, mais complètement indépendantes. Alors la meilleure estimation de la moyenne〈A〉 est l’espérance mathématique

¯ A= 1 Ni Ai (16.3)

et l’écart-type de cette estimation est

∆( ¯A) =p1

N∆(A) (16.4)

Preuve:En calculant simplement la valeur moyenne de l’espérance mathématique, on constate qu’elle

coïncide avec la valeur moyenne de A : 〈 ¯A〉 = 1 Ni 〈Ai〉 = 1 Ni 〈A〉 = 〈A〉 (16.5)

car chaque mesure Ai obéit à la même loi de probabilité qui régit la variable A, de sorte que〈Ai〉 = 〈A〉.

L’estimation de l’erreur s’obtient ensuite en calculant la variance de ¯A :

Var ¯A= 〈 ¯A2〉 − 〈 ¯A〉2= 〈 ¯A2〉 − 〈A〉2 (16.6) Or 〈 ¯A2〉 = 1 N2 ∑ i , j 〈AiAj〉 = 1 N2 ∑ i 〈A2i〉 + 1 N2 ∑ i , j(i ̸=j ) 〈AiAj〉 (16.7)

Dans l’hypothèse où les mesures successives de A ne sont pas corrélées, alors〈AiAj〉 = 〈Ai〉〈Aj〉 = 〈A〉2si

i̸= j (il y a N (N − 1) termes comme celui-là). On trouve alors 〈 ¯A2〉 = 1

N〈A

2〉 +N− 1

N 〈A〉

2 (16.8)

Au total, la variance de ¯A est

Var ¯A= 1 N〈A 2〉 − 1 N〈A〉 2= 1 N Var A (16.9)

On retrouve donc le théorème de la limite centrale, que nous venons en fait de démontrer : l’erreur∆A

commise sur l’estimation de〈A〉 est l’écart-typepVar A, divisé parpN .

Bref, l’erreur sur la valeur moyenne〈A〉 commise lorsqu’on la remplace par ¯A est

∆ =  √Var A N Var A := 〈A 2 〉 − 〈A〉2 (16.10)

La variance de A dépend beaucoup du degré de variation de A(x ) dans Ω. Si la fonction varie beau- coup dans ce domaine, Var A sera très élevé, et vice-versa. Mais le point important est que cette erreur diminue comme 1/pN .

Par exemple, si on tire N aléatoires uniformément distribués dans[−1,1], la moyenne de chaque aléatoire est 0, et la variance est 1/3. Chacun des tirs suit la même loi de probabilité, et donc l’es- pérance mathématique des résultats, ¯A, suivra une loi normale de moyenne 0 et de variance 1/3N .

En clair, cela signifie qu’en générant N «mesures» Ai de A, on se trouve à générer une instance de la variable ¯A, instance qui tombe à l’intérieur d’un écart-type∆(A)/pN de la moyenne〈A〉 68% du temps, et à l’intérieur de deux écarts-types 95% du temps.

Si on intègre la même fonction en utilisant une grille fixe de points, par exemple avec la méthode de Simpson, l’erreur commise sera de l’ordre de 1/n4, où n est le nombre de points par direction, menant à un nombre total de points N = nd (on suppose un nombre de points égal dans chaque direction de l’espace). L’erreur commise dans la méthode de Simpson est donc

Simpson∼

1

N4/d (16.11)

On voit que la méthode Monte-Carlo converge plus rapidement que la méthode de Simpson pour des dimensions d > 8 : pour les intégrales dans des domaines de grande dimension, le Monte- Carlo est la meilleure méthode ! Le fait de remplacer la méthode de Simpson par une autre mé- thode convergeant plus rapidement ne change pas fondamentalement ce résultat, mais ne fait que repousser son impact à des dimensions plus grandes. Or, en mécanique statistique classique, on doit calculer les valeurs moyennes en intégrant sur l’espace des phasesΩ de M particules. En trois dimensions d’espace, la dimension de l’espaceΩ est d = 6M (ou d = 4M en deux dimensions d’es- pace). Donc quelques particules seulement suffisent à rendre l’intégration Monte-Carlo incontour- nable.

N A¯ σ erreur 10 2.4 0.52 1.4 102 3.12 0.16 0.13 103 3.176 0.052 −0.66 104 3.1148 0.016 1.63 105 3.1498 0.052 −1.6 106 3.1417 0.0016 −0.068 107 3.14177 0.00052 −0.35 FIGURE16.2

Calcul de l’aire d’un cercle par la méthode de Monte-Carlo. À gauche : valeur estimée deπ en fonction du nombre de points, écart-type de l’estimation et erreur commise en rapport avec l’écart-type.

16.A.1 Exemple simple : calcul de l’aire d’un disque

Appliquons la méthode d’intégration Monte-Carlo au calcul de l’aire d’un disque en dimension 2. La fonction A est alors définie comme suit :

A(x ) =

¨

1 si (x12+ x22) < 1

0 sinon (16.12)

le domaineΩ est l’intérieur du disque, et le domaine hypercubique qui enveloppe Ω est le carré qui s’étend de(−1,−1) à (1,1). On échantillonne uniformément des points dans ce carré, en tirant deux aléatoires uniformes x∈ [−1, 1] et y ∈ [−1, 1]. La valeur moyenne de A(x ) doit être p = π/4, et l’estimation ¯A doit tendre versπ/4 quand N → ∞. La variance de A est

Var A= p − 〈A〉2= p − p2=π 4(1 −

π

4) (16.13)

L’estimation de la valeur de A est donnée par l’espérance mathématique : ¯ A= 1 Ni Ai (16.14)

La valeur de ¯A ainsi calculée (multipliée par 4), dans un exemple de simulation, est illustrée à la

figure16.2en fonction du nombre de points tirés. Selon le théorème de la limite centrale, l’erreur commise sur la moyenne est alors

σ =  √1 N π 4  1−π 4  (16.15)

Boîte à outils

Le module pythonvegaspermet de calculer des intégrales multidimensionnelles à l’aide d’un algorithme d’échantillonage selon l’importance. Ce module peut être installé à l’aide de la com- mandepipsur la plupart des plates-formes :

pip install vegas

La documentation peut être trouvée sur lesite de distribution. Une documentation plus courte, en format html et restreinte aux fonctions et classes Python, peut être générée par la commande pydoc -w vegas

(cette fonctionnalité existe pour tous les modules bien construits). La documentation plus longue du module contient une section qui explique l’algorithme.

Un court exemple d’utilisation devegassuit :

1 import vegas

2 import math

3 def f(x):

4 return 16*x[0]*x[1]*x[2]*x[3]

5 result = integ(f, nitn=10, neval=10000)

6 print(result.summary())

7 print(’result = %s Q = %.2f’ % (result, result.Q))

vegasdivise chaque axe d’intégration selon une grille, et donc l’ensemble du domaine d’intégra- tion est divisé en régions hyperrectangulaires. Dans chacune de ces régions, un échantillonage de points est utilisé pour calculer une estimation de l’intégrale comme expliqué ci-dessus, et les ré- sultats des différentes régions sont ajoutés. Comme la valeur de la fonction peut varier beaucoup d’une région à l’autre, l’utilisation d’une grille uniforme est inefficace et mène à une variance trop grande des résultats. Pour pallier ce problème,vegasprocède ànintitérations ; à chaque itéra- tion, la grille est modifiée de manière non uniforme dans chaque direction (les points ne sont plus également espacés) afin que la contribution de chaque région soit à peu près égale, ce qui minimise la variance de la somme de ces contributions.

Dans le document Méthodes numériques et simulations (Page 159-163)