1 Optimisation sans contrainte
Transcription
1 Optimisation sans contrainte
Université Lyon 1 Master Mathématiques Générales 2ème année Modélisation Année 2014-2015 TP 5 Optimisation Compte rendu à rendre au plus tard le 29 avril 2015 1 Optimisation sans contrainte 1.1 Fonction quadratique On veut résoudre numériquement le problème suivant : inf J(x) x∈Rn (1) où J est une fonction quadratique définie de la manière suivante : J(x) = 1 < Ax, x > − < b, x > 2 avec A ∈ Mn (R) et b ∈ Rn . On considère n = 3 et −1 1 et b = −1 7 4 3 A = 4 6 2 3 2 5 1. Étude théorique préliminaire (a) Montrer que J admet un unique minimum sur R3 . (b) Calculer le minimum de la fonction. 2. Étude numérique On relèvera pour chaque méthode le nombre d’itération et le temps de calcul. On pourra utiliser utiliser la fonction tic; ...; toc; pour obtenir le temps de calcul. (a) Minimum Scilab. Calculer numériquement le minimum Xe de J en utilisant la fonction fminsearch. (b) Méthode de relaxation. i. Programmer la méthode de relaxation en utilisant la fonction fminsearch pour calculer le mini(k+1) (k+1) (k) mum des applications Jik : y 7→ J(x1 , . . . , xi−1 , y, xi+1 , . . . , x(k) n ). ii. Programmer la méthode de relaxation en utilisant le fait que J est quadratique. iii. Pour ces deux fonctions, tester différentes valeurs de X0 avec tol=1E-12 et N=500. Que peut-on constater ? (c) Méthode du gradient à pas constant. i. Programmer la méthode du gradient à pas constant. ii. À quel intervalle le pas de la méthode doit-il appartenir pour que la méthode converge ? 1 iii. Tester différentes valeurs de X0 et de ρ avec tol=1E-12 et N=500. Que peut-on constater ? (d) Méthode du gradient à pas optimal. i. Programmer la méthode du gradient à pas optimal en utilisant la fonction fminsearch pour calculer le minimum de l’application Jρk : ρ 7→ J(x(k) − ρ∇J(x(k) )). ii. Programmer la méthode du gradient à pas optimal en utilisant le fait que J est quadratique. iii. Pour ces deux fonctions, tester différentes valeurs de X0 pour tol=1E-12 et N=500. Que peut-on constater ? (e) Comparatif. Faire un tableau comparatif des différentes méthodes en terme de nombre d’itérations et de temps de calcul pour différents X0 et conclure. 1.2 "Banane" de Rosenbrock On va comparer les différentes méthodes d’optimisation sur la fonction J : R2 → R définie par : J(x, y) = (x − 1)2 + 10(x2 − y)2 (2) 1. Étude théorique (a) La fonction J est-elle coercive ? convexe ? (b) Montrer que J admet un unique minimum global sur R3 et calculer ce minimum. 2. Étude numérique (a) Minimum Scilab. Calculer numériquement le minimum Xe de J en utilisant la fonction fminsearch. (b) Visualisation i. Visualiser la fonction en 3D sur [−2, 2]2 (fonction surf). ii. Visualiser les 25 premières lignes de niveau sur [−2, 2]2 (fonction contour). iii. Qu’observez-vous en visualisant plus de lignes de niveaux ? Pourquoi J n’est pas simple à minimiser ? Remarques : — On pourra utiliser la commande xset("fpf",string=" ") pour éviter l’affichage de la valeur des lignes de niveau. — Pour changer les couleurs des surfaces, on pourra utiliser les lignes de commande suivantes : f=gcf(); // récupération de la figure f.color_map = jetcolormap(64); // coloration de bleu à rouge colorbar(-1,1); // changement de l’échelle (c) Méthodes numériques i. On fixe le point de départ de la méthode à X0=(0,1), le nombre maximal d’itérations à N=200 et la tolérance à tol=1E-12. Utiliser les méthodes précédentes pour minimiser J. Que peut-on constater ? Quel ρ peut-on expérimentalement prendre pour que la méthode du gradient à pas constant converge vers la solution ? ii. Augmenter le nombre maximal d’itérations. Les méthodes convergent-elles ? (d) Comparatif. Faire un tableau comparatif des différentes méthodes en terme de nombre d’itérations et de temps de calcul pour différents X0 et conclure. 2 2 Optimisation avec contrainte On veut résoudre numériquement le problème suivant : inf J(x) (3) x∈O où J est une fonction quadratique définie de la manière suivante : J(x) = 1 < Ax, x > − < b, x > 2 avec A ∈ Mn (R) et b ∈ Rn . L’espace de résolution O est le suivant : O = {x ∈ Rn , θk (x) = 0, k ∈ J0, mK} où les θk : Rn → R définissent les contraintes. On considère n = 3 et 2.1 3 −1 2 A = −1 3 1 2 1 4 −3 et b = 4 . −2 Contrainte d’égalité linéaire On considère la contrainte x1 + x2 − x3 = 1. 1. Étude théorique préliminaire (a) Donner les contraintes θk pour le problème considéré. (b) Calculer le minimum de la fonction en utilisant la méthodes des multiplicateurs de Lagrange. (c) Définir le projecteur orthogonal Π sur le plan x1 + x2 − x3 = 1. 2. Étude numérique (a) Minimum Scilab Scilab ne comporte pas nativement de fonction permettant de réaliser le minimum sous contrainte d’une fonction. Il est cependant possible d’utiliser fminsearch en utilisant le projecteur lorsque qu’on en dispose d’un. i. Programmer une fonction PL qui, pour une fonction J et un projecteur P donnés, renvoie J(P (X)). ,→ Attention : pour pouvoir utiliser fminsearch, il faut que la fonction PL ne prenne que X en argument. J et P devront donc être codés "en dur" dans la fonction. ii. Calculer numériquement le minimum Xe de J en utilisant la fonction fminsearch. Que peut-on constater ? ,→ Attention : si Xf=fminsearch(PL,X0), on doit prendre Xe=P(Xf) pour que le minimum soit dans l’ensemble O. (b) Méthode de relaxation Peut-on utiliser la méthode de relaxation dans ce cas ? Pourquoi ? (c) Méthode de gradient projeté à pas constant i. Programmer la méthode du gradient projeté à pas constant pour un projecteur P . ii. À quel intervalle le pas de la méthode doit-il appartenir pour que la méthode converge ? iii. Tester différentes valeurs de X0 et de ρ avec tol=1E-12 et N=500. Que peut-on constater ? (d) Newton i. Écrire le problème sous la forme F (X) = 0. 3 ii. Programmer une méthode Newton et résoudre F (X) = 0. iii. Comparer le résultat et le temps de calcul obtenus en utilisant la fonction fsolve. (e) Comparatif. Faire un tableau comparatif des différentes méthodes en terme de nombre d’itérations et de temps de calcul pour différents X0 et conclure. 2.2 Contrainte d’égalité non linéaire X On considère maintenant la contrainte x2i = 1. 1≤i≤n 1. Étude théorique préliminaire (a) Donner les contraintes θk pour le problème considéré. (b) Calculer le minimum de la fonction en utilisant la méthodes des multiplicateurs de Lagrange. ,→ On ne cherchera pas à exprimer explicitement le minium. On pourra en revanche tracer la courbe du polynôme dont il est la racine et donner une approximation numérique en utilisant fsolve. 2. Étude numérique (a) Peut-on utiliser fminsearch dans ce cas ? (b) Peut-on utiliser les méthodes de relaxation et de gradient projeté à pas constant dans ce cas ? Pourquoi ? (c) Newton i. Écrire le problème sous la forme F (X) = 0. ii. Résoudre F (X) = 0 en utilisant la méthode de Newton. iii. Comparer le résultat et le temps de calcul obtenus en utilisant la fonction fsolve. (d) Comparatif. Faire un tableau comparatif des différentes méthodes en terme de nombre d’itérations et de temps de calcul pour différents X0 et conclure. 3 Approximation aux moindres carrés Soit un intervalle [a, b] avec a < b, et une fonction F continue sur [a, b]. On souhaite approcher au mieux cette fonction par un polynôme de degré ≤ n en posant le problème comme un problème de minimisation. Pour cela, on définit (xk )0≤k≤N une subdivision de [a, b] en N points, avec N ≥ n. On définit alors l’écart entre deux fonctions f et g continues sur [a, b] de la manière suivante : s X E(f − g) = (f (xk ) − g(xk ))2 0≤k≤N Soit Pn l’espace vectoriel des polynômes de degré n. On cherche le polynôme de Pn le plus proche de f , c’est à dire que l’on doit résoudre le problème d’optimisation : min E(f − p) p∈Pn Ce problème de minimisation s’écrit aussi en fonction des coefficients du polynôme cherché X min |a0 + a1 xk + · · · + an xnk − f (xk )|2 (a0 ,a1 ,...,an )∈Rn+1 0≤k≤N 4 (4) (5) 1. Étude théorique préliminaire (a) Montrer que la forme E est une norme sur PN . En déduire que c’est une norme sur Pn . (b) Écrire le problème (??) sous forme matricielle min (a0 ,a1 ,...,an )∈Rn+1 ||Aa − d||2 avec A ∈ MN +1,n+1 (R) et d ∈ Rn+1 . Comment s’appelle la matrice A ? (c) Montrer que le minimum est atteint pour a solution de At Aa = At d 2. Étude numérique (a) Calculer le polynôme de meilleure approximation au sens des moindres carrés de sin(x) sur [−2π, 2π] et de ln(1 + x) sur [0, 2]. ,→ On pourra vérifier que les fonctions sont bien approchées en traçant pour chaque cas la fonction et son approximation sur une même figure. 1 (b) Calculer le polynôme de meilleure approximation au sens des moindres carrés de sur [−5, 5] 1 + x2 pour n = N . Que se passe-t-il lorsque n et N augmente ? 5