Sup’Galilée lundi 5 décembre 2016
MACS1
Travaux pratiques d’analyse numérique-TP5
Résolution des systèmes linéaires par des méthodes itératives
Pour ce TP, vous pouvez télécharger des trames de codes (exercices 1 et 2) à l’adresse suivante :
http ://www.math.univ-paris13.fr/delourme/TeachingProjetsNumeriquesMACS1_2016_2017.html
Dans cette première partie du TP, nous nous intéressons à la résolution numérique des systèmes linéaires Ax=bpar des
méthodes itératives du type
(x(0)donné
Mx(k+1) =Nx(k)+b;(1)
avec A=MN.
Dans la suite, on aura besoin de la décomposition suivante :
A=DEF
Dest la matrice diagonale telle que Dii =Aii,Eest la matrice triangulaire inférieure telle que
Eij =(Ai,j si j < i,
0sinon.
et Fest la matrice triangulaire supérieure telle que
Fij =(Ai,j si j > i,
0sinon.
On rappelle que les méthodes itératives de la forme 1 sont convergentes si et seulement si le module du rayon spectral de la
matrice M1Nest strictement inférieur à 1.
Remarque (Crtitère d’arrêt des méthodes itératives).Une question importante lors de la mise en oeuvre d’un algorithme itératif
de type (1) est de savoir quand arrêter les itérations de cet algorithme. Comme la solution exacte xest en générale inconnue, on
ne peut souvent pas évaluer directement la norme de l’erreur e(k)=kx(k)xk. Par contre, à chaque étape de l’algorithme on
peut évaluer le résidu
r(k)=kAx(k)bk.
On décidera alors d’arrêter les itérations lorsque r(k)< ε, où εest une précision donnée (choisie par l’utilisateur en fonction de
la précision souhaitée). On remarquera que si xest la solution du système linéaire Ax=b, alors pour toute norme matricielle
induite,
kx(k)xk≤kA1kkAx(k)bk.
Autrement dit, si le résidu est petit et si la norme de A1n’est pas trop grande, alors l’erreur entre la solution approchée et la
solution exacte reste petite.
D’un point de vue pratique, il faut aussi absolument pouvoir arrêter l’algorithme quand celui ci ne converge pas. Dans ce cas, il
est donc nécéssaire d’ajouter au critère précédent, un critère sur le nombre maximal d’itérations N_iter_max à ne pas dépasser
afin d’éviter les boucles infinies.
Exercice 1 : méthode de Jacobi
La méthode de Jacobi est la méthode itérative de type (1) pour laquelle M=Det N=E+F.
1. On suppose x(k)connu. Vérifier que les composantes du vecteur x(k+1) sont données par
x(k+1)
i=1
Aii
bi
n
X
j=1,j6=i
Aij x(k)
j
(2)
1
2. Algorithme : écrire un algorithme (basé sur la formule (2)) pour résoudre le système linéaire Ax=bà l’aide de la
méthode de Jacobi. Prévoir le critère d’arrêt de votre algorithme. L’algorithme doit pouvoir s’arrêter s’il diverge, il ne
doit pas comporter de boucles infinies. Prévoir un test pour valider votre algorithme.
3. Coder la fonction Jacobi.m qui calcule la solution du système linéaire Ax=bà l’aide de la méthode de Jacobi.
4. Tester votre programme en prenant comme matrice Aune matrice de type diagonale strictement dominante.
5. Tester votre programme pour la matrice suivante Aet le second membre bsuivant :
A=
14 10 6
10 14 2
624
b=
30
26
12
Expliquer le résultat obtenu.
Exercice 2 : méthode de Gauss-Seidel
La méthode de Gauss Seidel est une variante de la méthode de Jacobi qui découle de la remarque suivante : quand on applique
la méthode de Jacobi, chaque composante x(k+1)
idu vecteur x(k+1) est calculée indépendamment des autres. On peut espérer
accélérer la convergence si, pour calculer x(k+1)
i, on exploite les nouvelles composantes x(k+1)
jpour 1ji1en plus des
anciennes x(k)
jpour ji(puisqu’on espère que xk+1 est plus proche de la solution exacte que xk). Ceci revient à remplacer
l’algorithme (2) par
x(k+1)
i=1
Aii
bi
i1
X
j=1
Aij x(k+1)
j
n
X
j=i+1
Aij x(k)
j
(3)
1. Montrer que la méthode de Gauss Seidel décrite ci dessus revient à prendre M=DEet N=F.
2. Écrire l’algorithme associé à la méthode de Gauss-Seidel (basé sur la formule (3)). Prévoir le critère d’arrêt de votre
algorithme (L’algorithme doit pouvoir s’arrêter s’il diverge, il ne doit pas comporter de boucles infinies).
3. Tester votre programme en prenant comme matrice Aune matrice de type diagonale strictement dominante.
Exercice 3 : méthode de Relaxation
Soit ωun paramètre réel. On définit la méthode de relaxation par
x(k+1)
i=ω
Aii
bi
i1
X
j=1
Aij x(k+1)
j
n
X
j=i
Aij x(k)
j
+x(k)
i;(4)
1. Montrer que la méthode de Relaxation correspond à prendre M=1
ωDEet N=1ω
ωD+F.
2. Écrire l’algorithme associé à la méthode de Relaxation.
3. Coder la fonction Relaxation.m qui calcule la solution du système linéaire Ax=bà l’aide de la méthode de
relaxation.
4. Tester votre programme en prenant comme matrice Aune matrice de type diagonale strictement dominante et
ω]0,1[.
Exercice 4 : cas des matrices tridiagonales
Soit nun nombre entier naturel. Soit Ala matrice de taille n×ntri-diagonale telle que les coefficients diagonaux sont égaux
à2, la première sous-diagonale est composée de 1et la première sur-diagonale de 1. On choisit le second membre bRn
tel que la solution du système Ax=bsoit le vecteur 1
n(1,1,··· ,1). On prend x(0) = 0.
1. Appliquer l’algorithme de Jacobi et de Gauss-Seidel pour résoudre le système linéaire Ax=bdans le cas où n= 10.
- Sur un même graphique tracer l”évolution de l’erreur e(k)=kx(k)xket du résidu r(k)=kAx(k)xken fonction
du nombre d’itérations pour l’algorithme de Jacobi et de Gauss-Seidel. Quel est l’algorithme le plus rapide ?
- Pour chacune des deux méthodes, combien d’itérations sont-elles nécessaires pour obtenir une précision sur le résidu
de 1012 ?
2
- Évaluer le rayon spectral de la matrice d’itération de Jacobi et de Gauss-Seidel.
2. On fait maintenant varier nentre 10 et 100 (par exemple par pas de 10).
- Évaluer le nombre d’itérations nécessaires pour obtenir un résidu inférieur ou égal à 1012. Sur un même graphe, tracer
l”évolution du nombre d’itérations en fonction de npour les méthodes de Jacobi et de Gauss-Seidel.
- Sur une autre figure, tracer l’évolution du rayon spectral en fonction de npour méthodes de Jacobi et de Gauss-Seidel.
Exercice 5 : Étude de la méthode de relaxation
On considère la matrice Aet le second membre bde l’exercice précédent dans le cas où n= 10.
1. Tracer l’évolution du résidu en fonction du nombre d’itérations pour ω= 0.2,ω= 0.5et ω= 0.8.
2. Calculer le rayon spectral de la matrice d’itération R=M1Npour ωcompris entre 0et 2. Estimer numériquement
ω?correspondant au paramètre ωpour lequel le rayon spectral de la matrice Rest minimal.
3. Tracer sur un même graphe le résidu en fonction du nombre d’itérations pour la méthode de Jacobi et pour la méthode
de Gauss-Seidel et la méthode de relaxation pour le paramètre ω?optimal ?
4. Que se passe-t-il quand ω= 2.5? Expliquer.
Exercice 6
Soit la matrice
A=IEFavec E=
02 0
100
0 0 0
et F=
0 0 0
0 0 0
11 0
On pose
M=1
ωIEet N=1ω
ω+F.
L’objectif de cet exercice et de tester l’algorithme général 1 avec les matrice Met Mdéfinit ci-dessus pour différentens
valeurs de ω. Dans la suite, on pourra choisir btel que la solution xdu système linéaire Ax=bsoit le vecteur (1,1,1).
Pour ω= 1.5,ω= 1 et ω= 1/2, tracer l’évolution du résidu en fonction du nombre d’itérations. Expliquer les résultats
obtenus.
3
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !