1 Mise en œuvre sur un exemple
Dans cette partie, la méthode du gradient conjugué est appliquée à une fonction quadratique
convexe définie sur R100 . La matrice A et le vecteur b sont fournis dans le fichier [Link].
Question 2 : Définition de la fonction coût
La fonction à minimiser est donnée par :
1
J(x) = xT Ax − bT x
2
Le code MATLAB correspondant est :
1 J = @ (x ,A , b ) 0.5* x ’* A * x - b ’* x ;
Question 3 : Calcul du gradient de la fonction coût
Le gradient de la fonction J s’écrit :
∇J(x) = Ax − b
Il est implémenté en MATLAB de la façon suivante :
1 gradJ = @ (x ,A , b ) A * x - b ;
Question 4 : Calcul de la solution exacte
Le minimum de la fonction est atteint lorsque ∇J(x∗ ) = 0, ce qui conduit à :
Ax∗ = b
La solution exacte est calculée par :
1 x_opt = inv ( A ) * b ;
Question 5 : Implémentation du gradient conjugué
L’algorithme du gradient conjugué est implémenté conformément à la Table 1 de l’énoncé.
1 x = zeros (n ,1) ;
2 r = b - A*x;
3 d = r;
4
5 J_values = zeros (n ,1) ;
6 err = zeros (n ,1) ;
7
8 for k = 1: n
9 alpha = (d ’* r ) /( d ’* A * d ) ;
10 x = x + alpha * d ;
11
12 r_new = r - alpha * A * d ;
13
14 J_values ( k ) = J (x ,A , b ) ;
15 err ( k ) = norm ( x - x_opt ) ;
16
17 beta = -(d ’* A * r_new ) /( d ’* A * d ) ;
18 d = r_new + beta * d ;
19 r = r_new ;
20 end
1
Question 6 : Vérification de la convergence
Après n itérations, le vecteur obtenu est très proche de la solution optimale x∗ , ce qui confirme
la convergence de la méthode.
1 norm ( x - x_opt )
Question 7 : Évolution de la fonction J
La figure suivante illustre la décroissance de la fonction J au fil des itérations.
2
Évolution de J(x k
)
8000
7000
6000
5000
4000
J(xk )
3000
2000
1000
-1000
0 20 40 60 80 100
itération k
Figure 1 – Évolution de la fonction J J(xk )
3
Question 7 (suite) : Convergence vers la solution optimale
L’évolution de la norme de l’erreur ∥xk − x∗ ∥ est représentée en échelle logarithmique.
4
Erreur sur la solution
10 2
10 1
10 0
||x k - x * ||
10 -1
10 -2
10 -3
10 -4
0 20 40 60 80 100
itération k
Figure 2 – Convergence vers la solution optimale
5
Question 8 : Vérification des propriétés P1 et P2
Les produits scalaires dTi Adj pour i ̸= j ainsi que dTi rk sont numériquement proches de zéro,
ce qui confirme :
— la conjugaison des directions (P1),
— l’orthogonalité du gradient avec les directions précédentes (P2).
Les écarts observés sont dus aux erreurs d’arrondi numérique.
Question 9 : Comparaison des complexités
Les temps de calcul de la méthode directe et de la méthode du gradient conjugué sont
comparés à l’aide de la fonction tic/toc.
1 tic
2 x_direct = A \ b ;
3 t_direct = toc ;
4
5 tic
6 % Algorithme du gradient c o n j u g u
7 t_cg = toc ;
La méthode du gradient conjugué est plus efficace que l’approche directe pour des problèmes
de grande dimension.