Séance de TD 2

Transcription

Séance de TD 2
2ème année
ENSEM ANA-2
Séance de TD 2
Optimisation sans contrainte : Newton
EXERCICE N. 1
Méthode de Newton en dimension un
On s’intéresse à la fonction sinus cardinal (sinc)
R+∗ → R
sin(x)
f :x→
x
(1)
1. Tracer la fonction f pour des valeurs de x positives allant jusqu’à 100.
2. Nous allons commencer à chercher le plus petit zéro, noté x̃, de f grâce à une méthode de
Newton. Faites une nouvelle figure de f , entre 0 et 7, pour un pas h. Donner une estimation
visuelle de x̃ que nous noterons dorénavant x(0) . Cette valeur servira à initialiser la méthode
de Newton.
3. Programmer la méthode de Newton pour une fonction générale et faire une recherche du
point x̃. Etudier en détails la méthode de Newton, notamment sa sensibilité à l’initialisation.
Mettez en évidence l’ordre de convergence quadratique de la méthode d’un point de vue
numérique. Qu’est ce que cela signifie du point de vue des chiffres significatifs gagnés sur
le calcul du zéro ? Qu’obtenez-vous avec la fonction matlab fzero ?
4. Programmer deux nouvelles méthodes de Newton où la dérivée n’est plus donnée de manière
exacte cette fois mais est approchée par les formules
f 0 (x) ≈
f (x + h) − f (x)
h
(2)
et
f (x + h) − f (x − h)
.
(3)
2h
Etudiez en détails ces deux méthodes en comparant notamment leur comportement à celui
de la méthode de Newton avec dérivée exacte.
f 0 (x) ≈
5. On cherche maintenant le minimum global positif de f . Adaptez les éléments numériques
précédents sans avoir recours à l’évaluation de f 0 et f 00 (approche purement numérique).
Que remarquez-vous, notamment au niveau de la qualité de l’approximation ? Que vous
aurait donné la fonction matlab fzero ? Regardez également ce que donne la fonction fminsearch.
1
EXERCICE N. 2
Méthode de Newton en dimension supérieure
1. On s’intéresse maintenant à la méthode de Newton en dimension n. Programmer une
fonction matlab qui permette, étant donnés une fonctionnelle J, son gradient DJ et son
hessien D2 J, de renvoyer la solution obtenue ainsi que le nombre d’itérations pour arriver
à cette solution par Newton.
2. Tester cette fonction sur la fonctionnelle : J1 définie par
1
J1 (x1 , x2 ) = (x21 + x22 + x1 x2 ) − x1 − x2 .
2
(4)
Faites une étude théorique et graphique préalable pour bien comprendre ce que vous devez
obtenir.
3. Utiliser l’algorithme de Newton pour faire une étude de recherche de minimum. Etudier
notamment les problèmes de convergence de la méthode par rapport l̀a donnée initiale x(0)
ainsi que le comportement de l’erreur en norme euclidienne.
4. Coder une version alternative de l’algorithme de Newton où la matrice hessienne est recalculée non pas à chaque itération mais toutes les tl itérations.
5. Reprenez la fonctionnelle quadratique en dimension n du TD1 et faites une étude de la
méthode de Newton (erreur, sensibilité à l’initialisation,...).
6. Considérer maintenant la fonctionnelle JBump définie par
2 −(x
JBump (x1 , x2 ) = −e−(x1 −1)
Faites une étude complète avec l’algorithme de Newton.
2
2
2 −1)
.
(5)