Université Pierre et Marie Curie Année universitaire 2011-2012 5 LM 335 : Calcul numérique matriciel Travaux pratiques (Scilab) Méthode du gradient conjugué Exercice 5.1 On se propose de résoudre le système Ax = b, où A est une matrice réelle symétrique définie positive de taille n×n et b un vecteur de Rn , par la méthode du gradient conjugué. La méthode de gradient utilisée pour résoudre le système Ax = b peux aussi être vue comme une méthode pour minimiser la fonction f définie par 1 x ∈ Rn , f (x) = hAx, xi − hb, xi . 2 La méthode du gradient conjugué est définie comme suit : Soit x0 ∈ Rn donné. On construit les suites de vecteurs de Rn (xk )k , (rk )k et (pk )k par p0 = r0 = b − Ax0 , puis, pour k ≥ 0, xk+1 = xk + αk pk , rk+1 = rk − αk Apk , (1) p k+1 = rk+1 + βk pk , où αk = satisfait. krk k2 <Apk ,pk > et βk = krk+1 k2 . krk k2 Les itérations (1) sont répétées jusqu’a ce qu’un critère d’arrêt soit 1. Programmer la méthode de gradient conjugué dans une fonction [x, iter] = GradientConj(A, b, tol, iterM ax, x0 ) où x0 est le vecteur initial, x est la solution proposée par la méthode du gradient conjugé au bout d’un nombre d’itérations iter. Les itérations de la méthode du gradient conjugué s’arrêtent si ||b − Ax||2 ≤ tol ou si le le nombre maximal d’itérations iterM ax est atteint. 2. On souhaite maintenant voir l’impact du condionnement de la matrice A sur la performance de la méthode du gradient conjugué. On s’intéressera plus particulièrement à la résolution du système Ax = (0, . . . , 0). La solution de ce système est xexact = (0, . . . , 0). On construit la matrice A de la façon suivante : i−1 A = U ∗ diag(α0 = 1, . . . , α n−1 , . . . , α)U , où U est une matrice orthogonale, i.e., U ∗ = U −1 et α ≥ 1. On a donc cond2 (A) = cond2 (diag(1 = α0 , . . . , α(i−1)/(n−1) , . . . , α)) = α . Résoudre le système Ax = (0, . . . , 0) pour plusieurs conditionnements i.e. plusieurs valeurs de α puis tracer le nombre d’itérations iter nécessaires pour atteindre la tolérance tol (On prendra iterM ax assez grand pour assurer que l’arrêt de l’algorithme du gradient conjugué soit uniquement dû au fait que la tolérance tol soit atteinte). 1