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

  1. Calculer les 3 premiers itérés xk
  2. Tracer la trajectoire sur le plan
  3. Observer la norme du gradient
  4. Comparer avec le minimum théorique
  5. Conclusion

Correction :

  1. Gradient : ∇f = (2x,2y)
  2. x0 = (2,1) → ∇f = (4,2) → x1 = (2,1) - 0.1*(4,2) = (1.6,0.8)
  3. x1 → ∇f = (3.2,1.6) → x2 = (1.6,0.8) - 0.1*(3.2,1.6) = (1.28,0.64)
  4. x2 → ∇f = (2.56,1.28) → x3 = (1.28,0.64) - 0.1*(2.56,1.28) = (1.024,0.512)
  5. 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)

  1. Calculer le gradient et la hessienne
  2. Calculer la direction de Newton
  3. Faire une itération
  4. Observer la convergence
  5. Conclusion

Correction :

  1. Gradient : ∇f = (2x,2y), Hessienne : H = [[2,0],[0,2]]
  2. Direction : d = − H−1 ∇f = − (1/2)*(2,2) = (−1,−1)
  3. x1 = x0 + d = (0,0)
  4. Gradient ||∇f(x1)|| = 0 → convergence en 1 itération
  5. 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

  1. Calculer les premiers itérés pour gradient
  2. Calculer les premiers itérés pour Newton
  3. Tracer les trajectoires
  4. Observer les différences
  5. Conclusion

Correction :

  1. Gradient : ∇f = (2x,10y), x0=(1,2), x1 = (1−0.1*2,2−0.1*10*2) = (0.8,0)
  2. Newton : H = [[2,0],[0,10]] → d = − H−1 ∇f = − (1,0) → x1 = (0,2)
  3. Trajectoire : gradient zigzag, Newton plus direct
  4. Observation : Newton plus rapide et stable
  5. 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