e de Poitiers
Master de Mathematiques et Applications
MATH 2M15 Optimisation
Annee 2009-2010
TP 1 : Algorithme de gradient
Soit f : U R de classe C 1 , o`
u U est un ouvert de Rn . On veut calculer un minimiseur
de f dans U i.e. une solution x du probl`eme
f (
x) = inf f (x).
xU
(1)
xk+1 = xk f (xk ),
(2)
o`
u > 0 est un param`etre `a fixer appele pas. Comme il ne depend pas de k, il sagit dun
pas fixe.
On peut egalement voir cet algorithme comme le schema dEuler applique `a lEDO
definissant la plus grande pente :
x (t) = f (x(t)).
(3)
Le theor`eme suivant donne une condition suffisante sur la fonction f et sur le pas
pour assurer la convergence de lalgorithme (2) vers un minimiseur de f .
Th
eor`
eme 1 (Convergence de (2)) On suppose que f C 1 (Rn , R) est -convexe et
que f (x) est L-lipschitzien sur Rn , i.e.
x, y Rn ,
Alors pour tout 0 < < 2/L2 , lalgorithme de gradient `a pas fixe converge : quel que
soit x0 , la suite definie par (2) converge vers lunique minimiseur x de f dans Rn . De
plus, la convergence est geometrique.
Exemple fondamental : Si A Mn (R) est une matrice symetrique definie positive et
b Rn , alors la fonction
1
f (x) = hAx, xi hb, xi
2
definie x Rn est -convexe et son unique minimiseur dans Rn est egalement lunique
solution du syst`eme lineaire Ax = b.
Dans le cas dun syst`eme lineaire, on a en fait le resultat plus precis suivant (cf. cours
sur les syst`emes lineaires) :
Th
eor`
eme 2 Soit A Mn (R) symetrique definie positive, de valeurs propres 0 < 1
2 . . . n . La methode du gradient `a pas fixe converge si et seulement si 0 < < 2/n ,
et la vitesse de convergence est optimale lorsque = 2/[1 + n ].
Exercices math
ematiques
1. Pour H = R2 et f (x, y) = ax2 +by 2 avec a, b > 0, etudier la convergence de lalgorithme
`a pas fixe : pour quelles valeurs de se produit-elle, pour quelle valeur est-elle la plus
rapide ?
2. Lalgorithme du gradient `a pas fixe converge-t-il pour des matrices symetriques qui ne
sont pas definies positives ? Pour des matrices non symetriques ?
Exercices informatiques
1. Programmer lalgorithme de gradient `a pas fixe pour f (x) = x2 + sin(x) sur R. Cette
fonction verifie-t-elle les hypoth`eses du theor`eme 1 ? Quel pas peut-on choisir ? Verifiez
cela en pratique.
Essayez dautres exemples : ch(x) sur R (1-convexe), x4 /4 x3 /3 x2 + 1 ou sin(x)
(non convexes), 1/(1 x2 ) sur ] 1, 1[ (domaine non defini partout)
2. Programmer lalgorithme de gradient `a pas fixe pour lexemple fondamental. Representer
lerreur en fonction du nombre diterations pour differents pas.
3. Meme question avec lalgorithme `a pas optimal kopt . On montrera que
kopt = hdk , dk i/hAdk , dk i avec dk = Axk b.
4. On choisit maintenant un pas k = k kopt o`
u k est choisi aleatoirement dans [0, 2].
Comparer la vitesse de convergence de cet algorithme par rapport aux precedents.
2