Académique Documents
Professionnel Documents
Culture Documents
Introduction À L'analyse Numérique - Polytech Lille - Résolution de Sytème Linéaire
Introduction À L'analyse Numérique - Polytech Lille - Résolution de Sytème Linéaire
Pour chacune des méthodes présentées, nous nous intéresserons également à leur
coût en terme d’opérations à effectuer et donc de temps de calcul mais aussi en
terme de place mémoire. Nous verrons ainsi que certaines sont plus efficaces que
d’autres en terme de coût d’opérations et que d’autres nécessitent moins de place
mémoire. Les capacités des machines étant fixées, il sera opportun de connaître ces
coûts. Notons que la taille des systèmes que l’on peut résoudre a considérablement
augmenté ces dernières années. En effet, elle est liée aux capacités des machines qui
ont énormément évolué dans les 20 dernières années et qui continuent encore de
s’améliorer. En 1980, la taille maximale des systèmes que l’on pouvait résoudre était
de n = 102 pour une matrice pleine (matrice dont tous les coefficients sont non nuls)
et n = 106 pour une matrice creuse. En 2000 elle était passée à n = 106 pour une
matrice pleine et n = 108 pour une matrice creuse !
Remarque 1. La méthode à ne jamais utiliser pour résoudre un système linéaire
est l’inversion de la matrice.
5
6 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES
1 Algorithme de Gauss
L’algorithme de Gauss ayant été vu au semestre précédent, je ne vais ici que
rappeler les grands principes.
bn
xn = ,
an,n
bn−1 − an−1,n xn
xn−1 = ,
an−1,n−1 (1.4)
···
b1 − a1,2 x2 − ... − a1,n xn
x1 = .
a1,1
1. ALGORITHME DE GAUSS 7
2 −1 3 2 4
3 3 3 2 6
A= , b= .
3 −1 −1 2 6
3 −1 3 −1 6
A = LU.
Exercice 4. Écrire en pseudo langage une fonction qui pour une matrice A donnée
permet d’obtenir sa décomposition LU .
8 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES
Définition 2. Une matrice A ∈ Mn (R) admet une décomposition LDU s’il existe
une matrice triangulaire inférieure L avec des 1 sur la diagonale, une matrice
triangulaire supérieure U avec des 1 sur la diagonale et une matrice diagonale
inversible D telles que : A = LDU.
avec ε petit.
Appliquons à ce système l’algorithme de Gauss. On obtient :
εx + y = 1,
1 1
2−
y =1− .
ε ε
Si on résout ce système à la main, on trouve la solution : x = −1/(1 − 2ε) et
y = (1 − ε)/(1 − 2ε). Lorsque ε tend vers 0, on a donc x tend vers -1 et y tend vers 1.
Mais, si ε est « très petit », pour un ordinateur 1 − 1/ε devient −1/ε et 2 − 1/ε
devient −1/ε et il résolvera donc :
εx + y = 1,
1 1
− y=− .
ε ε
Il obtiendra donc y = 1 et x = 0 qui n’a rien à voir avec le résultat attendu ! Il faut
donc faire très attention à ne pas avoir un pivot trop petit !
Regardons maintenant ce qui se passe si nous intervertissons les deux lignes du
système de manière à avoir un plus grand pivot i.e. que l’on considère le système :
x + 2y = 1,
εx + y = 1.
1 3 −1 4
Coût du pivot
On peut montrer que le coût total du pivot partiel en comparaison et échange est
approximativement de (n2 log2 n)/4.
2 Méthode de Cholesky
La méthode de Cholesky est une méthode directe qui est plus adaptée pour une
certaine classe de matrice.
Dans ce qui précède, il n’y a aucune garantie sur l’existence de la décomposition
LU . Un exemple de matrice symétrique ne possédant pas de décomposition LU est
la matrice suivante :
0 1
A= .
1 0
De plus, appliquer un pivot partiel à une matrice symétrique détruit sa structure
symétrique et un pivot total demande nettement plus d’opérations. Pour les matrices
symétriques et définies positives, il existe une méthode plus adaptée : la méthode de
Cholesky.
2. MÉTHODE DE CHOLESKY 11
1. Une matrice A ∈ Mn (R) est dite définie positive si et seulement si pour tout
vecteur x ∈ Rn \ {0} on a : (Ax, x) > 0.
2. Une matrice A ∈ Mn (R) est dite définie positive si et seulement si toutes ses
valeurs propres sont strictement positives.
3 2
système linéaire par la méthode de Cholesky est donc de l’ordre de n3 + 5n2 + O(n).
L’étape la plus coûteuse de ce procédé est donc celle de factorisation.
Remarquons qu’au vu des coûts de chacune des méthodes, dans le cas d’une
matrice symétrique définie positive, la méthode de Cholesky est environ deux fois
moins coûteuse que la méthode de Gauss.
Remarque 2. Dans de nombreuses applications, comme par exemple lors de la
résolution de systèmes linéaires issus de la discrétisation d’équations aux dérivées
partielles, la matrice A est creuse, i.e., un grand nombre de ses coefficients sont
nuls. Il est alors intéressant de connaître le profil de la matrice. Dans le cas où la
matrice est symétrique, il est donné par les diagonales contenant des coefficients
non nuls qui sont les plus éloignées de la diagonale principale, i.e. par les indices
ji = min{j ∈ {1, · · · , n} tels que ai,j ̸= 0}. Ce renseignement permet de faire un
stockage « profil » de A, en ne stockant, pour chaque ligne i que la valeur de ji et
des coefficients ai,k . On pourra ainsi avoir un large gain de mémoire.
L’avantage de la méthode de Cholesky est de conserver le profil de la matrice !
Donc si on a adopté un stockage profil pour A, on pourra faire de même pour H.
Exercice 9. Soit :
2 −1 0 0 0 1
−1 2 −1 0 0 0
0 −1 2 −1 0 ,
A= b= 0 .
0
0 −1 2 −1 0
0 0 0 −1 2 0
Montrer que la matrice A est définie positive puis résoudre le système Ax = b
par la méthode de Cholesky.
Exercice 10. Le but de l’exercice est de résoudre le système linéaire suivant :
9x + 6y + 3z = 39,
6x + 20y + 6z = 86,
3x + 6y + 3z = 27,
3 Conditionnement
3.1 Problème des erreurs d’arrondis
Supposons que les données A et b du système Ax = b soient connues à une erreur
près (ce qui est souvent le cas dans les applications pratiques). Notons δA ∈ Mn (R)
l’erreur commise sur A et δb ∈ Rn celle commise sur b. On aimerait que les erreurs
commises sur les données du problème n’aient pas de conséquence catastrophique
sur le calcul de la solution du système. On cherche donc en fait à évaluer l’erreur
δx ∈ Rn commise sur x, i.e., à évaluer δx avec x + δx solution (si elle existe) de :
(A + δA )(x + δx ) = b + δb .
cond(A) = ∥A∥∥A−1 ∥.
a2
X
∥A∥2 = Tr(tAA) =
i,j .
i,j
Proposition 1
Propriétés du conditionnement.
Soit A, B ∈ Mn (R) des matrices inversibles et α ∈ R∗ .
• cond(A) ≥ 1.
• cond(αA) = cond(A).
• cond(AB) ≤ cond(A)cond(B).
Théorème 3
Soit A ∈ Mn (R) une matrice inversible et b ∈ Rn , b ̸= 0. Soient δA ∈ Mn (R) et
δb ∈ Rn . On suppose que ∥δA ∥ < 1/∥A−1 ∥. Alors la matrice (A + δA ) est inversible
4. MÉTHODES ITÉRATIVES 15
4 Méthodes itératives
Les méthodes directes que nous avons vues donnent la solution exacte du système
linéaire considéré (aux erreurs d’arrondis près). Elles nécessitent toutefois le stockage
de toute la matrice en mémoire vive. Si celle-ci est pleine et assez grosse, cela peut
poser problème au vu des capacités de l’ordinateur. Comme on l’a déjà mentionné
précédemment, si le système a été obtenu à partir de la discrétisation d’une EDP,
la matrice est en général creuse et a souvent une structure de bande (i.e. que les
coefficients non nuls sont localisés sur certaines diagonales) que la méthode de
Cholesky permet de conserver. Cependant, lorsqu’on a à faire à de très gros systèmes
issus de l’ingénierie (calcul des structures, mécanique des fluides...) où n peut être
de l’ordre de quelques milliers, on cherchera tout de même à utiliser des méthodes
nécessitant le moins de mémoire possible. On a alors intérêt à utiliser des méthodes
itératives qui ne font appel qu’à des produits matrice/vecteur et ne nécessitent pas
le stockage du profil de la matrice mais uniquement des termes non nuls.
Ainsi, pour des gros systèmes il est souvent avantageux d’utiliser des méthodes
itératives qui ne donnent pas forcément la solution exacte en un nombre fini d’itéra-
tions mais une solution approchée à moindre coût par rapport à une méthode
directe.
La méthode de Jacobi consiste à prendre pour M le choix le plus simple i.e. une
matrice diagonale, que l’on notera D.
0 0
a1,1 ... ...
..
.. ..
0 . . .
.. .. .. ..
. . . .
D= .
.. .. .. ..
. . . .
.. .. ..
. . . 0
0 ... ... 0 an,n
Dans ce cas la matrice de la méthode, que l’on notera ici J est donnée par
J = D−1 (E + F ).
La méthode s’écrit aussi :
(k+1) X (k) X (k)
ai,i xi =− ai,j xj − ai,j xj + bi , i ∈ 1, · · · , n. (1.9)
i<j i>j
(k) (k)
lieu de x1 et x2 , et ainsi de suite. Finalement cette idée revient donc à remplacer
(k) (k+1)
dans (1.9) xj par xj pour j < i et on obtient ainsi :
(k+1) X (k) X (k+1)
ai,i xi =− ai,j xj − ai,j xj + bi , i ∈ 1, · · · , n, (1.10)
i<j i>j
Ici la matrice de la méthode, que l’on notera L1 , est donnée par L1 = (D − E)−1 F.
ou encore
D 1−ω
− E x(k+1) = D + F x(k) + b. (1.12)
ω ω
La matrice de cette méthode, que l’on notera Lω est donnée par :
−1
D 1−ω
Lω = − E D + F .
ω ω
Théorème 4
Soit la méthode itérative définie par (1.6) et (1.7). Supposons que l’on ait
∥M −1 N ∥ < 1 (où ∥ · ∥ est soit ∥ · ∥1 soit ∥ · ∥∞ soit ∥ · ∥2 ). Alors pour toute donnée
initiale x(0) , la suite (x(k) )k converge vers la solution du problème (1.1).
Théorème 5
La méthode itérative définie par (1.6) et (1.7) converge pour toute donnée initiale
x(0) , si et seulement si ρ(M −1 N ) < 1, où ρ(M −1 N ) est le rayon spectral de la
matrice M −1 N .
Jacobi converge.
Théorème 8
Soit A une matrice symétrique définie positive. Si ω ∈]0, 2[, la méthode de
relaxation converge.
Théorème 9
Soit A une matrice tridiagonale. Alors les rayons spectraux des matrices de
Jacobi et de Gauss–Seidel sont liés par la relation
ρ(L1 ) = ρ(J)2 ,
0 1 10 −11
4. MÉTHODES ITÉRATIVES 21
1
Exercice 16. Soit a ∈ R et :
1 a a
a 1 a .
A=
a a 1
Montrer que A est symétrique définie positive si et seulement si −1/2 < a < 1. Puis
montrer que la méthode de Jacobi converge si et seulement si −1/2 < a < 1/2.
0 0 1 3 0
Montrer que les méthodes itératives de Jacobi et de relaxation (pour 0 < ω < 2),
appliquées à ce système linéaire, sont convergentes.
22 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES
À savoir
Méthodes directes
— Résoudre un système linéaire donné en appliquant l’algorithme de Gauss
— Écrire l’algorithme de Gauss en pseudo-code
— Calculer la décomposition LU ou LDU d’une matrice donnée
— Écrire l’algorithme de la décomposition LU ou LDU en pseudo-code
— Résoudre un système linéaire donné à l’aide de la décomposition LU ou LDU
— Écrire l’algorithme de résolution d’un système linéaire à l’aide de la décomposi-
tion LU ou LDU en pseudo-code
— Connaître les limites/cas d’applications des différentes méthodes directes
(Gauss, LU/LDU , Cholesky)
— Connaître l’ordre de grandeur du nombre d’opérations élémentaires des mé-
thodes directes de résolution de systèmes linéaires
Méthodes itératives
— Connaître le principe général d’une méthode itérative (A = M − N , forme des
itérées, etc.)
— Connaître la matrice des méthodes de Jacobi, Gauss–Seidel et sa relaxation
— Écrire la décomposition et calculer quelques itérées des différentes méthodes
itératives à une matrice donnée
— Écrire les algorithmes des méthodes de Jacobi, Gauss–Seidel et sa relaxation
en pseudo-code
— Situer l’efficacité des 3 méthodes itératives les unes par rapport aux autres
— Connaître les principaux résultats de convergence des 3 méthodes itératives
(Théorèmes 4 à 8 sauf le 5) et vérifier s’ils sont applicables à une matrice donnée
Compétences transversales
— Étant donnée une méthode algorithmique donnée de manière formelle, être
capable de
— l’appliquer à un exemple précis
— écrire l’algorithme en pseudo-code
— compter le nombre d’opérations élémentaires