Vous êtes sur la page 1sur 3

cole des Mines de Nancy 2

me
anne
Sance de T.P. n1
Cours : Optimisation
Optimisation sans contrainte
Lobjectif de cette sance de travaux pratiques est de vous faire programmer quelques mthodes
dOptimisation sans contrainte de fonctionnelles. Dans un premier temps, nous nous intreserons
aux fonctions de R dans R, puis aux fonctions de R
n
dans R
EXERCICE N. 1
nergie rayonnante dun corps noir
TPSectD
Lnergie rayonnante dun corps noir dans lintervalle dmission [, +d], par unit de surface
et de temps, est appele mittance monochromatique maximale du corps noir et est note
M(). Sa valeur, exprime en Wb/m
2
est donne par la loi de Planck :
M() =
2hC
2
0
n
2

5
.
1
exp
_
hC
0
nkT
_
1
.
Les constantes intervenant dans cette loi sont :
C
0
2, 997.10
8
m/s : vitesse de la lumire dans le vide.
h 6, 625.10
34
J.s : constante de Planck.
k 1, 380.10
23
J/K : constante de Boltzmann.
: longueur donde (m).
T : temprature absolue de la surface du corps noir (K).
n = 1 : indice de rfraction du milieu (ici le vide).
1. Tracer sur un mme graphique la fonction M() pour les valeurs suivantes de T (K) : 300,
350, 400, 450, 500, 550, 600, 650, 700, 750, 800. Associer chaque courbe trace la valeur
de T correspondante. On prendra [10
7
, 2.10
5
].
Fonctions Matlab utiles : hold on, hold o.
2. On souhaite trouver la valeur

de qui maximise lmittance monochromatique pour


une temprature de surface T donne. quelle contrainte est-on soumis si lon souhaite
utiliser la mthode de la section dore ?
Programmer alors cette mthode pour dterminer

suivant les direntes valeurs de T.


3. Vrier les lois de Wien :

T = A et M(

) = BT
5
, o A et B dsignent des constantes.
4. Reprendre la question 2 en utilisant cette fois la fonction prprogramme de Matlab fmin-
search. Que pensez-vous de la sensibilit de la mthode sur le point de dpart ?
1
EXERCICE N. 2
Mthodes de gradient pour des fonctionnelles quadratiques
TPquadSC
Soit n N

. On considre la matrice A M
n
(R) et le vecteur b R
n
dnis par :
A
n
=
_
_
_
_
_
_
_
_
_
4 2 0 . . . 0
2 4 2
.
.
.
0
.
.
.
.
.
.
.
.
. 0
.
.
. 2 4 2
0 . . . 0 2 4
_
_
_
_
_
_
_
_
_
et b
n
= (1, 1, . . . , 1).
On cherche minimiser dans R
n
, par direntes mthodes, la fonctionnelle :
J
n
(x) =
1
2
(A
n
x, x) (b
n
, x).
On appelle donc (P
n
) le problme :
(P
n
)
_
minJ
n
(x)
x R
n
Remarque : il est important dexploiter, dans les questions qui suivent, le format creux de
la matrice A an de diminuer les temps de calcul.
Fonctions Matlab utiles : sparse, full.
1. Programmer en Matlab la fonctionnelle J
n
, et la reprsenter dans le cas n = 2 sur le pav
[10, 10] [10, 10].
Fonctions Matlab utiles : meshgrid, mesh.
2. Vrier numriquement, pour certaines valeurs de n que J
n
est dnie positive.
Calculer la solution thorique du problme (P
n
) dans le cas n = 2.
Fonction Matlab utile : eig.
3. Nous allons tudier trois mthodes de minimisation. Pour chacune de ces tudes, on de-
mande :
pour le cas n = 2 :
dacher sur une mme gure, et dans le cas n = 2, les courbes de niveau de J
n
, et son
gradient.
Fonctions Matlab utiles : contour, quiver.
pour un point de dpart x
0
, de stocker la liste des x
n
obtenu, avant que le critre de
convergence soit atteint.
de tracer, sur la mme courbe que prcdemment, les lignes qui relient les x
n
.
lorsque n prend les valeurs 10, 20, 30, 50, 100 :
de tester chacune des trois mthodes
Enn, de comparer laide dun graphique ou dun tableau, la rapidit de convergence de
chacune de ces mthodes, ainsi que le temps de calcul par Matlab, suivant les direntes
valeurs prises par n.
2
(a) La mthode du gradient pas xe.
crire une fonction Matlab prenant en argument > 0, un pas xe et x
0
R
n
, un
vecteur dinitialisation, an de mettre en uvre lalgorithme du gradient pas xe,
puis la tester sur J
n
dans chacun des cas ci-dessus. Rpondre aux questions initiales.
Expliquer brivement pourquoi il est important de choisir le pas xe, ni trop grand,
ni trop petit.
(b) La mthode du gradient pas optimal.
i. Soient x R
n
, un point, et d R
n
, un vecteur.
crire une fonction Matlab permettant de minimiser, laide de la mthode de
la section dore, la fonction t J
n
(x +td).
ii. Voici lalgrithme du gradient pas optimal pour la minimisation dune fonction
f donne :
_

_
x
0
est donn.
x
n+1
= x
n
+
n
d
n
d
n
= f(x
n
)

n
= min
R
J
n
(x
n
+.d
n
).
Programmer cet algorithme et rpondre aux questions initiales. On pourra utiliser
la mthode de la section dore pour calculer
n
.
(c) La mthode du gradient conjugu dans le cas dune fonctionnelle quadra-
tique elliptique.
Soit f : R
n
R
x
1
2
(Ax, x) (b, x)
, o A M
n
(R) est une matrice symtrique
dnie positive et b est un vecteur de R
n
. Alors, dans ce cas, lalgorithme du gradient
conjugu scrit :
_

_
x
0
est donn, r
0
= Ax
0
b et d
0
= r
0
.
x
n+1
= x
n
+
n
d
n
,
n
=
(r
n
,d
n
)
(Ad
n
,d
n
)
r
n+1
= Ax
n+1
b
d
n+1
= r
n+1
+
n
d
n
,
n
:=
r
n+1

2
r
n

2
.
Programmer cet algorithme et rpondre aux questions initiales.
3