Académique Documents
Professionnel Documents
Culture Documents
L2-RO / Section A
Faculté de Mathématiques Analyse Numérique 2
Département de Recherche Opérationnelle Année universitaire 2022-2023
1 Introduction
Soit à résoudre le système linéaire suivant, de n équations et n inconnues (n ∈ N∗ ) :
a11 x1 + a12 x2 + ... + a1n xn = b1
a21 x1 + a22 x2 + ... + a2n xn = b2
.. . . . (1.1)
.
an1 x1 + an2 x2 + ... + ann xn = bn
Ax = b . . . (1.2)
Où :
a11 a12 ... a1n x1 b1
a21 a22 ... a2n
x2
b2
A = (aij )1≤i,j≤n = .. . . . ..
, x = .. et b = ..
. . . .
an1 an2 ... ann xn bn
Résoudre le système (1.1) revient à déterminer les composants xi (i = 1, n) du vecteur x sachant
que A et b sont donnés.
Par quelle méthode peut on résoudre ce ce système ?
detAi
xi = , 1 ≤ i ≤ n,
detA
Où la matrice Ai est obtenue en remplaçant, dans A, la ième colonne par b.
1
Il en résulte que la résolution de (1.1) par les formules de Cramer nécessite environ 2(n + 1)!
opérations.
Question : Combien de temps mettra un ordinateur capable d’effectuer 109 opérations par
seconde pour résoudre un système de dimension n = 20 par la méthode de Cramer ?
Réponse : 3240 ans environ ! ! !
En pratique et dans certains domaines d’applications, on aura n ≥ 1000. Il est donc impossible
de résoudre de tels systèmes par la méthode de Cramer. Par conséquent, il faut opter pour
d’autres méthodes moins gourmande en temps de calcul pour résoudre des systèmes de grande
taille.
En analyse numérique, nous pouvons résoudre le système Ax = b par deux types de méthodes :
les méthodes directes et les méthodes indirectes ou itératives.
— Les méthodes itératives : sont indispensables dès que la taille du système est grande
(n ≥ 100), ce qui ne les empêche pas évidement d’être également utiles pour les petits
systèmes.
2 Méthodes directes
On appelle méthode directe de résolution du système linéaire Ax = b une méthode qui aboutit
à la solution du problème au bout d’un nombre fini d’opérations en fonction de la dimension
du système. Cette méthode, mis à part les erreurs d’arrondis, conduit à la solution exacte du
système.
2
a11 0 ... 0
.. .
. ..
0 a22
A=
.. .. ..
. . . 0
0 ··· 0 ann
A est une matrice diagonale qui vérifie aii ̸= 0 pour 1 ≤ i ≤ n (car A est inversible). On a
n
Y
det(A) = aii ̸= 0 alors il existe une unique solution du système (1.3) donnée par :
i=1
bi
xi = , i = 1, ..., n
aii
Le nombre d’opérations élémentaires nécessaires pour résoudre un tel système est n divisions
seulement.
bn
xn = ,
ann
n
X
bi − aij xj
j=i+1
i = n − 1, n − 2, ..., 1.
xi = ,
aii
3
a11 x1 0 ··· ··· ··· 0 = b1
..
...
a21 x1 + a22 x2 . = b2
.. .. ... ... .. ..
. . . .
.. .. .. .. .. . . . (1.5)
. . . . .
.. .. .. ..
. . . 0 .
an1 x1 + an2 x2 + ··· + ann xn = bn
b1
x1 = ,
a11
i−1
X
bi − aij xj
j=1
xi = , i = 2, 3, ..., n.
aii
Le nombre d’opération élémentaires reste le même que l’algorithme de remonté (n2 ).
Définissons la matrice augmentée (A, b) du système Ax = b comme étant la matrice que l’on
obtient en ajoutant le membre de droite b du système à la matrice A d’ordre n, c’est à dire :
a11 · · · a1n b1
. ... .. ..
(A|b) = ..
. c’est une matrice de taille n × (n + 1)
.
an1 · · · ann bn
Pour transformer le système Ax = b en un système triangulaire il suffit d’utiliser des opérations
élémentaires sur les lignes de la matrice A pour obtenir un nouveau système équivalent. Ces
opérations sont :
4
3. Additionner une ligne i avec un multiple d’une autre ligne j : Li ← Li + αLj .
Théorème 2.2.1. Soit le système linéaire Ax = b où A est une matrice carrée inversible. Si
on remplace la matrice augmentée (A|b) par (A′ |b′ ) obtenue de (A|b) à l’aide des opérations
précédentes alors les deux systèmes Ax = b et A′ x = b′ ont la même solution.
Considérons le système (1.1) définie précédemment avec sa matrice carrée A = (aij )1≤i,j≤n et
posons au départ :
A(1) = A et b(1) = b
(1)
Étape 1 : Supposons que le premier élément diagonal a11 ̸= 0. On effectue les opérations
suivantes sur la matrice augmentée (A(1) |b(1) ) :
(2) (1)
L1 ↔ L1
(1)
(2) (1) (1) (1) (1) ai1
Li = Li − αi1 L1 avec αi1 = (1)
2≤i≤n
a11
On obtient alors un nouveau système, et par conséquent une nouvelle matrice (A(2) |b(2) ) définit
comme suit :
Remarque : En écriture matricielle, pour obtenir la matrice A(2) revient à multiplier, à gauche,
la matrice A(1) par une matrice triangulaire inférieure, appelé matrice d’élimination noté par
E (1) est donnée par la forme suivante :
0 ··· ···
1 0
(1)
−α21 1 0 ··· 0
.. ..
(1)
E (1) = .
−α31 0 1 .
.. .. .. ..
. . . . 0
(1)
−αn1 0 ··· 0 1
5
(2)
Étape 2 : Supposons que a22 ̸= 0. On effectue les opérations suivantes sur la matrice augmentée
(A(2) |b(2) ) :
(3) (2)
L2 ↔ L2
(1)
(3) (2) (2) (2) (2) ai2
Li = Li − αi2 L2 avec αi2 = (2)
3≤i≤n
a22
1 0 0 ··· ··· 0
0 1 0 ··· ··· 0
(2)
0 −α32 1 0 ··· 0
E (2) =
(2) ... ..
0 −α42 0 1 .
.. .. .. ... ...
. . . 0
(2)
0 −αn2 0 ··· 0 1
(k)
Étape k : Supposons que akk ̸= 0. On effectue les opérations suivantes sur la matrice augmentée
(A(k) |b(k) ) :
(k+1) (k)
Li ↔ Li 1≤i≤k
(k)
(k+1) (k) (k) (k) (k) aik
Li = Li − αik Lk avec αik = (k)
k+1≤i≤n
akk
On obtient donc :
6
1 0 ··· ··· ··· ··· ··· 0
0 1 0 ··· ··· ··· ··· 0
. . . ... ..
0 .. .. .. ··· ··· .
..
0 ... ... ...
1 ··· ··· .
E (k)
= .
. .
.. (k)
, 1≤k ≤n−1
. 0 −αk+1,k 1 0 ··· 0
.. .. .. . . . ..
. .
(k)
. −αk+2,k 0 .. . .
.. .. .. .. .. .. ..
. . 0
. . . . .
(k)
0 ··· 0 −αnk 0 ··· 0 1
Remarques :
(k)
1. Les akk , k = 1, n sont appelés pivots de Gauss.
2. Si au cours de ce processus on tombe sur un pivot nul alors on permute la ligne contenant
ce pivot nul avec une ligne au dessous de sorte que le nouveau pivot soit non nul. D’après
le Théorème 2.2.1 cette opération nous donne un système équivalent.
3. La méthode de Gauss sans permutation de lignes est appelée méthode de Gauss ordinaire.
4. À la fin de l’algorithme de Gauss, on résout le système triangulaire supérieure obtenu
en utilisant l’algorithme de remonté présenté précédemment.
5. Comme les systèmes Ax = b et A(n) x = b(n) sont équivalents alors :
n
(n) p
Y (i)
det(A) = det(A ) = (−1) aii
i=1
où p désigne le nombre de permutations effectuées.
2 4 2 1 x1 1
−1 1 −1 23 x2 1
2
=
4 4 3 1 x3 1
−1 0 1 12 x4 5
2
7
Étape 1 : On élimine x1 des trois dernières lignes.
(1)
2 4 2 1 1
L1
3 1 (1)
−1 1 −1 2 2 L2
(A(1) |b(1) ) = (1)
4 4 3 1 1 L3
−1 0 1 12 52 (1)
L4
(1)
Le premier pivot a11 = 2 ̸= 0. On laisse donc intacte la première ligne, celle contenant le pivot,
(1)
et pour annuler l’élément a21 = −1 situé en dessous du pivot on soustrait de la deuxième ligne
la première ligne multipliée par −12
.
On fait de même pour annuler les deux autres éléments situés en dessous du pivot c’est à dire
(1) (1)
les éléments a31 et a41 . Voici les opérations effectuées :
(2) (1)
L1 = L1
(2) (1) (1)
L2 = L2 − ( −12
)L1
(2) (1) (1)
L3 = L3 − ( 42 )L1
(2) (1) (1)
L4 = L4 − ( −12
)L1
On obtient :
(2)
2 4 2 1 1
L1
(2)
0 3 0 2 1 L2
(A(2) |b(2) ) =
(2)
0 −4 −1 −1 −1
L3
0 2 2 1 3 (2)
L4
(3) (2)
L1 = L1
(3) (2)
L2 = L2
(3) (2) (2)
L3 = L3 − ( −43
)L2
(3) (2) (2)
L4 = L4 − ( 23 )L2
On obtient :
(3)
2 4 2 1 1
L1
(3)
0 3 0 2 1 L2
(A(3) |b(3) ) = 5 1 (3)
0 0 −1
3 3 L3
−1 7
0 0 2 3 3
(3)
L4
8
(4) (3)
L1 = L1
(4) (3)
L2 = L2
(4) (3)
L3 = L3
(4) (3) 2 (3)
L4 = L4 − ( −1 )L3
On obtient :
(4)
2 4 2 1 1
L1
(4)
0 3 0 2 1 L2
(A(4) |b(4) ) =
0 0 −1 35 13 L(4)
3
0 0 0 3 3 (4)
L4
− 23
x4 = 1
5 1 4 1
x3 = 3−3=3 −3
⇒ x =
x2 = 13 (−2 + 1) = − 13 4
3
1 −1 4 2
x1 = 2 (1 − 4( 3 ) − 2( 3 ) − 1) = − 3 1
− x2 + 2x3 − x4 −8
x1 =
2x1 − 2x2 + 3x3 − 3x4 = −20
x1 + x2 + x3 = −2
x1 − x2 + 4x3 + 3x4 = 4
(2)
Le pivot du système augmentée (A(2) |b(2) ) est a22 = 0 qui est nul. On permute alors la ligne contenant
ce pivot, c’est à dire la deuxième ligne avec une ligne en dessous de sorte que le nouveau pivot soit
non nul. Dans cet exemple il y a un seul choix possible, permuter la deuxième ligne avec la troisième
ligne on obtient alors le système augmenté désigné par (Ae(2) |eb(2) ).
(2) (3)
1 −1 2 −1 −8 L1 1 −1 2 −1 −8 L1
(2) (3)
0 −2 1 −1 −6 0 −2 1 −1 −6
(2) e(2)
L3 (3) (3)
L2
∼ (A |b ) =
e
(2) ∼ (A |b ) =
(3)
0 0 1 1 4 L2 0 0 1 1 4 L3
(2) (3)
0 0 −2 −4 −12 L4 0 0 −2 −4 −12 L4
9
(3)
L1 1 −1 2 −1 −8
(3)
0 −2 1 −1 −6
L2
∼ (A(4) |b(4) ) =
(3)
L3 0 0 1 1 4
(3) (3)
L4 − (−2L3 ) 0 0 0 2 4
Enfin,
pour résoudre le système final par la méthode de remontée, il faut faire :
n divisions
n(n − 1)
additions
2
n(n − 1) multiplications
2
En tout, la résolution du système par la méthode d’élimination de Gauss nécessite donc de l’ordre de :
10
n2
divisions
2
n3
additions
3
n3
multiplications
3
À titre de comparaison, pour n = 10 par exemple, on obtient un compte d’environ 716 opérations pour
la méthode d’élimination de Gauss contre près de 479000000 opérations pour la méthode de Cramer !
Pour n = 20 le nombre d’opérations nécessaires est d’environ 5533 opérations élémentaires exécutables
en 5, 5×106 seconde par un calculateur faisant 109 opération par seconde, pour rappel Cramer nécessite
3240 ans !
En choisissant le nombre 10−4 comme pivot à la première étape de l’élimination de Gauss, on obtient
le système triangulaire suivant :
! ! !
10−4 1 x1 1
=
0 −9999 x2 −9999
La solution numérique calculée est alors : x1 = 0 et x2 = 1. Elle est très éloignée de la véritable
solution du système.
Si, par contre, on commence par échanger les deux équations du système pour utiliser le nombre 1
comme pivot, on trouve :
! ! ! ! ! !
1 1 x1 2 1 1 x1 2
−4
= ∼ =
10 1 x2 1 0 0, 9999 x2 0, 9998
La solution calculée et arrondi vaut : x1 = 1 et x2 = 1 ce qui est cette fois très satisfaisante.
En général, le changement de pivot n’a pas un effet aussi spectaculaire que dans l’exemple ci-dessus,
mais il n’en demeure pas moins essentiel lorsque les calculs sont effectués en arithmétique à virgule
flottante. De fait, pour éviter la propagation d’erreurs et obtenir une meilleure stabilité numérique de
la méthode, il faut chercher, même dans le cas où le pivot naturel est non nul, à choisir le plus grand
pivot en valeur absolue.
On peut pour cela suivre au début de la k ième étape, 1 ≤ k ≤ n − 1, de l’élimination l’une des deux
stratégies suivantes :
11
Stratégie du pivot partiel
(k)
Le pivot est l’un des éléments aik , k ≤ i ≤ n, de la k ième colonne situés sous la diagonale vérifiant :
(k) (k)
|aik | = maxk≤p≤n |apk |
(k) (k)
|aij | = maxk≤p,q≤n |apq |
Dans ce dernier cas, si le pivot n’est pas dans la k ième colonne, il faut procéder à un échange de
colonnes en plus d’un éventuel échange de lignes.
Quelle que soit la stratégie adoptée, cette recherche de pivot doit également être prise en compte dans
l’évaluation du coût global de la méthode d’élimination de Gauss.
On rajoute au système augmenté (A|b) la matrice identité I puis on applique la méthode des pivots de
Gauss au système augmenté ainsi obtenu (A|b|I) pour diagonaliser la matrice A. À la fin du processus
on obtient le système augmenté (I|x|A−1 ).
2 −1 0 −2
A = 4 −1 2 , b = 14
−6 2 0 12
(1)
2 −1 0 −2 1 0 0 L
(1) (1)
1(1)
(A |b |I) = 4 −1 2 14 0 1 0 L2
(1)
−6 2 0 12 0 0 1 L3
(1) (2)
L1 2 −1 0 −2 1 0 0 L
1(2)
∼ (A(2) |b(2) |A′ ) = (1) (1)
L2 − 42 L1 0
1 2 18 −2 1 0 L2
(1) −6 (1) (2)
L3 − 2 L1
0 −1 0 6 3 0 1 L3
(2) (2) (3)
L1 − ( −1
1 )L2 2 0 2 16 −1 1 0 L
1
∼ (A(3) |b(3) |A′′ ) = (2) 0 1 2 18 −2 1 0 L(3)
L2 2
(2) (2) (3)
L3 − ( −1
1 )L2
0 0 2 24 1 1 1 L3
12
(3) (3) (4)
L1 − ( 22 )L3 2 0 0 −8 −2 0 −1 L
1(4)
∼ (A(4) |b(4) |A′′′ ) = L(3) (3)
2 0 1 0 −6 −3 0 −1 L
2 − ( 2 )L3 2
(3) (4)
L3 0 0 2 24 1 1 1 L3
La nouvelle matrice obtenue est diagonale. On normalise le nouveau système en divisant la première
ligne par 2 et la troisième par 2 on obtient :
1 (4)
2 L1 1 0 0 −4 −1 0 − 12
(A(4) |b(4) |A−1 ) = (4)
L2 0 1 0 −6 −3 0 −1
1 (4) 0 0 1 12 1 1 1
2 L3 2 2 2
Remarque : La méthode de Gauss-Jordan est moins rapide que celle de Gauss. Néanmoins, elle
permet le calcul de la matrice inverse et évite la "remontée" qu’on rencontre dans la méthode de
Gauss.
2.5 Décomposition LU
Nous allons maintenant montrer que la méthode de Gauss dans sa forme sans permutation est équiva-
lente à la décomposition de la matrice A sous la forme d’un produit de deux matrices, A = LU , avec
L une matrice triangulaire inférieure (Lower triangular en anglais), qui est l’inverse de la matrice des
transformations successives appliquées à la matrice A lors de l’élimination de Gauss sans permutation,
et U une matrice triangulaire supérieure (Upper triangular en anglais), avec U = A(n) .
Ou bien sous forme matricielle :
a11 a12 ... a1n l11 0 ... 0 u11 u12 ... u1n
.. ..
a21 a22 ... a2n l
21 l22 . 0 u22
. u2n
A= = .
.. .. .. . .. .
. .. .. ..
. . . . . 0 . . . .
an1 an2 ... ann ln1 ln2 · · · lnn 0 ··· 0 unn
A(k+1) = E (k) A(k) = E (k) E (k−1) A(k−1) = · · · · · · = E (k) E (k−1) · · · E (2) E (1) A(1)
13
Où :
1 0 ··· ··· ··· ··· ··· 0
0 1 0 ··· ··· ··· ··· 0
..
.. .. .. ..
0 . . . . ··· ··· .
.. .. .. ..
0 . . 1 . ··· ··· .
(k)
E = .. .. , 1 ≤ k ≤ n − 1
(k)
. . 0 −αk+1,k 1 0 ··· 0
.. .. .. ..
(k) .. ..
. . . −αk+2,k 0 . . .
.. .. .. .. .. .. ..
. . . . . . . 0
(k)
0 ··· 0 −αnk 0 ··· 0 1
Rappelons que la matrice E (k) est la matrice d’élimination et les αi,k pour tout k + 1 ≤ i ≤ n sont les
multiplicateurs à la k ième étape.
Il résulte que :
La matrice E (k) est triangulaire inférieure et son inverse est également une matrice triangulaire infé-
rieure, il est facile de vérifier que son inverse vaut :
1 0 ··· ··· ··· ··· ··· 0
0 1 0 ··· ··· ··· ··· 0
..
.. .. .. ..
0 . . . . ··· ··· .
.. .. .. ..
0 . . 1 . ··· ··· .
(k) −1
(E ) = .. .. , 1 ≤ k ≤ n − 1
(k)
. . 0 αk+1,k 1 0 ··· 0
.. .. .. ..
(k) .. ..
. . . αk+2,k 0 . . .
.. .. .. .. .. .. ..
. . . . . . . 0
(k)
0 ··· 0 αnk 0 ··· 0 1
À l’étape (n − 1) on a :
14
a11 · · · a1k
. ..
A[k] =
.
. , 1 ≤ k ≤ n
.
ak1 · · · akk
Démonstration.
Existence : Il est possible de montrer l’existence de la décomposition LU en montrons que les pivots
(k)
d’élimination de Gauss sont non nuls, c’est à dire akk ̸= 0 pour 1 ≤ k ≤ n − 1 car l’existence de cette
décomposition revient à l’existence des matrices de transformation de la méthode de gauss ordinaire.
On le démontre par récurrence.
Pour k = 1, on a A[1] = a11 ̸= 0 car par hypothèse A[1] est inversible donc detA[1] ̸= 0.
(k) (r)
Supposons que akk ̸= 0 pour 1 ≤ k ≤ r − 1 et montrons que arr ̸= 0.
(1) (2) (r−1) (r)
On a det(A[r] ) = a11 a22 ...ar−1,r−1 , arr . Or d’une part, par hypothèse det(A[r] ) ̸= 0 et d’autre part,
(k) (r)
par hypothèse de récurrence akk ̸= 0 pour 1 ≤ k ≤ r − 1. Donc arr est aussi différent de zéro.
L1 U1 = L2 U2 ⇔ L−1 −1
2 L1 = U2 U1 = D
L−1
2 L1 est une matrice triangulaire inférieure avec des 1 sur la diagonale.
U2 U1−1 est une matrice triangulaire supérieure avec des 1 sur la diagonale.
D a des 1 sur la diagonale, alors D = In ce qui implique que U1 = U2 et L1 = L2 .
2 4 2 1 2 4 2 1 2 4 2 1
0 3 0 2 0 3 0 2 0 3 0 2
A(2) = ∼ A(3) = ∼ A(4) =
5 5
0 −4 −1 −1
0 0 −1 3
0 0 −1 3
0 2 2 1 0 0 2 − 13 0 0 0 3
15
1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0
E (2) et E (3) =
Avec = 4
0 3 1 0
0 0 1 0
0 − 23 0 1 0 0 2 1
On a bien :
1 0 0 0 2 4 2 1 2 4 2 1
(2) (2)
0 1 0 0 0 3 0 2 0 3 0 2 = A(3)
E A = 4
=
5
0 3 1 0
0 −4 −1 −1
0 0 −1 3
0 − 23 0 1 0 2 2 1 0 0 2 − 13
Et :
1 0 0 0 2 4 2 1 2 4 2 1
0 1 0 0 0 3 0 2 0 3 0 2
E (3) A(3) = (4)
=A =U
=
5 5
0 0 1 0
0 0 −1 3
0 0 −1 3
0 0 2 1 0 0 2 − 13 0 0 0 3
Par conséquent on a :
A(4) = = E (3) A(3)
U
= E (3) E (2) A(2)
= E (3) E (2) E (1) A(1)
⇒ A(1) = (E (3) E (2) E (1) )−1 U
⇒ A = (E (1) )−1 (E (2) )−1 (E (3) )−1 U
(1) (2)
⇒ A = L | L{z L(3)} U où L(k) = (E (k) )−1 , k = 1, ..., 3
⇒ A = L U
1 0 0 0
1
−
L(1) = (E (1) )−1 = 2 1 0 0
2 0 1 0
− 12 0 0 1
1 0 0 0 1 0 0 0
1
−
0 1 0 0 1 0 0
L(2) (E (2) )−1 L(1) L(2) L(3) 2
= = ⇒ L= =
0 − 34 1 0
2 −4
3 1 0
2
0 3 0 1 − 21 2
3 −2 1
1 0 0 0
0 1 0 0
L(3) (E (3) )−1
= =
0 0 1 0
0 0 −2 1
1 0 0 0 2 4 2 1
1
−
2 1 0 0 0 3 0 2
D’où : A = LU =
2 −4
5
3 1 0
0 0 −1 3
− 21 2
3 −2 1 0 0 0 3
Remarques :
1. Supposons que la matrice A admet une décomposition de la forme A = LU . Le système linéaire
Ax = b est alors équivalente à LU x = b. Posons y = U x d’où Ly = b.
La résolution du système Ax = b est donc ramené aux deux systèmes triangulaires :
(
Ly = b
Ux = y
16
2. La factorisation LU est particulièrement avantageuse lorsque l’on doit résoudre plusieurs sys-
tèmes linéaires ayant tous A pour matrice, mais des seconds membres différents. En effet, il
suffit de conserver les matrices L et U obtenues à l’issue de la factorisation pour ramener en-
suite la résolution de chaque système linéaire Ax = b à celle de deux systèmes triangulaires,
Ly = b ; puis U x = y.
3. La décomposition LU fournit un procédé rapide de calcul du déterminant de la matrice A.
n n
Y Y (k)
det(A) = det(LU ) = det(L)det(U ) = det(U ) = ukk = akk .
k=1 k=1
car detL = 1 car L est une matrice triangulaire inférieure à diagonale unité.
4. Le nombre d’opérations nécessaires pour la factorisation LU est du même ordre que celui de
Gauss (O(n3 )).
5. Pour déterminer les matrices L et U de la matrice A on peut aussi procéder par identification.
l11 0 ... 0 u11 u12 ... u1n a11 a12 ... a1n
.. ..
. 0 u22 u2n a21 a22 ... a2n
l l22 .
21
A = LU = . =
. .. .. .. .. .. ..
. .. . . . .
. . 0 . . . .
ln1 ln2 · · · lnn 0 ··· 0 unn an1 an2 ... ann
(k)
6. S’il existe 1 ≤ k ≤ n − 1 tel que akk = 0. La méthode de Gauss ordinaire n’est plus applicable.
On applique la méthode de Gauss avec permutations de lignes pour avoir la décomposition de
A sous forme : P A = LU tel que : P est la matrice de permutation.
17
1 −1 2 −1 1 −1 2 −1 1 −1 2 −1
0 −2 ∼ A(3) = 0 −2
1 −1 ∼ A(4) = 0 −2 1 −1
1 −1
(2)
A =
e
0 0 1 1
0
0 1 1
0
0 1 1
0 0 −2 −4 0 0 −2 −4 0 0 0 2
Par conséquent on a :
A(4) = U = E (3) A(3)
= E (3) E (2) Ae(2)
= E (3) E (2) P (2) A(2)
= E (3) E (2) P (2) E (1) A(1)
⇒ A(1) = (E (3) E (2) P (2) E (1) )−1 U
⇒ A = (E (1) )−1 (P (2) )−1 (E (2) )−1 (E (3) )−1 U
⇒ A = L(1) P (2) L(2) L(3) U où L(k) = (E (k) )−1 , k = 1, ..., 3
Comme P (k) = (P (k) )−1 c’est-à-dire P (k) (P (k) )−1 = In alors A peut s’écrire :
L′(1) est la matrice L(1) où on a échangé la 2ème et la 3ème ligne, la 2ème et la 3ème colonne.
Donc c’est la matrice L(1) dans laquelle on a échangé le 2ème et le 3ème multiplicateur.
Donc on obtient :
A = (P (2) )−1 L′(1) L(2) L(3) U ⇔ P (2) A = P (2) (P (2) )−1 L′(1) L(2) L(3) U ⇔ P (2) A = L′(1) L(2) L(3) U
Théorème 2.5.2 Soit A une matrice d’ordre n inversible. Alors, il existe une matrice P (resp. des
matrices P et Q) tenant compte d’une stratégie de pivot partiel (resp. total), une matrice triangulaire
inférieure L, et une matrice triangulaire supérieure U telles que P A = LU (resp. P AQ = LU ).
18
(
Ly = P b
Ax = b ⇔ P Ax = P b ⇔ LU x = P b ⇔
Ux = y
Définition 2.6.1 Soit A = (aij )1≤i,j≤n une matrice d’ordre n. On dit que A est Symétrique Définie
Positive (SDP) si :
- A est symétrique, c’est-à-dire A = At .
- ∀x ∈ Rn , x ̸= 0, xt Ax > 0.
Exemple:
2 −1 1
Soit A = −1
3 1
A est-elle SDP ?
1 1 5
On a :
2 −1 1 x
1
xt Ax = (x1 , x2 , x3 )
−1 3 1 x2
1 1 5 x3
2x1 − x2 + x3
= (x1 , x2 , x3 ) −x1 + 3x2 + x3
x1 + x2 + 5x3
≥0
19
Proposition 2.6.1
(i) Une matrice définie positive A est inversible et detA > 0.
(ii) Si A est une matrice symétrique et définie positive alors toutes ses sous-matrices principales A[k]
d’ordre k ≤ n le sont aussi.
Proposition 2.6.2 Si A est symétrique définie positive (SDP) alors tous ses mineurs principaux sont
positifs.
Nous allons voir maintenant que lorsqu’une matrice A est symétrique, alors la factorisation A = LU ,
lorsque celle-ci est possible, peut prendre une forme particulière tenant compte de cette symétrie :
Démonstration :
D’après l’hypothèse et le théorème 2.5.1, A vérifie les conditions pour avoir une unique factorisation
LU .
1 0 ... 0 u11 u12 ... u1n
.. ..
l
21 1 . . 0 u22
u2n
A = LU = .
. .. .. ..
. .. . . .
. . 0 . .
ln1 ln2 · · · 1 0 ··· 0 unn
Par ailleurs si on note D la matrice diagonale dont la diagonale est égale à celle de U .
u11 0 ... 0
0 u22 0
D = Diag(u11 , u22 , . . . , unn ) =
.. .. .. ..
. . . .
0 ··· 0 unn
20
A = LU = LDD−1 U = LDV
1
u11 0 ... 0 u11 u12 ... u1n 1 × ... ×
1
0
u22 0 0 u22 u2n 0 1 ×
avec V = D−1 U = . =
.. .. .. .. .. .. .. .. .. .. .
.. . ..
. . .
. . . .
. .
1
0 ··· 0 unn 0 ··· 0 unn 0 ··· 0 1
A = At ⇔ LU = (LU )t = U t Lt
D est la matrice diagonale dont les éléments sont ceux de U , car U (Lt )−1 est une matrice triangulaire
supérieure et L−1 U t est une matrice triangulaire inférieure.
Par conséquent V = D−1 U = (U (Lt )−1 )−1 U = Lt U −1 U = Lt .
Démonstration :
1) Existence :
A définie positive ⇒ det(A[k] ) > 0, ∀k = 1, ..., n.
1 0 ... 0 u11 u12 ... u1n
.. ..
l
21 1 . . 0 u22
u2n
A = LU = .
. .. .. ..
. .. . . .
. . 0 . .
ln1 ln2 · · · 1 0 ··· 0 unn
√ √
A = LU = L D( D)−1 U
21
1 1
= LD 2 (D− 2 U )
√ √
u11 0 ... 0 u11 × ... ×
× √ √
u 22 0 0 u22 ×
= .
.. .. .. .. .. .. .. ..
. . . . . . .
√ √
× ··· × unn 0 ··· 0 unn
| {z }| {z }
B C
1 1
Posons B = LD et C = D− 2 U .2
√ 1
u11 × ... × √
u11 × ... × 1 × ... ×
√
√1
×
0 u22 × 0
0 1 ×
u22
C(B t )−1 = .
=
.. .. .. .. . .. .. .. .. .. .. .
.. . ..
. . . . . . .
.
√
0 ··· 0 unn 0 ··· 0 √1 0 ··· 0 1
unn
√
√1
u11 0 ... 0 u11 0 ... 0 1 0 ... 0
√1
√
×
u22 0
× u22 0 × 1 0
B −1 C t
= =
.. .. .. ..
.. .. .. .. .. .. . . ..
. . . . . . . . . .
. .
√
× ··· × √1 × ··· × unn × ··· × 1
unn
Or cette égalité de matrices n’est possible que si C(B t )−1 = B −1 C t = In ⇒ C = B t ce qui démontre
l’existence d’au moins une factorisation de Cholesky A = BB t .
2) Unicité :
Pour montrer l’unicité de cette décomposition, on suppose qu’il existe deux matrices triangulaires
(1) (1) (2) (2)
inférieures B1 = (bij ), bii > 0 et B2 = (bij ), bii > 0 telles que :
A = B1 B1t = B2 B2t
(1) (2)
⇒ bii = bii , ∀i
(1)
bii
⇒ (2)
= 1, ∀i
bii
22
2.6.1 Algorithme de Cholesky
a11 a12 ... a1n b11 0 ... 0 b11 b21 ... bn1
.. ..
a21 a22 ... a2n b
21 b22 . . 0 b22
bn2
A= = .
.. .. .. . .. .
. .. .. ..
. . . . . 0 . . . .
an1 an2 ... ann bn1 bn2 · · · bnn 0 ··· 0 bnn
Ensuite on multiplie la ligne i ≥ 2 de B avec la première colonne de B t on obtient bi1 b11 = ai1 d’où :
ai1
bi1 = √ , i ≥ 2.
a11
On multiplie la seconde ligne de B avec la seconde colonne de B t on aura b221 + b222 = a22 d’où :
q
b22 = a22 − b221 .
Ensuite on multiplie la ligne i ≥ 3 de B avec la seconde colonne de B t on obtient bi1 b21 + bi2 b22 = ai2
d’où :
ai2 − bi1 b21
bi2 = , i ≥ 3.
b22
Par récurrence on obtient l’algorithme de Cholesky suivant :
j−1
X
a − bik bjk
ij
k=1
bij =
, 1≤j ≤i−1
bjj
v
i−1
u
X
b2ik ,
u
taii −
bii = i = 1, ..., n.
k=1
On a montré que A est SDP. Il existe donc une matrice triangulaire inférieure B telle que : A = BB t .
Calculons la matrice B. On a :
2 −1 1 b 0 0 b b21 b31
11 11
−1 =
3 1 b21 b22 0 0 b22 b32
1 1 5 b31 b32 b33 0 0 b33
23
2 √
b11 = 2 ⇒ b11 = 2
−1 −1
b11 b21 = −1 ⇒ b21 = =√
Pour i = 1 : b11 2
1 1
b11 b31 = 1 ⇒ b31 = =√
b11 2
r
2 2 2 −1 2 5 5
⇒ b22 = 3 − ( √ ) = ⇒ b22 =
b21 + b22 = 3
2 2 2
−1 1
Pour i = 2 : 1 − (√ × √ )
1 − b21 b31 2 2 3
b21 b31 + b22 b32 = 1 ⇒ b32 = = =√
r
b22 5 10
( 2
r
1 3 18 2
Pour i = 3 : b231 + b232 + b233 =5⇒ b233 =5− b231 − b232 = 5 − ( √ )2 − ( √ )2 = ⇒ b32 = 3
2 10 5 5
Alors les matrices B et B t ont la forme suivante :
√ √ −1 1
2 0 0 2 √ √
r2 2
r
−1 5
5 3
√ 0
, Bt =
B= 0 √
2 2 2
r10
r
1 3 2
2
√ √ 3
2 10 5 0 0 3
5
Remarques :
1. Une autre technique pratique pour calculer A = BB t est l’utilisation de la méthode de Gauss :
A → LU → LDLt → LD1/2 D1/2 Lt = LD1/2 (LD1/2 )t = BB t avec B = LD1/2 , D = Diag(U ).
2. Pour résoudre le système Ax = b par la décomposition de Cholesky il suffit de résoudre les
deux systèmes triangulaires suivants :
(
t By = b ...(1)
Ax = b ⇔ BB x = b ⇔
B t x = y ...(2)
24
Par : A.SKOUDARLI
25