ENSEM ANA-2 2ème année
Séance de TD 1
Optimisation sans contrainte : méthodes de gradient
Soit nN. On considère la matrice A∈ Mn(R)et le vecteur bRndéfinis par :
An=
42 0 . . . 0
2 4 2.
.
.
0.........0
.
.
.2 4 2
0. . . 02 4
et bn= (1,1,...,1).
On cherche à minimiser dans Rn, par différentes méthodes, la fonctionnelle :
Jn(x) = 1
2(Anx, x)(bn, x).
On appelle donc (Pn)le problème :
(Pn)min Jn(x)
xRn
Remarque : il est important d’exploiter, dans les questions qui suivent, le format « creux » de
la matrice Aafin de diminuer les temps de calcul.
Fonctions Matlab utiles : sparse, full, spdiags.
1. Programmer en Matlab la fonctionnelle Jn, et la représenter dans le cas n= 2 sur le pavé
[10,10] ×[10,10].
Fonctions Matlab utiles : meshgrid, mesh.
2. Vérifier numériquement, pour certaines valeurs de nque Jnest coercive.
Calculer la solution théorique du problème (Pn)dans le cas n= 2.
Fonction Matlab utile : eigs.
3. Nous allons étudier trois méthodes de minimisation. Pour chacune de ces études, on de-
mande :
pour le cas n=2:
d’afficher sur une même figure, et dans le cas n= 2, les courbes de niveau de Jn, et
son gradient.
Fonctions Matlab utiles : contour, quiver.
pour un point de départ x0, de stocker la liste des xnobtenu, avant que le critère de
convergence soit atteint.
de tracer, sur la même courbe que précédemment, les lignes qui relient les points xn.
1
lorsque nprend les valeurs 10, 20, 30, 50, 100 :
de tester chacune des trois méthodes
Enfin, de comparer à l’aide d’un graphique ou d’un tableau, la rapidité de convergence
de chacune de ces méthodes, ainsi que le temps de calcul par Matlab, suivant les
différentes valeurs prises par n.
(a) La méthode du gradient à pas fixe.
Écrire une fonction Matlab prenant en argument ρ > 0, un pas fixe et x0Rn, un
vecteur d’initialisation, afin de mettre en œuvre l’algorithme du gradient à pas fixe,
puis la tester sur Jndans chacun des cas ci-dessus. Répondre aux questions initiales.
Expliquer brièvement pourquoi il est important de choisir le pas fixe, ni trop grand,
ni trop petit.
(b) La méthode du gradient à pas optimal.
i. Soient xRn, un point, et dRn, un vecteur.
Écrire une fonction Matlab permettant de minimiser, à l’aide de la méthode de la
section dorée, la fonction t7−Jn(x+td).
ii. Voici l’algrithme du gradient à pas optimal pour la minimisation d’une fonction f
donnée :
x0est donné.
xn+1 =xn+ρndn
dn=−∇f(xn)
ρn= min
αRJn(xn+α.dn).
Programmer cet algorithme et répondre aux questions initiales. On pourra utiliser
la méthode de la section dorée pour calculer ρn.
(c) La méthode du gradient conjugué dans le cas d’une fonctionnelle quadra-
tique elliptique.
Soit f:RnR
x7−1
2(Ax, x)(b, x)
, où A∈ Mn(R)est une matrice symétrique
définie positive et best un vecteur de Rn. Alors, dans ce cas, l’algorithme du gradient
conjugué s’écrit :
x0est donné, r0=Ax0bet d0=r0.
xn+1 =xn+ρndn, ρn=(rn,dn)
(Adn,dn)
rn+1 =Axn+1 b
dn+1 =rn+1 +βndn, βn:= krn+1k2
krnk2.
Programmer cet algorithme et répondre aux questions initiales.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !