MATLAB visualisation
Leçon 1.5 : Implémentation et visualisation
Objectif
Acquérir les compétences pratiques pour programmer et analyser les méthodes de descente.
1. Architecture du code
5.1.1 Structure modulaire
On sépare le code en fonctions :
- Calcul du gradient
- Calcul de la direction
- Recherche linéaire
- Condition d’arrêt
- Visualisation
5.1.2 Interface simulateur
Permet de lancer différentes méthodes et de choisir :
- Point initial
- Fonction objectif
- Méthode (gradient, Newton)
- Paramètres de convergence
5.1.3 Gestion des sorties
On conserve :
- Valeurs des itérés xk
- Valeur de f(xk)
- Norme du gradient ||∇f(xk)||
2. Visualisation des résultats
5.2.1 Tracé des courbes de niveau
Pour f(x,y), on représente les lignes de même valeur :
f(x,y) = c
5.2.2 Superposition des itérés
On trace les points xk successifs pour observer la trajectoire :
- Gradient : trajectoire en zigzag
- Newton : trajectoire directe
5.2.3 Échelles semi-logarithmiques
Permet de mieux visualiser la décroissance du gradient ou de f(xk) :
y = log(||∇f(xk)||)
5.2.4 Interprétation graphique
Identifier :
- Zones de convergence rapide
- Oscillations
- Impact du pas α
3. Exercices corrigés
Exercice 1
Énoncé : Implémenter la méthode du gradient pour f(x,y) = x2 + y2, départ x0 = (2,1), α = 0.1, critère d’arrêt ||∇f|| < 0.01
- Calculer les 3 premiers itérés xk
- Tracer la trajectoire sur le plan
- Observer la norme du gradient
- Comparer avec le minimum théorique
- Conclusion
Correction :
- Gradient : ∇f = (2x,2y)
- x0 = (2,1) → ∇f = (4,2) → x1 = (2,1) - 0.1*(4,2) = (1.6,0.8)
- x1 → ∇f = (3.2,1.6) → x2 = (1.6,0.8) - 0.1*(3.2,1.6) = (1.28,0.64)
- x2 → ∇f = (2.56,1.28) → x3 = (1.28,0.64) - 0.1*(2.56,1.28) = (1.024,0.512)
- Minimum théorique : (0,0) ; convergence observée
Exercice 2
Énoncé : Implémenter la méthode de Newton pour f(x,y) = x2 + y2, départ x0 = (1,1)
- Calculer le gradient et la hessienne
- Calculer la direction de Newton
- Faire une itération
- Observer la convergence
- Conclusion
Correction :
- Gradient : ∇f = (2x,2y), Hessienne : H = [[2,0],[0,2]]
- Direction : d = − H−1 ∇f = − (1/2)*(2,2) = (−1,−1)
- x1 = x0 + d = (0,0)
- Gradient ||∇f(x1)|| = 0 → convergence en 1 itération
- Newton converge très rapidement
Exercice 3
Énoncé : Comparer trajectoires pour f(x,y) = x2 + 5y2, départ (1,2), pas α = 0.1, méthode gradient vs Newton
- Calculer les premiers itérés pour gradient
- Calculer les premiers itérés pour Newton
- Tracer les trajectoires
- Observer les différences
- Conclusion
Correction :
- Gradient : ∇f = (2x,10y), x0=(1,2), x1 = (1−0.1*2,2−0.1*10*2) = (0.8,0)
- Newton : H = [[2,0],[0,10]] → d = − H−1 ∇f = − (1,0) → x1 = (0,2)
- Trajectoire : gradient zigzag, Newton plus direct
- Observation : Newton plus rapide et stable
- Conclusion : visualisation permet de comprendre efficacité et comportement des méthodes
Exercices d’entraînement
Exercice A
- f(x,y) = x2 + 2y2
- Départ x0 = (3,1)
- Méthode gradient, pas 0.1, critère ||∇f|| < 0.01
- Tracer trajectoire
- Commenter convergence
Exercice B
- f(x,y) = x2 + 4y2
- Départ x0 = (1,2)
- Méthode Newton
- Comparer avec gradient
- Analyser trajectoire et vitesse de convergence

Enregistrer un commentaire
0 Commentaires