Analyse Numérique
Problèmes Pratiques
Optimisation
Introduction 1/2
❚ Optimisation = trouver le minimum (/maximum) d'une fonction
minimum global
maximum global
maximum locaux minimum locaux la fonction est
unimodale sur I J
Ph. Leray Analyse Numérique 2
Introduction 2/2
❚ Comment trouver le minimum de f ?
❙ résolution de f'(x)=0
➨ résolution d'un système d'équations …
❙ méthodes "spéciales" de minimisation
Newton pour la minimisation 1/2
❚ Newton "de base" : résolution de g(x)=0
❙ on construit une suite avecxk+1 =xk +h ∇g
( )
xk h=−g( )
xk( )
( ) ( ) ( )
( )
( ) ( )
∂
∂
∂
∂
∂
∂ ∂
∂
∂
∂
∂
∂
=
∇
x x x g
x g x x g
x x x g
x x g x g
x g
n n 1
n 1 2
n 1 2
1 1
1
Λ Λ
Μ Ο Μ
Μ Ο
Λ
Ph. Leray Analyse Numérique 4
Newton pour la minimisation 2/2
❚ on veut résoudre f'(x)=0 g=f'
❙ on construit une suite avecxk+1 =xk +h H
( )
xk .h=−f'( )
xk
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
=
2 n 2
1 n 2
2 2 2
1 2 2
n 1
2
2 1
2 2 1 2
x f x
x f
x f x x
f
x x
f x
x f x
f
Λ Κ
Μ Ο Μ
Μ Λ
H
∂
∂
∂
∂
=
n 1
x f x f '
f Μ
Hessien de f Gradient de f calculs !
Autres méthodes 1/2
❚ On se restreint facilement aux fonctions f : R
n→ R
❚ exemple :
❙ f : R3→ R3
❙ on peut construire g : R3→ R
et min(g)= min(f)
+ + + +
=
y xz
e z
) z sin(
y x ) z , y , x (
f 3 x
2
(
x y2 sin(z)) (
2 z3 ex)
2(
xz y)
2) z , y , x (
g = + + + + + +
Ph. Leray Analyse Numérique 6
Autres méthodes 2/2
❚ Comme dans le cas de la résolution de f(x)=0 :
❙ méthodes utilisant le calcul des dérivées
❘ avantage : rapidité
❘ inconvénient : calcul de la dérivée ! dimension 1 : Gradient (steepest descent) dimension n : Gradient
❙ méthodes utilisant seulement la fonction
❘ avantage : pas de calcul de dérivée
❘ inconvénient : moins rapides dimension 1 : Golden search dimension n : Random search, ...
Golden search 1/8
❚ Principe = réduire l'intervalle [a,b]
Combien faut-il choisir de points ?
a b
f(a) f(b)
Ph. Leray Analyse Numérique 8
Golden search 2/8
❚ Principe (suite)
si on prend c=milieu[a,b], peut-on savoir de quel côté de c est le minimum ?
a b
f(a) f(b)
f(c)
c
Golden search 3/8
❚ Principe (suite)
si on prend c=milieu[a,b], peut-on savoir de quel côté de c est le minimum ?
Non !
➨ il faut 2 points
a b
f(a) f(b)
f(c)
c
Ph. Leray Analyse Numérique 10
Golden search 4/8
❚ Principe (suite)
comment choisir les 2 points ?
a b
f(a) f(b)
f(c)
c f(d)
d
ac=A ad=B ab=1
A/B=B/1 A=B2 (1-B)/(1-A)=(1-A)/1 … B2+B-1=0 nombre d'or
r 1 2 A
1 r 5
B= = − = −
Golden search 5/8
❚ Algorithme
❙ f fonction unimodale sur [a,b]
❙ a1=a ; b1=b ; k=1
❙ répéter
❘ ck=ak+(1-r)(bk-ak) dk=ak+r(bk-ak)
❘ si f(ck)<=f(dk)
ak+1=ak ; bk+1=dk ; (dk+1=ck) sinon
ak+1=ck ; bk+1=bk ; (ck+1=dk)
❙ jusqu'à une certaine précision
convergence linéaire
Ph. Leray Analyse Numérique 12
Golden search 6/8
❚ Exemple f(x) = x
2- sin(x) sur [0,1]
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2
a b c d
0.0000 0.3820 0.6180 1.0000 f(b) f(c)
-0.2268 -0.1975
0.0000 0.2360 0.3820 0.6180
Golden search 7/8
❚ Exemple f(x) = x
2- sin(x) sur [0,1]
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2
a b c d
0.0000 0.3820 0.6180 1.0000 0.0000 0.2360 0.3820 0.6180
f(b) f(c) -0.1781 -0.2268
0.2360 0.3820 0.4721 0.6180
Ph. Leray Analyse Numérique 14
Golden search 8/8
❚ Exemple f(x) = x
2- sin(x) sur [0,1]
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2
a b c d
0.0000 0.3820 0.6180 1.0000 0.0000 0.2361 0.3820 0.6180 0.2361 0.3820 0.4721 0.6180 0.3820 0.4721 0.5279 0.6180 ...
0.4501 0.4502 0.4503 0.4504 0.4501 0.4502 0.4502 0.4503 0.4501 0.4502 0.4502 0.4502 0.4502 0.4502 0.4502 0.4502
Gradient (Steepest Descent) 1/8
❚ Principe
si on prend c n'importe où, peut-on savoir de quel côté de c est le minimum ?
c
Ph. Leray Analyse Numérique 16
Gradient (Steepest Descent) 2/8
❚ Principe
si on prend c n'importe où, peut-on savoir de quel côté de c est le minimum ?
Oui ! ➨ grâce au signe de -f'(c)
c S= - f'(c) / |f'(c)|
Le gradient est orthogonal aux
lignes "iso"
+
Minimum de f
Lignes "iso" : f(x1,x2)= constante
Direction de descente - f’(c)
x1 x2
Gradient (Steepest Descent) 3/8
❚ n=2
Ph. Leray Analyse Numérique 18
Gradient (Steepest Descent) 4/8
❚ Principe (en dimension n)
❙ c∈ Rn f(c)∈ R
❙
❘ avec = direction de descente
❘ α = pas de descente
d c
cρk+1 = ρk +αρ
) c ( f
) c ( d f
k k
′
− ′ ρ=
Gradient (Steepest Descent) 5/8
❚ Principe (en dimension n)
❙ choix du pas de descente α ?
❘ α constant : facile à calculer !
❘ α qui minimise : lourd à calculer
❘ α variable
ex : si f(ck+1) < f(c) (si on est dans la bonne direction) alors α ← 1.1*α (alors on accélère un peu) sinon α ← α/2 (sinon on freine beaucoup)
) c ( f
) c ( c f
k k
k ′
−α ′
Ph. Leray Analyse Numérique 20
Gradient (Steepest Descent) 6/8
❚ Algorithme ( α variable)
❙ initialisation de c1 et de αk
❙ répéter
❘ d=-f'(ck)/norm[f'(ck)]
❘ ck+1=ck+ αk d
❘ si f(ck+1)<f(ck) αk+1 = 1.1*αk sinon
αk+1 = αk / 2
❙ jusqu'à une certaine précision
Gradient (Steepest Descent) 7/8
❚ Exemple
f(x) = (x14 - 16 x12 + 5 x1)/2 + (x24 - 16 x22 + 5 x2)/2Ph. Leray Analyse Numérique 22
-4 -3 -2 -1 0 1 2 3 4
-4 -3 -2 -1 0 1 2 3 4
x 1
x2
Gradient (Steepest Descent) 8/8
❚ Lignes "iso"
Sujet de TD
❚ Golden search
❙ Implémentation en Matlab
❙ Test sur f(x) = x2 - sin(x)
❚ Gradient
❙ Implémentation en Matlab (pas constant et variable)
❙ Test sur f(x) = (x14 -16 x12 +5 x1)/2 + (x24 -16 x22 +5 x2)/2
Ph. Leray Analyse Numérique 24
Conclusion
❚ Méthodes issues de g(x)=0 avec g=f'
❚ Méthodes utilisant seulement f(x)
❙ fonctions à 1 variable : golden search
❙ fonctions à n variables : discret + simplex
❚ Méthodes utilisant f(x) et f'(x) : gradient
❙ problème = choix du α
❘ compromis calculs supplémentaires/ vitesse de convergence
❚ Méthodes utilisant les dérivées d'ordre 2 :
❙ gradient conjugué