Vous êtes sur la page 1sur 3

cole des Mines de Nancy 2

me
anne
Sance de T.P. n4
Cours : Optimisation
Optimisation sous contraintes
Dans cette sance de travaux pratiques, on souhaite utiliser les techniques classiques dOpti-
misation avec contraintes pour rsoudre deux problmes appliqus : une quation aux drives
partielles et la dtermination de la distance dun point un hyperplan. On utilisera en particulier
les algorithmes dUzawa et du gradient projet.
EXERCICE N. 1
Rsolution dun problme dobstacle
TPedp
1 Le modle
Soit g, une fonction continue donne sur le segment [0, 1]. On considre un problme dobstacle :
trouver une fonction u : [0, 1] R telle que :
_

_
u

(x) 1 x (0, 1)
u(x) g(x) x (0, 1)
(u

(x) 1) (u(x) g(x)) = 0 x (0, 1)


u(0) = u(1) = 0
(1)
La premire quation traduit une concavit minimale de la fonction u, la deuxime quation
reprsente lobstacle : on veut tre au-dessus de g(x). La troisime quation traduit le fait que
lon a au moins galit dans une des deux quations prcdentes : soit on rsout u

(x) = 1,
soit u(x) = g(x), et on est sur lobstacle.
2 Problme de minimisation associ
On discrtise ce problme en introduisant un maillage uniforme : x
j
= jh, o h dsigne le
pas en espace du maillage, et j {0, ..., n + 1}, avec n 1 entier et h =
1
n+1
. Posons pour
j {0, ..., n + 1}, g
j
= g(x
j
). On cherche des valeurs u
j
= u(x
j
), avec j {0, ..., n + 1}, telles
que :
_

u
j1
2u
j
+ u
j+1
h
2
1 j {0, ..., n + 1}
u
j
g
j
j {0, ..., n + 1}
_

u
j1
2u
j
+ u
j+1
h
2
_
(u
j
g
j
) = 0 j {0, ..., n + 1}
u
0
= u
n+1
= 0
(2)
1
On rappelle que
u
j1
2u
j
+ u
j+1
h
2
est lapproximation de u

(x
j
) par la mthode des di-
rences nies.
Introduisons prsent la matrice A M
n
(R), dnie par :
A =
_
_
_
_
_
_
_
_
_
1 0 . . . 0
1 2 1
.
.
.
0
.
.
.
.
.
.
.
.
. 0
.
.
. 1 2 1
0 . . . 0 1 2
_
_
_
_
_
_
_
_
_
.
On appelle galement b et g, les vecteurs colonnes de R
n
dnis par :
b =
_
_
_
1
.
.
.
1
_
_
_ et g =
_
_
_
g
1
.
.
.
g
n
_
_
_.
On introduit la notation x y pour des vecteur si i {0, ..., n + 1}, x
i
y
i
.
Le rsultat que je prsente maintenant est une version discrtise du thorme de Lax-Milgram
que vous avez probablement dj rencontr dans le cadre de lAnalyse Fonctionnelle.
Soit u =
_
_
_
u
1
.
.
.
u
n
_
_
_
. On a lquivalence :
u est solution de (2) u est solution de
_
_
_
min
vK
_
1
2
(Av, v) (b, v)
_
K = {v R
n
: v g}.
On appelle alors J, la fonctionnelle dnie sur R
n
par :
J(v) =
1
2
(Av, v) (b, v).
3 Rsolution du problme
On se place ici dans le cas particulier o :
g(x) = max
_
0, 1 100(x 0.7)
2
_
.
On souhaite rsoudre ce problme en utilisant lalgorithme du gradient projet, rappel dans le
TD prcdent. On dsigne par
K
, la projection sur le convexe K. On pourra utiliser sans le
dmontrer que
K
(v) = (max(v
i
, g
i
))
1in
.
1. (a) crire une mthode de gradient pas xe pour dterminer le minimum de J sur R
n
.
Tester cette mthode et vrier quelle converge bien vers le rsultat souhait.
(b) Adapter le programme prcdent pour programmer la mthode du gradient projet
pas constant.
On testera notamment le programme pour n = 10. On se xera un nombre maximal
ditrations et une tolrance de 10
5
.
2
(c) Demander Matlab de calculer la premire valeur propre de A, ainsi que la dernire,
et comparer avec les rsultats connus :
k {1, ..., n},
k
(A) =
4
h
2
sin
2
_
kh
2
_
.
(d) Choisir > 0 comme le pas optimal de la mthode de gradient pas xe sans
contrainte.
Rappel :
opt
=
2

1
+
n
.
(e) Acher toutes les dix itrations : k (le nombre itrations), lestimateur derreur u
k

u
k1

2
et la norme J

(u
k
).
(f) Acher le graphe de u
k
et de g.
2. Faire tourner le programme pour n = 100, en adaptant le nombre maximal ditrations.
Noter le temps de calcul et le nombre ditrations k ncessaires pour obtenir u
k
u
k1

10
6
.
On pourra galement reprsenter le temps de calcul en fonction de n.
3. On dsire calculer une approximation u
k
de u avec une prcsion de 10
4
. On admet lesti-
mation suivante :
u
k
u
2


1
u
k
u
k1

2
, avec := I A
2
.
Quelle tolrance doit-on choisir pour assurer que u
k
u
2
10
4
?
4. Conclure lexercice.
EXERCICE N. 2
Distance dun point un plan
TPhyper
Dans cet exercice, je vous laisse un peu plus libre qu lordinaire. On cherche dterminer
numriquement la plus courte distance entre un point x
0
R
n
et un hyperplan (H) dquation
Ax = b, o les lignes de la matrice A sont linairement indpendantes et b, un vecteur colonne
de taille n. Ce problme peut scrire comme un problme de programmation quadratique :
(P) min
Ax=b
1
2
.
t
(x x
0
)(x x
0
).
1. tude thorique.
(a) Montrer que le multiplicateur de Lagrange, loptimum est :

= (A
t
A)
1
(b Ax
0
).
(b) Montrer que la solution est :
x

= x
0
+
t
A(A
t
A)
1
(b Ax
0
).
(c) Montrer que, dans le cas o A est un vecteur ligne, la plus petite distance entre x
0
et
lhyperplan vaut :
d(x
0
, H) =
|b Ax
0
|
A
.
2. tude numrique.
Faites-vous conrmer les rsultats prcdents laide dune tude numrique. On pourra
par exemple utiliser lalgorithme dUzawa.
3

Vous aimerez peut-être aussi