|
Visites depuis le 14 juin 2002 |
Chapitre I : Rappels sur les systèmes
d’équations linéaires - Inversion de matrices
2. Méthode du pivot
2.1. Méthode
de GAUSS-JORDAN
2.2. Méthode
de GAUSS
2.3. Cas des matrices
bandes
3. Méthodes itératives
3.1. Méthode
de JACOBI
3.2. Méthode
GAUSS-SEIDEL
3.3. Facteur de relaxation
Considérons le système linéaire suivant de n
équations à n inconnues :
Ce système s’écrit sous la forme :
| si |
![]() |
i représente le numéro de ligne et j le numéro
de colonne.
Une matrice est dite triangulaire si
pour j>i ou pour i>j. Une matrice bande est une matrice dont tous les éléments
sont nuls sauf sur une bande autour de la diagonale principale. Ces matrices
se rencontrent dans la résolution d'équations aux dérivées
partielles par la méthode des différences finies ou dans
la méthode des éléments finis.
La résolution du système précédent peut
s’effectuer par deux méthodes :
- la méthode directe (dite méthode du pivot),
- la méthode itérative.
La méthode du pivot est commode pour les systèmes denses d’ordre supérieur, ainsi que pour les matrices bandes même d’ordre élevé. La méthode itérative est mieux adaptée aux autres matrices d’ordre élevé et comportant de nombreux éléments nuls.
2.1.1. Description de la méthode
C’est la méthode la plus utilisée. Pour la présenter,
nous allons prendre l’exemple d’un système de 4 équations
à 4 inconnues :
La méthode classique de Cramer qui repose sur les déterminants,
donne :
où
est le déterminant de la matrice, et
celui déduit de
en y remplaçant la jème colonne par la colonne
second membre.
Pour résoudre le système, cette méthode nécessite
n4 opérations si n est le rang de la matrice.
Dans la méthode du pivot, on choisit successivement chaque ligne
comme ligne pivot ; le pivot étant le 1er élément
non nul de la ligne.
| Ainsi, on divise la ligne n° 1 du système par |
![]() |
On annule le 1er terme de chacun des autres lignes : à
la 2ème ligne, on retranche la 1ère
multipliée par
,
à la 3ème ligne, on retranche la 1ère
multipliée par
,
à la 4ème ligne, on retranche la 1ère
multipliée par
.
| Le système devient : | ![]() |
a- La 2ème ligne est considérée
maintenant comme une ligne pivot, et
comme un élément pivot. On répète sur cette
2ème ligne les opérations précédentes,
et on obtient après division de cette ligne par
:
On annule les autres termes de la seconde colonne ; c’est à
dire : à la 1ère ligne, on retranche la seconde
multipliée par
,
à la 3ème ligne, on retranche la 2ème
multipliée par
,
à la 4ème ligne, on retranche la 2ème
multipliée par
.
| On obtient : | ![]() |
a- On considère ensuite la 3ème
ligne comme pivot, puis la 4ème ligne ; ce qui donne
:
![]() |
soit la solution du système : | ![]() |
D’une manière générale, si on applique cette procédure
au système
où A est une matrice d’ordre n,
Pour les k premiers éléments diagonaux, on
a :
si
Pour les colonnes 1 à k éléments non diagonaux,
on a :
si
et
;
étant les composantes du vecteur
.
L’étape suivante consiste à prendre
comme élément pivot.
On divise la (k+1) ième ligne par cet élément,
ce qui donne pour j=k+1 à n :
et
si
et
Pour chaque ligne
,
la ligne k+1 multipliée par
est retranchée.
| On obtient alors le système |
![]() |
Résumé de la procédure :
1. Transformation de la matrice [A,y] en une matrice [I,y’] :
et
Pour k variant de 0 à n-1, on a :
![]()
![]()

![]()
2. La solution xi du système résultant s’écrit
alors :
; avec
Le nombre d’opérations nécessaires au passage de [A
,y](k) à [A, y](k+1) est :
n. additions (= n.a) = n. multiplications (= n.m) = (n-1).(n-k+1)
n. divisions (= n.d) = (n-k+1)
Le passage de [A ,y] à [A, y](n) nécessite
environ
opérations de calculs.
La méthode ainsi exposée, présente un certain nombre de défauts :
2.1.2. Exemple
| Soit le système à résoudre : | ![]() |
On forme tout d’abord la matrice [A, y] :
K=1 k=1
| Normalisation |
![]() |
Réduction |
![]() |
K=2 k=2
| Normalisation |
![]() |
Réduction |
![]() |
K=3 k=3
| Normalisation |
![]() |
Réduction |
![]() |
La solution est
; d’où :
On diagonalise la matrice A, et on ne fait apparaître les
zéros qu’en dessous de la diagonale. La solution xi
du système nécessite 2 étapes :
|
![]() |
Pour k variant de 0 à n-1, on a : ![]()
![]()
![]()
![]()
|
![]() |
| D’où l’expression de la solution finale : | ![]() |
avec j=n-1 à 1 |
Cette solution nécessite environ n3/3 opérations.
Pour les pivots nuls ou petits, on est confronté aux mêmes
difficultés signalées dans la méthode précédente
de GAUSS-JORDAN.
Soit le système tridiagonal suivant :
| La matrice est connue par les 3n données : | ![]() |
où |
Ainsi, le système décrit par ces 3n données peut être résolu par la méthode de triangularisation (méthode de Gauss).
Nous allons décrire ces méthodes brièvement sans passer par des calculs ou des démonstrations mathématiques complexes, car cela nous éloignera des objectifs du cours.
| Soit le système suivant de 3 équations à 3 inconnues : | ![]() |
On résout le système de la manière suivante :
On donne aux inconnues les valeurs arbitraires initiales
,
,
.
Si ces valeurs sont portées au second membre de la solution
précédente, on obtient :
Ce nouvel ensemble porté dans le second membre des équations
précédentes donne un autre ensemble
,
,
,
et ainsi de suite.
On reprend le calcul comme précédemment. Pour le système
précédent par exemple, on choisit un ensemble de valeurs
,
,
.
| On porte |
Lorsqu’une inconnue est utilisée, c’est automatiquement la plus
récente valeur calculée. Ceci assure une convergence des
calculs bien plus rapide que la méthode de JACOBI.
On arrête les calculs lorsque les valeurs successives de xj
sont suffisamment voisines.
Pour cela, on peut utiliser,
|
![]() |
Pour les systèmes où les matrices qui sont de rang élevé,
il n’est pas commode de faire le test de convergence sur chaque inconnue
xj.
Dans ce cas, on fait le test soit seulement sur certaines inconnues
que l'on choisit, soit les quantités suivantes :
| ou | ![]() |
ou | ![]() |
ou | ![]() |
La convergence du procédé ne dépend pas du choix
des valeurs initiales
,
mais seulement des valeurs des coefficients.
On montre que la convergence est assurée si on a, pour chaque
valeur de i (c’est à dire pour chaque ligne), la relation
est vérifiée.
Autrement dit, il y a convergence si chaque élément diagonal est supérieur ou égal, en module, à la somme des modules des autres éléments de sa ligne.
3.3. Facteur de relaxation
Si la convergence existe, sa rapidité dépend du choix
de
. En
effet, plus les valeurs initiales sont proches des valeurs réelles,
et plus la convergence est rapide.
L’utilisation d’un facteur de relaxation l
définie par
où
permet d’accélérer la convergence.
l est appelée " facteur de relaxation
" (dans la pratique, il est compris entre 0 et 2).
Pour
,
le processus diverge.
Pour s’approcher de la valeur recherchée rapidement, on prend
dans un processus itératif déjà convergent et
pour un processus divergent.
Les méthodes itératives jouent un rôle très important dans la résolution numérique de systèmes de grandes tailles et dans les systèmes (ou équations) non linéaires.
Selon la méthode de Cramer, une matrice A de rang n n’est inversible que si son déterminant D est différent de zéro. Dans ce cas, le produit de A par la matrice inverse A-1 donne la matrice unitaire I.
où
En appliquant la méthode de Cramer sur la matrice A, on peut déterminer A-1.
Exemple :
![]() |
; | ![]() |
| On obtient en utilisant la méthode de Cramer : | ![]() |
qui vérifie que : |
L’algorithme de Gauss-Jordan présenté au début de ce cours (méthode du pivot) opère aussi le passage de la matrice C=[A,y] à la matrice D=[I,X] où X est la solution du système linéaire A.X=y ; Soit X =A-1.y .
Après les opérations de l’algorithme de Gauss-Jordan,
on obtient : D=A-1.C=A-1.[A,I]=[I,A-1]
Cette méthode, de calcul de l’inverse d’une matrice qui est
résumée ci-dessous, permet de calculer A-1
avec un nombre d’opérations nettement inférieur à
celui de la méthode de Cramer.
| Transformation (A,I) Pour Pour
|
Exemple :
| Soit la matrice | ![]() |
. Calculer A-1 par la méthode de Jordan. |
k =1
| Normalisation |
![]() |
; Réduction |
![]() |
k =2
| Normalisation |
![]() |
; Réduction |
![]() |
k =3
| Normalisation |
![]() |
; Réduction |
![]() |
| Finalement, on vérifie que : | ![]() |