• Aucun résultat trouvé

Analyse Numérique Problèmes Pratiques

N/A
N/A
Protected

Academic year: 2021

Partager "Analyse Numérique Problèmes Pratiques"

Copied!
13
0
0

Texte intégral

(1)

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

(2)

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 +hg

( )

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

Λ Λ

Μ Ο Μ

Μ Ο

Λ

(3)

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 = + + + + + +

(4)

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)

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

α

(11)

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)/2

(12)

Ph. 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

(13)

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é

Références

Documents relatifs

Dans chacun des cas suivants, déterminer la valeur de c et leur minimum sachant que leur maximum est

BnB MaxSAT solvers solve a MaxSAT instance by minimizing the number of un- satisfied clauses, while MinSatz solves a MinSAT instance by maximizing the number of unsatisfied clauses..

— si on atteint le puits, alors on a un chemin augmentant de la source vers le puit qu’on peut utiliser pour augmenter le flot (on prend un plus court chemin, comme dans EK, si on

Comme a l’exercice 6, vous pourrez utiliser un probleme de flot entier plutot qu’un flot classique, c’est a dire que les capacites sont des entiers et que l’on requiert que la

Quel est semble être le lien entre la forme canonique de chaque fonction et les résultats de la

Quel est semble être le lien entre la forme canonique de chaque fonction et les résultats de la

von Dantscher a repris la question d'une façon différente et a donné un procédé permettant de reconnaître au bout d'un nombre fini d'opérations si la fonction est extremum, le seul

Déterminer le minimum local de f sur [-1;1] et en quelle valeur il est atteint.. Déterminer le maximum local de f sur [3;4] et en quelle valeur il est