Correction de l’examen
25/05/2018 D. Gontier, gontier@ceremade.dauphine.fr
La barème suivant est sur 40 points.
Exercice 1 : Le gradient conjugué réduit. (16 pt)
a/ (2 pt). L’ensemble K est un sous-espace vectoriel de R
d, donc est un fermé convexe, et Q est une fonction coercive strictement convexe sur K, donc admet un unique minimum.
b/ (1 pt). Par définition comme K := Im U , tout élément x ∈ K est de la forme x = U y avec y ∈ R
m. c/ (2 pt). En paramétrisation x ∈ K par x = U y avec y ∈ R
m, on a
Q(U y) = 1
2 (U y)
TA(U y) − b
T(U y).
De plus, on a (U y)
T= y
TU
Tet b
TU = (U
Tb)
T. Donc Q(Uy) = 1
2 y
T(U
TAU )y − (U
Tb)
Ty.
En minimisant sur y ∈ R
m, on obtient (∗∗).
d/ (3 pt). La matrice M = U
TU est de taille m ×m, et vérifie M
ij= u
Tiu
j= hu
i, u
ki = δ
ijcar les vecteurs (u
i) sont orthonormés. Donc M = I
m.
On a (U
TAU )
T= U
TA
TU = U
TAU car A est symétrique, donc la matrice U
TAU est symétrique.
La matrice U
TAU est de taille m × m, donc U
TAU ∈ S
m( R ).
Pour tout y ∈ R
m, on a
hy, U
TAU yi
Rm= hU y, A(Uy)i
Rd≥ λ
1(A)kUyk
2Rd≥ 0,
donc A
U∈ S
m+. De plus, si hy, U
TAU yi = 0, cela implique que Uy = 0. En multipliant par U
Tà gauche, on obtient y = 0, et donc A
Uest injective. Au final, A
U∈ S
m++.
e/ (3 pt). Notons A
U= U
TAT et b
U= U
Tb. Le problème (∗∗) est la minimisation de la forme quadratique Q
U(y) :=
12y
TA
Uy − b
TUy sur R
m. La matrice A
Uest définie positive d’après la question précédente, donc Q
Uest coercive strictement convexe, et admet un unique minimum y
∗. En écrivant que ∇Q
U(y
∗) = 0, on obtient A
Uy
∗= b
U, puis y
∗= (A
U)
−1b
U. Enfin, comme x
∗= Uy
∗d’après la question c/, on a x
∗= U (U
TAU )
−1U
Tb, comme souhaité.
f/ (2 pt). On peut utiliser le GC pour résoudre le problème (∗∗). Cela donne la solution y
∗en au plus m itérations (c’est donc très intéressant si m d). Cela donne les itérations suivantes.
On pose y
0= 0
Rm, p
0= r
0= b
U, puis α
n= r
TnA
Ur
np
TnA
Up
n, y
n+1= y
n+ α
np
n, r
n+1= r
n− α
nA
Up
n, β
n= − r
Tn+1r
n+1r
Tnr
n, p
n+1= r
n+1+ β
np
n. On pose à la fin des itérations x
∗= U y
∗.
g/ (2 pt). La projection sur K est définie par
∀b ∈ R
d, P
K(b) := argmin 1
2 kx − bk
2, x ∈ K
.
On a
12kx − bk
2=
12x
Tx − b
Tx +
12b
Tb. Le terme
12b
Tb est une constante de x, et ne joue pas de rôle dans la minimisation. On a donc aussi
∀b ∈ R
d, P
K(b) := argmin 1
2 x
Tx − b
Tx, x ∈ K
.
C’est un problème de type (∗) avec A = I
d.
h/ (1 pt). D’après la question e/, la solution avec A = I
dest P
K(b) = U (U
TU )
−1U
Tb. Or U
TU = I
m,
donc P
K(b) = U U
Tb. Ceci étant vrai pour tout b ∈ R
d, on a P
K= U U
T.
Exercice 2 : Initialisation pour le critère de Wolfe. (11 pt)
a/ (3 pt). On a g(0) := lim
t→0g(t) = h∇F (x), hi par définition de la dérivée directionnelle. De plus, comme h est une direction de descente en x, on a g(0) < 0. En particulier, g(0) < c
1g(0), et par continuité de g, il existe ε > 0 tel que, pour tout t ∈ [0, ε], on a toujours g(t) < c
1g(0).
b/
(i) (2 pt). L’algo1 construit une suite de type τ
n+1= τ
n/2 et s’arrête lorsque τ
nvérifie le critère d’Armijo.
En particulier, il s’arrête dès que τ
n< ε, ce qui généralement arrive (cela peut ne pas arriver si ε est plus petit que la précision machine...).
(ii) (1 pt). A la ligne 4, la fonction F est évaluée deux fois, et la fonction ∇F est évaluée une fois.
(iii) (1 pt). On remarque que les nombres F (x) et h∇F(x), hi sont évalués à chaque itération. On peut précalculer une fois pour toute ces nombres afin de diminuer le nombre d’appels à ces fonctions. Cela donne le code suivant :
1 d e f a l g o 1 m o d i f i e( F , nablaF , x , h , c1 , N i t e r = 1 0 0 ) : 2 tau = n o r m ( x ) / n o r m ( h )
3 Fx , g0 = F ( x ) , dot ( n a b l a F ( x ) , h ) 4 f o r n in r a n g e( N i t e r ) :
5 if F ( x + tau * h ) <= Fx + c1 * tau * g0 :
6 r e t u r n tau
7 tau = tau /2
c/ (3 pt). Comme F est bornée inférieurement, par un certain m ∈ R , on a g(t) ≥
m−F(x)t→ 0 lorsque t → ∞. Ainsi, on a g(∞) ≥ 0, et en particulier, g(∞) > c
1g(0). Par continuité, il existe A > 0 tel que pour tout t > A, on a encore g(t) > c
1g(0).
d/ (1 pt). On peut construire modifier algo1 pour construire la suite T
n+1= 2T
n. A partir d’un certain rang, on doit avoir T
n> A, et T := T
nne vérifie pas le critère d’Armijo. Cel donne l’algorithme suivant :
1 d e f a l g o 2( F , nablaF , x , h , c1 , N i t e r = 1 0 0 ) : 2 T = n o r m ( x ) / n o r m ( h )
3 Fx , g0 = F ( x ) , dot ( n a b l a F ( x ) , h ) 4 f o r n in r a n g e( N i t e r ) :
5 if F ( x + tau * h ) > Fx + c1 * tau * g0 :
6 r e t u r n T
7 T =2* T
Exercice 3 : Quasi-Newton pour matrices à diagonale dominante. (13 pt) a/ (1 pt). On trouve que les valeurs propres de A sont 2 et 7.
b/ (2 pt). La fonction Q est une forme quadratique. Elle est strictement convexe et coercive, donc admet un unique minimum x
∗∈ R
d. On a ∇Q(x) = Ax, qui ne s’annule que pour x = (0, 0)
T(car A est inversible).
De plus, on a H
Q(x) = A (indépendant de x). On en déduit que x
∗= (0, 0)
T. c/
(i) (1 pt). La suite (x
n) est le gradient à pas constant τ > 0 pour la fonction quadratique Q(x) =
12x
TAx.
D’après le cours, la méthode converge vers x
∗si et seulement si 0 < τ < 2/λ
d(A), ce qui dans notre cas donne 0 < τ < 2/7.
(ii) (1 pt). Toujours d’après le cours, le pas optimal est τ
∗= 2/ [λ
1(A) + λ
d(A)], qui, dans notre cas, donne τ
∗= 2/(2 + 7) = 2/9. On a dans ce cas une convergence linéaire à taux |1 − τ
∗λ
1(A)| = |1 − τ
∗λ
d(A)| =
|1 − 4/9| = 5/9.
d/
(i) (1 pt). On a
x
0n+1= I
2−
√1
6
0
0
√13
! A
√1
6
0
0
√13
!!
x
0n, donc B = I
2−
√1
6
0
0
√13
! A
√1
6
0
0
√13
!
= − 0
√22 18
√18
0
!
On remarquera que
√218
=
√2 3
. (ii) (1 pt). On a
kx
0n+2k
2= hBx
0n, Bx
0ni = hx
0n, B
2x
0ni, avec B
2=
29
0 0
29. Ainsi, on a kx
0n+1k
2=
29kx
0nk
2, et en prenant la racine, kx
0n+1k =
√2 3
kx
0nk.
(iii) (1 pt). La méthode du gradient à pas constant donne une vitesse de convergence linéaire, à taux 5/9 > 0.5.
2
Avec la méthode (QN 1) on a une vitesse de convergence linéaire à taux
√2
3
≈ 0.47 < 0.5. Cette méthode est donc plus rapide que (GP C) (même avec le pas optimal).
e/ (2 pt). A la ligne 3, d est un vecteur de taille 2 : d = (1/ √ 6, 1/ √
3)
T. Ce n’est pas une matrice ! La multiplication d ∗ x est une multiplication élément par élément. On a bien
(d ∗ x) =
√1 6
x
1√1 3
x
2!
=
√1
6
0
0
√13
! x
1x
2.
La multiplication dot est la multiplication usuelle de matrices.
f/
(i) (1 pt). Cette fois, on a
x ]
n+1= C x f
navec C =
I
2−
16
0 0
13=
0 −
13−
230
.
(ii) (1 pt). On trouve
x ]
n+2= C
2x f
navec C
2=
29
0 0
29. (iii) (1 pt). Par une récurrence immédiate, on trouve que k x f
nk ≤ C(
√2
3
)
navec C = max{kx
0k, kx
1k} par exemple. La suite x f
nconverge donc vers x
∗linéairement à taux
√2
3