TP1 1718 PDF
TP1 1718 PDF
TP1 1718 PDF
© J.-B.A.K. <jean-baptiste.apoung@math.u-psud.fr>
Présentation
On se propose dans la série des Tps qui vont suivre de résoudre numériquement un problème du type :
— TP2 : Z 1
1 0 2
J(u) = u (x) − f (x)u(x) dx
0 12 (3)
K = u ∈ H (]0, 1[) : u(0), u(1) donnés, u(x) ≥ ψ(x) ∀x ∈ [0, 1]
— TP3, TP4 : Z 1
1 0 2
J(u) = u (x) − f (x)u(x) dx
0 12 (4)
K = u ∈ H (]0, 1[) : u(0), u(1) donnés , u00 (x) ≥ 0 ∀x ∈]0, 1[
Dans chacun des cas nous nous focaliserons sur les schémas numériques de résolution des problèmes prenant en compte
le cadre fonctionnel du problème continu et faisant usage des méthodes d’optimisation numérique.
— Dans le TP1, nous regarderons les méthodes de gradient (à pas fixe - optimal, variables) et la méthode du
gradient conjugué
— Dans le TP2, nous regarderons la méthode du gradient projeté, et introduirons la méthode de pénalisation
— Dans le TP3, nous approfondirons la méthode de pénalisation, évoquerons la méthode d’Uzawa
— Dans le TP4, nous aborderons la méthode d’ Active-Set .
Note 1.
Note 2.
Un cadre fonctionnel adapté pour approcher la solution de ces problème est offert par la méthode des élé-
ments finis de Lagrange :
— On se donne une subdivision de 0 = x0 < x1 < . . . < xi < . . . < xN +1 = 1 de [0, 1].
— On définit l’espace éléments finis Pk Lagrange :
Ces espaces sont de bonnes approximations de dimensions finies de H 1 (]0, 1[) (voir Cours).
— On approche alors
PNk
— u par uh = j=0 ui ϕi où Lkh = vect{ϕ0 , . . . , ϕNk }
— J(v) ∀v ∈ H (]0, 1[) par Jh (vh ) ∀vh ∈ Lkh .
1
1
TP1 : Optimisation sans contrainte en dimension finie. Equation de Laplace.
Le maillage est donné par 0 = x0 < x1 < . . . < xi < . . . < xN +1 = 1. Et on pose hi = xi+1 − xi , i = 0, . . . , N + 1
et h = max0≤i≤N +1 hi .
On utilise les éléments finis P1 Lagrange c’est-à-dire k = 1.
Dès lors on pose Kh = {v ∈ C 0 ([0, 1]) : v(0) = a, v(1) = b, v(x) = v(xi )+(x−xi ) v(xi+1h)−v(x
i
i)
∀x ∈ [xi , xi+1 ], i =
0, . . . , N }
On approche le problème (1) par le suivant : min J(uh )
uh ∈Kh
Q-1 : Expliciter ce problème et montrer qu’il est équivalent, si l’on utilise une formule de trapèzes pour le calcul
des intégrales, au suivant
min JN (uN )
uN ∈RN
N
(Vi+1 − Vi )2 (5)
X hi
J
N
(V ) = − (f V
i+1 i+1 + f V
i i )
2hi 2
i=0
où on a posé fi = f (xi ), i = 0, . . . , N + 1, hi = xi+1 − xi , i = 0, . . . N , et VN +1 resp. V0 lorsqu’il est rencontré est
remplacé par b resp. a.
AN uN = fN (6)
où AN et fN sont à préciser.
Q-3 : Y-a-t’il une relation entre la solution du problème (5) et celle du problème (7) ci-dessous discrétisé par
éléments finis P1 Lagrange sur le même maillage avec la même formule de quadrature ?
On considère f (x) = −2, a = 0, b = 1. de sorte que la solution exacte de (2) est u(x) = x2 .
Résoudre le système linéaire (6) en utilisant scipy.linalg.solve, pour différentes valeurs de N et vérifier que la
solution de (5) converge bien pour la norme de H 1 (]0, 1[) vers la solution u de (2) lorsque h tend vers 0.
(On pourra prendre pour chaque N un maillage uniforme de pas h = N1+1 )
(On peut aussi directement résoudre (5) en utilisant scipy.optimize.minimize )
2
Partie - 2 Méthode du gradient à pas fixe
On rappelle l’algorithme du gradient à pas fixe pour une fonctionnelle J : RN → R, un point de départ u0 , un pas ρ et
un test d’arrêt ε préalablement définis :
Q-6 : Mise en oeuvre. Implémenter cet algorithme à travers une fonction de prototype :
Les questions qui suivent permettront de valider l’implémentation et de comprendre certaines propriétés de la méthode.
On créera un script scriptTP1_fixe.py pour répondre à ces questions.
Q-7-1 : Tracer sur une même figure les courbes de niveaux de J2 ainsi que le champ de vecteurs ∇J2 sur le pavé
[−10, 10]×[−10, 10]. On utilisera les fonctions matplotlib.pyplot.contour et matplotlib.pyplot.quiver.
Q-7-2 : Calculer les itérations uk = (uk1 , uk2 ) données par l’algorithme de gradient à pas fixe, et tracer sur la même
figure que précédemment la ligne qui relie les uk . On prendra u0 = (8, 4), ρ = 0.1 et ε = 10−12 .
Q-8-1 : Pour N = 2, 5, 20, 50. Afficher à l’aide de la fonction fprintf le nombre d’itérations ainsi que le temps
de calcul pour chaque N . Tracer sur une même figure les solutions approchées uN , ainsi que la solution exacte de (7).
On prendra ρ = 0.1, ε = 10−12 .
Q-8-2 : Reprendre l’expérience précédente pour ρ = 0.5, puis ρ = 1. Que constate-t-on ? Peut-on choisir le pas ρ
arbitrairement ?
3
Partie - 3 Méthode du gradient à pas optimal
On rappelle l’algorithme du gradient à pas optimal pour une fonctionnelle J : RN → R, un point de départ u0 et un test
d’arrêt ε préalablement définis :
4
Partie - 4 Méthode du gradient conjugué
Cette méthode n’est valable que pour des fonctionnelles de la forme J(u) = 21 (Au, u) − (b, u), où A est une matrice
symétrique définie positive. L’algorithme du gradient conjugué pour une telle fonctionnelle, avec un point de départ u0
et un test d’arrêt ε préalablement définis, est donné par :
Q-14 : Validations : cas N = 2. Reprendre les expériences effectuées dans la méthode du gradient à pas fixe.
Q-15-3 : Pour N = 30 ,
a) Comparer les pas obtenus avec ceux obtenus par la méthode du gradient à pas optimal.
b) Calculer Z 0 ∗ Z, Z 0 ∗ W , Z 0 ∗ (A ∗ W ), W 0 ∗ (A ∗ W ) (W 0 est la transposée de W . On rappelle que la hessienne
∇2 J est une constante que nous désignons par A). Justifier alors pourquoi la méthode du gradient conjugué
convergera beaucoup plus vite que celle du gradient à pas optimal.
5
Utilitaires pour l’optimisation sans contrainte en dimension 1.
Le principe de la méthode est un peu semblable à celui de la dichotomie, mais à chaque étape on calcule la valeur de la
fonction en deux points de l’intervalle [a, b] de départ, définis par :
√
b−a b−a 1+ 5
a0 = a + 2 et b0 = a + avec τ = .
τ τ 2
Cette méthode est valable pour des fonctions dont on connaît une approximation des zéros.
6
L’algorithme de Newton-Raphson permet de trouver un point en lequel une fonction f s’annule, connaissant une ap-
proximation x0 de ce point :