Vous êtes sur la page 1sur 2

Enseirb-Matméca

M2, 2021-2022 Solveurs Linéaires pour les Problèmes Industriels

Devoir à la maison
Consignes:

• Pour chaque groupe, rendre un rapport soit sous forme électronique en pdf (à déposer sur Moodle dans l'onglet
correspondant à votre groupe de TD), soit sous format papier (à déposer au secrétariat) au plus tard le vendredi
17 décembre.

• Rendre également une archive électronique contenant vos codes et chiers de paramètres (expliquer rapidement
dans le rapport comment les compiler et les faire tourner).

• Les graphes devront être lisibles: ne pas oublier la légende, proscrire les couleurs claires, etc. Par ailleurs, utiliser
une échelle logarithmique pour tracer les résidus (set logscale y sous Gnuplot par exemple).

• Commenter et justier les diérents choix à faire, ainsi que les éventuelles dicultés ou suprises rencontrées même
si ce n'est pas explicitement demandé dans une question de l'énoncé.

• Le format MatrixMarket des matrices de la question 2 est le suivant (il peut y avoir un en-tête):
% Commentaires
#lignes #colonnes #elts non nuls
...
i j aij
...

1. Programmer les méthodes du gradient à pas optimal, du résidu minimum et GMRes. Vérier leur comportement
sur des matrices de la forme An = In +αBn> Bn où Bn est une matrice dont les coecients sont tirés aléatoirement
1
entre 0 et 1 et α' n2
.
Tracer la norme des résidus en fonction du nombre d'itérations pour diérentes valeurs de n.
Commenter les résultats.

2. On cherche maintenant à résoudre des problèmes plus proches des applications en considérant 2 matrices tirées
de la collection SuiteSparse (/http://sparse.tamu.edu/):

• Calcul de contraintes thermiques pour un transistor (http://sparse.tamu.edu/TKK/smt),

• Calcul météo avec le modèle de St Venant (http://sparse.tamu.edu/MaxPlanck/shallow_water1),

(a) Des détails sur chacune de ces matrices peuvent être trouvés en ligne.
En déduire le nombre d'itérations théoriques requises pour réduire l'erreur d'un facteur 10−6 avec le gradient
à pas optimal et le résidu minimal pour la première matrice.

(b) Tracer la norme des résidus en fonction du nombre d'itérations pour les méthodes déjà programmées. Que
peut-on dire?

(c) Implémenter la méthode du résidu minimum préconditionné à gauche du cours. On choisira le précondition-
neur SGS: M = (D − E)D−1 (D − F ) (c.f. TD).
Vérier l'eet de ce préconditionneur et conclure.

3. On souhaite également utiliser la méthode du résidu minimum préconditionné à droite. Pour celà, un travail
préliminaire d'écriture de l'algorithme s'impose:

(a) On va donc chercher à résoudre AM −1 u = b avec le résidu minimum et en ayant posé u = M x.


Ecrire tout d'abord cet algorithme naïvement.

1
(b) Expliquer pourquoi on peut (et on doit) remplacer l'étape w = AM −1 r par les deux étapes:
1- Résoudre M z = r,
2- w = Az .
(c) Vérier que le résidu r b − AM −1 u est bien égal à b − Ax.
utilisé dans l'algorithme et qui doit correspondre à
Vérier également qu'à chaque étape, on peut construire la mise à jour de xk+1 directement sans passer
par le calcul de uk+1 . En déduire que l'on n'a jamais besoin de calculer uk et que l'itération de l'algorithme
peut s'écrire:

Résoudre M z = r ,

w ← Az ,
α ←< r, w > / < w, w >,
x ← x + αz ,
r ← r − αw,
k ← k + 1.

(d) Implémenter la méthode et comparer son ecacité avec les versions non préconditionnée et préconditionnée
à gauche.

4. On s'intéresse maintenant à la variante exible du résidu minimum préconditionné à droite. L'adjectif exible
fait référence au fait que l'on modie le préconditionneur à chaque itération.

(a) Vérier que changer de préconditionneur à chaque itération est légitime (i.e. qu'on approche toujours la
solution de Ax = b).
(b) Une possibilité est de permettre au résidu minimum de s'auto-préconditionner! Pour ce faire, on choisit
M = A et on remplace la résolution de Mz = r par une résolution approchée de Az = r calculée en
eectuant quelques itérations du résidu minimum.
Tester ce choix en faisant varier les critères de convergence de la méthode du résidu minimum interne (celle
qui sert de préconditionneur). Commenter ce choix et les résultats obtenus.

5. On peut construire la méthode dite FLEX-GMRes (FLEX pour Flexible) en s'inspirant de la question précédente.

(a) Écrire l'algorithme de GMRes préconditionné à droite. Montrer que, comme dans le cas du résidu minimum
préconditionné à droite, on peut se contenter de faire intervenir le préconditionneur uniquement m fois (et
que c'est à l'intérieur de la méthode d'Arnoldi).
On montrera notamment que si on note Zm := M −1 Vm alors la mise à jour s'écrit x ← x + Zm y , que les
résidus obtenus dans cet algorithme correspondent bien à rk = b − Axk et que le problème de minimisation
reste le même.

(b) Tester cet algorithme avec le préconditionneur SGS.

(c) Montrer que l'on peut choisir un préconditionneur diérent à chaque itération sans modier la limite de la
suite.

(d) Programmer l'algorithme Flex-GMRes standard i.e. celui qui utilise la méthode GMRes pour résoudre
chaque système Azj = vj (il s'agit donc de la version auto-préconditionnée.

(e) Tester cet algorithme avec des matrices An de la question 1.

6. Tester ces algorithmes pour les 2 matrices de la question 2.

7. Que pensez-vous des méthodes utilisées dans ce devoir? Quels sont selon vous leurs avantages/inconvénients par
rapport à d'autres méthodes vues en cours? Sont-elles satisfaisantes pour résoudre les systèmes proposés?

Vous aimerez peut-être aussi