• Aucun résultat trouvé

Recherche des minima d’une fonction

Dans le document Licence de physique L3 PHYTEM (Page 62-66)

Il arrive bien souvent que l’on ait besoin, par exem-ple, du minimum de l’´energie potentielle d’un syst`eme qui d´epend d’une ou plusieurs variables pour en obtenir l’´equilibre stable : mettons, un ensemble d’atomes qui composent une mol´ecule dont on veut la conformation `a l’´equilibre compte tenu des potentiels d’interaction atome-atome.

Un autre exemple, qui sera ´etudi´e plus en d´etail dans le chapitre 4.8, est celui de la recherche du minimum d’´ecart possible entre des donn´ees exp´erimentales et les pr´evisions d’un mod`ele th´eorique qui d´epend lui-mˆeme d’un certain nombre de param`etres : il faut donc chercher les valeurs de ces param`etres qui donne l’´ecart le plus faible possible.

On pourrait aussi, dans un autre ordre d’id´ees, chercher le chemin optique le plus court pour un rayon lumineux, encore que la r´esolution d’une ´equation diff´erentielle or-dinaire selon les m´ethodes du chapitre 4.9 paraisse plus facile dans un bon nombre de cas.

17. Voir par exemple la r´ef´erence [2], p. 322.

4.7.1 Du mouvement des amibes (m´ e-thode du simplex).

4.7.1.1 A une dimension`

On cherche donc le minimum d’une fonction f(x). On pourrait imaginer quelques chose qui s’apparente `a la m´ethode de la dichotomie : on choisit un intervalle, on prend le milieu, on regarde s’il est plus bas que les bords, etc. En fait, il suffit, dans un espace unidimensionnel, de prendre deux points : a et b. Mettons que f(a) < f(b), alors on cherchera un point c sym´etrique de b par rap-port `a a : on va dans le sens o`u ¸ca d´ecroˆıt et cela s’ap-pelle une r´eflexion. Si f(c)< f(a) c’est sans doute qu’on pouvait aller plus loin : on double alors le d´eplacement dans le mˆeme sens (dilatation) ; sinon, c’est qu’on est all´e trop loin, alors on divise le d´eplacement par deux (con-traction). Puis on recommence l’op´eration jusqu’`a ce que l’intervalle entre les deux derniers points soit plus petit que la pr´ecision voulue.

4.7.1.2 A` N dimensions.

Le principe est le mˆeme : si l’on est dans un espace `aN dimension, on part de N+ 1 points de l’espace : la figure obtenue s’appelle un simplex, par exemple, siN = 2, c’est un triangle. On remplace alors le point du simplex qui donne la valeur la plus ´elev´ee de la fonction par un autre obtenu en faisant une r´eflexion par rapport au centre de gravit´e du simplex, puis des dilatations ou des contractions

`a la demande. Ainsi, le simplex se d´eplace en se d´eformant, telle une amibe, en cherchant toujours `a se concentrer sur point le plus bas. Quand il devient assez petit, le probl`eme est r´esolu.

La m´ethode du simplex a le m´erite de ne n´ecessiter au-cun calcul de d´eriv´ee et d’ˆetre simple `a mettre en œuvre.

Autant dire, cependant, qu’elle est assez inefficace : elle est

`a r´eserver aux probl`emes pas trop lourds num´eriquement pour lesquels on n’a pas de raison de faire d’effort partic-ulier.

4.7.2 M´ ethode de Newton

Il y a une m´ethode ´evidente : puisque l’on peut chercher les z´eros d’un ensemble de fonctions par la m´ethode de Newton, il suffit, lorsqu’on cherche les minima d’une fonc-tion, de chercher les z´eros de ses d´eriv´ees. Soit donc f(x) une fonction d’un ensemble de n variables d´esign´ees par x= (x1, . . . , xn). Un extremum est donn´e par :

di(x) = ∂f

∂xi

= 0 ∀i

cela donne un syst`eme den´equations dont on cherche les z´eros, or la variation δdi(x) de di pour des variationsδxi

s’´ecrit :

δdi(x) =X

j

∂di

∂xj

δxj=X

j

2f

∂xi∂xj

δxj (4.14) La matriceH telle que

Hij = ∂2f

∂xi∂xj

s’appelle la matrice Hessienne. C’est cette matrice qui intervient dans le syst`eme lin´eaire (4.14) que l’on doit

r´esoudre en δxi en suivant la m´ethode de Newton d´ej`a vue :

H·δx=−d

avec des notations ´evidentes. Le vecteurddonne les vari-ations qu’il faudrait imposer aux variables x (ou xi ∀i) pour annuler l’´ecart dans l’approximation lin´eaire. Comme la fonctionf(x) n’est pas a priori lin´eaire, il faut recom-mencer l’op´eration jusqu’`a convergence.

C’est souvent efficace et c’est extrˆemement simple `a mettre en œuvre (`a condition de pouvoir calculer les d´eriv´ees secondes qui composent la matrice hessienne), mais il faut ˆetre conscient qu’on ne se donne, alors, pas tous les moyens pour r´eussir. En effet, la m´ethode de Newton recherche les z´eros d’un ensemble de fonctions compl`etement ind´ependantes, alors que les d´eriv´ees d’une fonction ne le sont pas. En outre, la matrice Hessienne n’est pas toujours disponible ais´ement.

4.7.3 Recherche ` a une dimension : inter-polation parabolique.

Admettons que l’on connaisse trois pointsx=a,b etc aveca < c < bd’une part, et f(c)< f(a) etf(c)< f(b) de l’autre. La deuxi`eme condition impose qu’il doit y avoir un minimum au moins dans l’intervalle [a, b].

a c b

f(a) f(b)

f(c)

x

Figure4.17 – Recherche de minimum parabolique `a une dimension.

On assimile alors localement la fonction `a une parabole passant par les trois points (figure 4.17) :

f(x)∼p(x) =f(a)(x−c)(x−b) (a−c)(a−b)+ f(b)(x−a)(x−c)

(b−a)(b−c) +f(c)(x−a)(x−b) (c−a)(c−b) dont on cherche le minimum :

p(x) = 0 soit :

x= 1 2

f(a)(c2−b2) +f(b)(a2−c2) +f(c)(b2−a2) f(a)(c−b) +f(b)(a−c) +f(c)(b−a)

64 Licence de physique L3 : PHYTEM, Universit´e Pierre et Marie Curie Paris-6 & ENS-Cachan

puis on recommence avec une proc´edure similaire `a celle de la dichotomie : si x ∈]a, c[ on prend les points a, x et c, sinon, on prend c, x et b et l’on calcule par la mˆeme m´ethode une nouvelle estimationxet ainsi de suite jusqu’`a obtenir la pr´ecision voulue. Il reste cependant la question de savoir si le minimum de la parabole est bien un minimum et non un maximum ! On peut v´erifier si par exemple,f(x) est bien inf´erieur `af(c) ; s’il ne l’est pas on peut prendre par exemple le point milieu de cet dex.

4.7.4 M´ ethode du gradient conjugu´ e.

Soit de nouveau une fonctionf(x) o`ux est un vecteur dans un espace de dimension quelconque n. On cherche le minimum de cette fonction.

Une premi`ere id´ee qui pourrait venir `a l’esprit serait de suivre la ligne de plus grande pente (steepest descent) : on suit une droite parall`ele au gradient local de la fonction :

δx=−α grad(f~ )

kgrad(f~ )k (4.15) o`u α est un scalaire obtenu par exemple par la m´ethode du paragraphe 4.7.3.

Figure 4.18 – La ligne de plus grande pente dans une vall´ee ´etroite. Il faut un grand nombre de pas pour atteindre le fond de la vall´ee.

Il se trouve que c’est souvent assez peu efficace mˆeme si cela peut donner de bons r´esultats dans certains cas : en effet, si l’on cherche un minimum au fond d’une vall´ee

´etroite et si l’on part d’un bord de la vall´ee, on va partir dans une s´erie de zigzags plutˆot inutiles (figure 4.18).

Pour trouver une meilleure solution, il faut ´etudier d’un peu plus pr`es la m´ethode de la plus grande pente : il s’agit en fait d’une approximation def par une fonction quadra-tique :

f(x)∼ 1 2

X

i,j

xi

2f

∂xi∂xj

xj+X

i

∂f

∂xi

xi+f0 (4.16) o`u l’on peut introduire la matrice HessienneH et le gra-dientgdef tel que

gi= ∂f

∂xi

L’´equation (4.16) se re´ecrit en notations matricielles : f(x)∼ 1

2x·H·x+g·x+f0 (4.17) et

f(x)∼H·x+g=r

o`urest le r´esidu qui devrait ˆetre nul si l’on ´etait au point x solution. C’est aussi le vecteur qui indique la direction de plus grande pente, direction de recherche.

Mettons que l’on d´emarre la recherche d’un point x0

avec une direction de rechercher0, l’on ´ecrira donc : x1=x00r0

il faut chercherα0tel quef soit minimum sur la direction r0, or en d´eveloppant (4.17) et en ´ecrivant la d´eriv´ee par rapport `a α0, on doit chercherα0 tel que :

α0r0·H·r0+x0·H·r0+g·r0= 0

o`u l’on a tenu compte du fait que H est une matrice sym´etrique18, ce qui donne une expression deα0:

α0=− r0·r0

r0·H·r0

Si l’on r´ep`ete la mˆeme s´equence, la nouvelle direction de rechercher1doit ˆetre orthogonale `ar0parce que justement nous sommes d´ej`a sur un minimum de la fonction dans la directionr0, donc :

r1·r0= 0

ce que l’on v´erifie facilement par le calcul.

A deux dimensions, l’on obtient donc les zizags de la` figure 4.18 et avec un plus grand nombre de dimensions,

¸ca doit ˆetre, a priori, pire. . . On remarque cependant que si les courbes de niveaux de la figure 4.18 avaient ´et´e des cercles, la convergence aurait ´et´e obtenue en un pas, `a condition de choisir une direction de recherche parall`ele au gradient !

Il serait donc habile de tenter de faire entrer en ligne de compte la g´eom´etrie des courbes de niveaux et d’intro-duire non pas le produit scalaire ordinaire x·y, qui est bien adapt´e `a une sym´etrie sph´erique, mais le H-produit scalaire adapt´e `a la g´eom´etrie deH:

x·H·y

Sans entrer dans les d´emonstrations19 ni dans le d´etail de l’algorithme, il suffit alors de chercher une s´erie de di-rections de recherchesdi qui soient H-orthogonales entre elles de telle fa¸con que :

xi+1=xiidi

en choisissantαipour que la recherche donne un minimum sur la directiondi, et

di·H·dj= 0, ∀i6=j

Il se trouve que contrairement aux apparences, on peut tr`es bien se passer de la connaissance (et de l’espace m´emoire correspondant) de la matrice Hessienne en util-isant le fait que les r´esidus ri doivent ˆetre justement les gradients def!

Moralit´e : une fois encore, ne pas chercher `a r´einventer ce qui existe d´ej`a, utiliser des sous-programmes de bib-lioth`eque ! Ce qu’il faut retenir de ces m´ethodes, c’est qu’elles sont proches de la m´ethode de Newton d´ej`a

´etudi´ee pour la recherche de z´eros et qu’elles ont les

18. Parce queHi,j= ∂x2f

i∂xj =∂x2f

j∂xi =Hj,i, donc on se conva-inc ais´ement quex0·H·r0=r0·H·x0.

19. Volontiers confuses dans la litt´erature, en tous cas gu`ere pas-sionnantes. . . mais ce n’est qu’une opinion qu’il n’est pas obligatoire de partager ! On se reportera ´eventuellement `a la r´ef´erence [7].

mˆemes d´efauts. Ainsi, il s’agit toujours d’une recherche locale d’un minimum d’une fonction assimil´ee `a une fonc-tion quadratique qui ne poss`ede qu’un seul minimum. La

vraie fonction n’est en g´en´eral pas quadratique et si elle poss`ede plusieurs minima, on en trouvera au mieux un, sans savoir s’il n’y en a pas un nettement plus profond juste `a cˆot´e ! La m´efiance et la circonspection sont les deux mamelles du calcul num´erique. . .

On verra toutefois, dans le chapitre 4.11, des fa¸cons d’´eviter ces d´efauts lorsque le paysage du potentiel est compliqu´e et que le nombre de param`etres est ´elev´e.

4.7.5 Minimisation avec contrainte : les multiplicateurs de Lagrange.

Imaginons que l’on doive chercher comme auparavent un minimum d’une fonction denvariables :

min(f(x))

mais que les variables repr´esent´ees par x ne soient pas ind´ependantes mais reli´ees par une relation :

g(x) = 0 (4.18)

c’est ce que l’on appelle une contrainte. Imaginons par exemple que l’on cherche la configuration d’´equilibre d’un ensemble d’atomes mais que deux atomes donn´es soient li´es par une liaison tr`es rigide, covalente par exemple, et que la distance entre ces deux atomes soit connue. On a ainsi un syst`eme de n−1 variables ind´ependantes et l’on pourrait re´ecrire l’´equation (4.18) :

xn = ˜g(x1, . . . , xn1)

et l’on rechercherait le minimum d’une fonction `a n−1 variables :

min(f(x1, . . . , xn1,˜g(x1, . . . , xn1)))

Outre le fait que la recherche de la fonction ˜g n’est pas toujours facile, cette m´ethode est discutable en ce sens que l’on a choisi d’´eliminer la variable xn, mais pourquoi pas plutˆotxn1 ouxi? Dans certains cas le choix est ´evident, dans d’autres non.

Si l’on est `a un extremum def, alors pour tout ensemble de variations infinit´esimales desxi on doit avoir :

Xn i=1

∂f

∂xi

dxi= 0

or les dxi ne sont pas ind´ependants `a cause de l’´equation (4.18) ; mais cette ´equation dit quegest une constante et que donc sa diff´erentielle doit ˆetre nulle :

Xn i=1

∂g

∂xi

dxi= 0

ce qui introduit un lien entre les dxi. Il suffit d’addition-ner ces deux relations en multipliant la deuxi`eme par un

multiplicateur de Lagrangeλ: Xn

Choisissons alors, par exemple,λpour que :

∂f

∂xn +λ ∂g

∂xn = 0

alors lesn−1 variablesx1, . . . , xn1 sont ind´ependantes.

La relation (4.19) est donc vraie pourtoutjeu de variables x1, . . . , xn1, en particulier, si

une relation vraie pour toutk, puisqu’il a ´et´e choisi arbi-trairement. C’est aussi vrai pourk=npuisqu’on a choisi λainsi : on retrouve ainsi la sym´etrie un instant perdue. . . Le r´esultat de tout ceci est que si l’on d´efinit la fonction :

Q=f(x) +λg(x)

le probl`eme revient `a chercher le minimum de Q avec la contrainte (4.18), mais ce qui est nouveau par rap-port au probl`eme pr´ec´edent, c’est que lesnvariables sont ind´ependantes et que l’on peut utiliser les m´ethodes clas-siques.

Prenons, par exemple, un syst`eme de pendules coupl´es dont l’´energie potentielle s’´ecrit :

V =−X avec des notations standards. Admettons que l’on cherche l’´equilibre d’un tel syst`eme (en dehors ´evidemment de la solution triviale : certains angles peuvent ˆetre sup´erieurs

`

aπ) avec la contrainte que la somme des angles soit nulle (mettons qu’un syst`eme d’engrenages plus ou moins com-plexe impose cela) :

X

i

θi= 0 L’on ´ecrira donc :

Q=V +λX

i

θi

et en exprimant les d´eriv´ees :

∂Q soit en sommant :

λ=−1 que l’on peut r´einjecter dans l’expression de Q pour faire ensuite une minimisation par l’une des m´ethodes habituelles.

Tout ceci se g´en´eralise ´evidemment `a un nombre quel-conque de contraintesg = 0, il suffit d’introduire autant de multiplicateurs de Lagrange que de contraintes :

Q=f+X

λg

66 Licence de physique L3 : PHYTEM, Universit´e Pierre et Marie Curie Paris-6 & ENS-Cachan

4.8 Mod´ elisation de donn´ ees

Dans le document Licence de physique L3 PHYTEM (Page 62-66)