Rapport sur les méthodes d’optimisation – Thomas Astoul & Quentin Galy- 2015 3/11
I. Introduction
Lors de problèmes physiques, la recherche d’extremum pour trouver des positions d’équilibres
stables ou instables est très fréquente. Dans le cadre d’un problème d’optimisation, l’objectif est de
minimiser une fonction coût. Il peut être difficile de minimiser cette fonction coût et il existe
plusieurs méthodes pour s’approcher le plus possible de la valeur minimale recherchée.
Une de ces méthodes est l’approximation par la méthode de gradient conjugué que nous avons
essayé de mettre en œuvre sous Matlab. Nous avons aussi comparé cette méthode avec la méthode
de gradient simple.
II. Méthode de gradient conjugué.
La méthode de gradient conjugué est un algorithme de résolution des systèmes linéaires de la forme
avec A une matrice symétrique définie positive. Cette méthode itérative converge en un
nombre fini d'itérations, au maximum égal à la taille N de la matrice carrée A.
Pour résoudre ce système, on va chercher à minimiser la fonction :
En effet, si on souhaite minimiser la fonction, on a :
L'idée principale de la méthode du gradient conjugué est de trouver le minimum d'une fonction
selon une première direction puis on cherche le minimum suivant selon la direction qui
est perpendiculaire à .
A chaque itération, on applique la relation suivante :
III. Présentation de l’algorithme
- On définit tout d’abord la matrice A définie positive et le vecteur b
- On initialise l’algorithme avec un vecteur arbitraire et on détermine une première direction
direction_0 opposée au gradient en x0 :
- On créer une boucle allant de 0 à k-1
- On calcule le nouveau vecteur connaissant et direction0 :
- On calcule la valeur du nouveau gradient à la position x1 :
- On peut alors déterminer la nouvelle direction de recherche
-
- On peut ainsi calculer le nouveau alpha2 et déterminer la nouvelle position et ainsi de suite.
On itère la boucle jusqu’à atteindre une limite que l’on se fixe. Dans notre cas la boucle est arrêtée
lorsqu’on atteint une précision de 0.001.