Vous êtes sur la page 1sur 28

Résolution des systèmes

Méthodes directeslinéaires
1 Notations et Rappels
Nous nous plaçons dans le corps IK, en général IR ou IC.

1.1 Quelques dénitions et notations


Dénition 1 On notera,
IKd l'ensemble des vecteurs de taille d,
Mm,p (IK) l'ensemble des matrices de taille m × p (à m lignes et p co-
lonnes).
Mm (IK) = Mm,m (IK) l'ensemble des matrices carrées de taille m × m.

Proporété 1 Mm,p (IK) muni de l'addition et du produit par un scalaire


dénit un espace vectoriel.

Dénition 2 Soit A une matrice de Mm (IK). A est dite inversible ou


régulière si il existe une matrice B telle que AB = BA = I . I désigne la
matrice identité de Mm (IK) : Iij = δij où δij est le symbole de Kronecker.
La matrice B est alors notée A−1 et appelée inverse de A.

Proporété 2 Soit A une matrice de Mm (IK). Les propositions suivantes


sont équivalentes :
1 A est inversible,
2 Ker A = {0},
3 Im A = IKm ,

1
4 il existe B ∈ Mm (IK) telle que AB = I ,
5 il existe B ∈ Mm (IK) telle que BA = I

Dénition 3 Soit A une matrice de Mm,p (IK). On appelle respectivement


matrice transposée de A , notée AT , et matrice adjointe de A, notée A∗ , les
matrices de Mp,m (IK) dénies par ATij = Aji (i, j) ∈ {1, ..., m} × {1, ..., p}
T
et A∗ = AT si IK = IR, A∗ = A si IK = IC.

Proposition 1 Soit A une matrice de Mm,p (IK). Alors :


dim Im A = dim Im A∗ ,
ker A∗ = (Im A)⊥ ,
Im A∗ = (kerA)⊥ .

Dénition 4 Soit A une matrice de Mm (IK). La matrice A est dite


diagonale si ai,j = 0 pour tout (i, j)tel que i 6= j (on désigne alors A par
diag(U1 , · · · , Um ), où Ui = ai,i pour tout i ∈ {1, ..., m}),
symétrique si A = AT ,
orthogonale A−1 = AT ,
unitaire si A−1 = A∗ ,
normale si AA∗ = A∗ A,
hermitienne si A = A∗ et IK = IC,
auto-adjointe si A = A∗ ,
symétrique positive, lorsque IK = IR , si A est symétrique et si pour tout
vecteur v de IKm , v T Av ≥ 0,

2
symétrique dénie positive, lorsque IK = IR, si A est symétrique et si pour
tout vecteur v de IKm \{0}, v T Av > 0.
hermitienne positive, lorsque IK = IC, si A est hermitienne et si pour tout
vecteur v de IKm , v T Av ≥ 0,
hermitienne dénie positive, lorsque IK = IC, si A est hermitienne et si
pour tout vecteur v de IKm \{0}, v T Av > 0.
triangulaire inférieure si Aij = 0 pour tout (i, j) tel que i < j .
triangulaire supérieure si Aij = 0 pour tout (i, j) tel que i > j .

2 Résolution de Systèmes linéaires


Nous nous intéressons dans ce chapitre à des méthodes de résolution d'un
système linéaire Ax = b où A ∈ Mn (IR) est une matrice donnée, b ∈ IRn
un vecteur donné et x ∈ IRn l'inconnue du problème.
Il est important de bien remarquer que l'on ne calcule jamais l'inverse de
la matrice A(même si sur le papier on a x = A−1 b). En eet, calculer A−1
revient à résoudre le problème suivant : trouver une matrice B telle que
AB = I , c'est-à-dire à résoudre un système linéaire de n2 équations à n2
inconnues !, ou à résoudre n système linéaires chacun d'ordre n. En tout cas
c'est très coûteux numériquement.
Une première méthode d'inversion du système est la considération des for-
mules de Cramer :
det (col1 , col2 , · · · , coli−1 , b, coli+1 , · · · , coln )
xi =
det(A)

où coli est la ieme colonne de A et det(A) est le déterminant de A.


En procédant par développement selon les lignes ou les colonnes, le nombre
d'opérations pour calculer un déterminant d'ordre n est ≥ n !. On doit ici
calculer (n+1) déterminants. Le coût d'une telle méthode est donc supérieur
à (n + 1)!.

3
Considérons que notre ordinateur calcule à 1 Gops (c'est-à-dire 1 milliard
d'opérations à la seconde, ce qui est déjà très bien). Considérons le cas très
petit d'une matrice 50 × 50. Le temps de calcul serait, en années :
51!
≥ 4.91049
109 60 60 24 365
Il s'agit bien d'un petit cas.
On appelle matrice pleine une matrice dont le nombre d'éléments nécessai-
rement nuls n'est pas important. A contrario, on appelle matrice creuse, une
matrice dont le nombre d'éléments nécessairement nuls est grand (exemple :
les matrices tridiagonales ).
Un des points essentiels dans l'ecacité des méthodes envisagées concerne la
taille des systèmes à résoudre.
Entre 1980 et 2000, la taille de la mémoire des ordinateurs a augmenté de
façon drastique. La taille des systèmes à résoudre sur ordinateurs a donc
également augmenté, selon l'ordre de grandeur suivant :
1980 : matrice "pleine" N = 102
matrice"creuse" N = 106
2000 : matrice "pleine" N = 106
matrice "creuse" N = 108
Le développement des méthodes de résolution de systèmes linéaires est lié à
l'évolution des machines informatiques.
Un grand nombre de recherches sont d'ailleurs en cours pour proter au
mieux de l'architecture des ordinateurs (méthode de décomposition en sous
domaines pour proter des architectures parallèles par exemple).

On distingue deux grandes familles de méthodes :

Les méthodes directes : On obtient la solution en un nombre ni d'opé-


rations. Si elle est numériquement "mauvaise", à cause des erreurs d'ar-
rondis par exemple, on ne peut en général plus rien faire pour l'amé-

4
liorer. Par contre on a l'assurance de terminer.

Les méthodes itératives : On construit une suite qui tend vers la solu-
tion. Si on n'est pas satisfait du résultat, on peut continuer. Cette fois
la qualité de la solution est primordiale.

2.1 Les méthodes directes


2.1.1 Résolution d'un système triangulaire supérieur

Exemple :

a11 a1,2 a1,3 a1,4 x1 b1


    

 0 a2,2 a2,3 a2,4 
 x2 
 = 
 b2 

0 0 a3,3 a3,4 x3 b3
    
    
0 0 0 a4,4 x4 b4

On a alors :
b4
x4 =
a4,4
b3 − a3,4 x4
x3 =
a3,3
b2 − a2,3 x3 − a2,4 x4
x2 =
a2,2
b1 − a1,2 x2 − a1,3 x3 − a1,4 x4
x1 =
a1,1

D'une manière générale, on peut trouver toutes les valeurs de xi par la


méthode itérative suivante (substitution arrière) :
bn
xn =
an,n

5
n
X
bi − ai,j xj
pour i = n − 1, · · · , 1
j=i+1
xi =
ai,i

2.1.2 Résolution d'un système triangulaire inférieur

Exemple :

a1,1 0 0 0 x1 b1
    

 a2,1 a2,2 0 0 
 x2 
 = 
 b2 

a3,1 a3,2 a3,3 0 x3 b3
    
    
a4,1 a4,2 a4,3 a4,4 x4 b4

On a alors :
b1
x1 =
a1,1
b2 − a2,1 x1
x2 =
a2,2
b3 − a3,1 x1 − a3,2 x2
x3 =
a3,3
b4 − a4,1 x1 − a4,2 x2 − a4,3 x3
x4 =
a4,4

D'une manière générale, on peut trouver toutes les valeurs de xi par la mé-
thode itérative suivante (substitution avant) :

b1
x1 =
a1,1
i−1
X
bi − ai,j xj
pour i = 2, · · · , n
j=1
xi =
ai,i

Dans de nombreuses méthodes, l'objectif est de transformer A pour la rendre

6
triangulaire, inférieure ou supérieur, et en suite calculer les solutions en uti-
lisant une substitution avant ou arrière.

2.1.3 La méthode de Gauss

La stratégie de la méthode de Gauss : Transformer le système linéaire en un


système équivalent ( triangulaire supérieur), facile à résoudre.

L'algorithme de la méthode de Gauss.


Prenons l'exemple suivant :


 x1 + 2x2 + 2x3 = 2 L1
x1 + 3x2 − 2x3 = −1 L2


3x1 + 5x2 + 8x3 = 8 L3

On conserve la ligne L1 , qui sert de pivot pour éliminer l'inconnue x1 des


autres lignes ; pour cela, on retire L1 à L2 , et 3 fois L1 à L3 . On obtient :



 x1 + 2x2 + 2x3 = 2 L1
x2 − 4x3 = −3 L2 ← L2 − L1
− x2 + 2x3 = 2 L3 ← L3 − 3L1

On conserve alors la ligne L2 qui sert de pivot pour éliminer x2 de la


troisième ligne ; pour cela, on remplace la ligne L3 par L3 + L2 . On trouve :


 x1 + 2x2 + 2x3 = 2 L1
x2 − 4x3 = −3 L2
− 2x3 = −1 L3 ← L3 + L2

On résoud nalement le système par substitution arrière, ce qui donne


1
x3 =
2
x2 = −3 + 4x3 = −3 + 2 = −1

7
x1 = 2 − 2x2 − 2x3 = 2 + 2 − 1 = 3

Comment cela se passe avec des matrices ?

     
x1 + 2x2 + 2x3 = 2 L1 1 2 2 x1 2
 = 


x1 + 3x2 − 2x3 = −1 L2  1 3 −2   x2 
 
 −1 



3x1 + 5x2 + 8x3 = 8 L3 3 5 8 x3 8

     
x1 + 2x2 + 2x3 = 2 L1 1 2 2 x1 2
 = 


x2 − 4x3 = −3 L2 ← L2 − L1  0 1 −4   x2 
 
 −3 

− x2 + 2x3 = 2 L3 ← L3 − 3L1 0 −1 2


x3 2

    

 x1 + 2x2 + 2x3 = 2 L1 1 2 2 x1 2
x2 − 4x3 = −3 L2  0 1 4   x2   −3 
   

− 2x3 = −1 L3 ← L3 + L2 0 0 −2 −1


x3

Le pivot parcours la diagonale.


Description
Décrivons la méthode : on s'arrange (quitte à eectuer une permutation de
lignes) pour que a11 soit non nul ; la ligne L1 est la ligne pivot qu'on va
retrancher (avec un coecient ad-hoc) aux lignes suivantes de façon à faire
aparaître des zéros en première colonne à partir de la ligne 2.


a1,1 a1,2 · · · a1,n b1
a2,1
a2,1 a2,2 · · · a2,n b2 L2 ← L2 − ∗ L1

a1,1

.. .. .. .. .. ..

. . . . . .



ak,1
ak,1 ak,2 · · · ak,n bk Lk ← Lk − ∗ L1

a1,1

.. .. .. .. .. ..

. . . . . .



an,1
an,1 an,2 · · · an,n bn Ln ← Ln − an,1
∗ L1

8
done
 (1) (1) (1) (1)
a1,1 a1,2 · · · a1,n b1
 (1) (1) (1)
 0 a2,2 · · · a2,n b2
.. .. .. .. ..

. . . . .



 (1) (1) (1)
 0 ak,2 · · · ak,n bk
.. .. .. .. ..

. . . . .



(1)
0 an,2 · · · a(1) (1)
n,n bn

avec
∀ j = 1, · · · , n a1,j = a1,j et b1 = b1
(1) (1)

ak,1 ak,1
∗ a1,j et bk = bk −
(1) (1)
∀ k, j = 2, · · · , n ak,j = ak,j − ∗ b1
a1,1 a1,1

On recommence ainsi de proche en proche : à l'étape k on suppose que a(k) k,k


est non nul (quitte à permuter avec les lignes en dessous). Si on ne peut pas
trouver de coecient diagonal non nul à ce stade c'est que la matrice A n'est
pas inversible. Détaillons l'étape k

 (k) (k) (k) (k)


a1,1 a1,2 · · · ··· · · · a1,n b1
 (k) (k) (k)

 0 a2,2 · · · ··· · · · a2,n b2
(k) (k) (k)
0 0 a3,3 ··· · · · a2,n b2


.. .. .. ... .. .. ..

. . . . . .


Ligne pivot k : Lk

(k) (k) (k)
0 0 ··· ak,k · · · ak,n bk


.. .. .. .. .. .. ..

. . . . . . .


.. .. .. .. .. .. ..

. . . . . . .



(k) (k)
0 0 · · · an,k · · · an,n b(k)
n

On eectue les opérations suivantes sur les lignes se trouvant en dessous de


Lk :
(k)
ak+i,k
Lk+i ← Lk+i − (k)
∗ Lk i = 1, · · · , n − k
ak,k

9
de sorte que le système devient :

(k) (k) (k) (k)



a1,1 a1,2 · · · ··· ··· ··· a1,n b1
 (k) (k) (k)

 0 a2,2 · · · ··· ··· ··· a2,n b2
(k) (k) (k)
··· ··· ···

 0 0 a3,3 a2,n b2
.. .. ... .. .. . .. ... . .

. .


 ···
(k) (k) (k)
· · · ak,k ··· · · · ak,n


 0 0 bk
(k+1) (k+1) (k+1)
0 0 ··· 0 ak+1,k+1 · · · ak+1,n bk+1

.. .. .. .. .. .. ..


. . . . . . ··· .


.. .. .. .. .. .
.. ..

. . . . . .


 ···
(k+1)
0 0 ··· 0 ak+1,n · · · a(k+1)
n,n b(k+1)
n

Après n − 1 étapes on obtient un système triangulaire supérieur.


(n−1) (n−1) (n−1) (n−1)

a a1,2 · · · · · · a1,n b1
 1,1 (n−1) (n−1) (n−1)
 0 a2,2 · · · · · · a2,n b2
.. ... .. ..

. . .

 0 ···
.. .. ... ... .. ..

. . . .



0 0 · · · · · · a(n−1)
n,n b(n−1)
n

Une fois que le système matrice a été mis sous forme triangulaire supérieur
on n'a plus qu'à résoudre un système triangulaire par la méthode de susbs-
titution arrière.

L'algorithme de la méthode de Gauss :


P our k = 1 jusqu0 à n − 1
pivot ← ak,k (* stratégie de pivot *)
Si pivot = 0 alors
Si pour m = k + 1 jusqu0 à n tous les am,k = 0 FIN (matrice pas
inversible)
Sinon

10
P ermuter la ligne k avec la ligne m
P ermuter bk avec bm
F in Si
F in Si
P our i = k + 1 jusqu0 à n
P our j = k + 1 jusqu0 à n
ai,k
ai,j = ai,j − ak,j
pivot
F in P our
ai,k
bi = bi − bk
pivot
F in P our
F in P our
Si an,n 6= 0 alors
bn
xn =
an,n
P our i = n − 1 jusqu0 à 1
n
X
bi − ai,j xj
j=i+1
xi =
ai,i
F in P our
Sinon FIN ( matrice pas inversible)
F in Si

Remarque 1 Dans l'élimination de Gauss, il faut au début choisir une équa-


tion avec a11 6= 0, à l'aide de laquelle on élimine x1 dans les autres équations.
Le choix de cette équation (choix du pivot) peut-il inuencer la précision du
résultat numérique, si l'on fait le calcul sur ordinateur en virgule ottante ?

11
Exemple : Considérons le système suivant :
(
10−4 x1 + x2 = 1
x1 + x2 = 2

La solution exacte de ce système est : x1 = 1.00010001... et x2 = 0.99989998.....


Appliquons la méthode de Gauss et simulons un calcul en virgule ottante
avec 3 chires signicatifs.
a) Si l'on prend a11 = 10−4 comme pivot, on obtient
(
10−4 x1 + x2 = 1
(1 − 104 )x2 = 2 − 104

2 − 104
par conséquent x2 = = 1 ( exacte !), mais pour x1 nous obtenons
1 − 104
1−1
x1 = =0.
10−4

Le résultat numérique obtenu pour x1 est faux.

b) si l'on échange les deux équations du système, le système devient :

(
x1 + x2 = 2
10−4 x1 + x2 = 1

le pivot est a11 = 1, et l'élimination de Gauss donne

(
x1 + x2 = 2
(1 − 10−4 )x2 = 1 − 10−4

2 − 1.000
par conséquent x2 = 1.000 et x1 = = 1.
1
Les deux valeurs numériques sont correctes.

12
2.1.4 Méthode de Gauss pivot partiel

L'idée est de ne pas se contenter d'un pivot qui soit diérent de zéro (
a11 6= 0), mais d'échanger les équations du système an que a11 soit le
plus grand élément en valeur absolue de la première colonne de A. La même
stratégie est répétée pour les sous-systèmes apparaissant dans l'élimination
de Gauss.
l'algorithme de Gauss pivot partiel :

P our k = 1 jusqu' à n − 1

Chercher l'élément am,k telle que|am,k | = max |ai,k |


i=k,···,n
P ermuter les lignes m et k
P ermuter bk avec bm
pivot ← ak,k (* stratégie de pivot *)
Si pivot = 0 alors F IN ( pas de solution )
Sinon
P our i = k + 1 jusqu0 à n
P our j = k + 1 jusqu0 à n
ai,k
ai,j ← ai,j − ak,j
pivot
F in P our
ai,k
bi = bi − bk
pivot
F in P our
F in si
F in P our
Si an,n 6= 0 alors
bn
xn =
an,n

13
P our i = n − 1 jusqu0 à 1
n
X
bi − ai,j xj
j=i+1
xi =
ai,i
Sinon F IN ( matrice pas inversible )

2.1.5 Méthode de Gauss pivot total

On choisit maintenant p et q de telle sorte que |ap,q | = max |ai,j |


i=1,···,nj=1,···,n
et on échange alors les ligne 1 et p ( dans la matrice A et le second membre
b), les colonnes 1 et q de A et les inconnues x1 et xq .
La même stratégie est répétée pour les sous-systèmes apparaissant dans l'éli-
mination de Gauss.

l'algorithme de Gauss pivot total :

P our k = 1 jusqu' à n − 1

Chercher l'élément ap,q telle que |ap,q | = max |ai,j |


i=k,···,n j=k,···,n

P ermuter les lignes k et p


P ermuter les colonnes k et q
P ermuter bk avec bp
P ermuter les inconnues xk et xq
pivot ← ak,k (* stratégie de pivot *)
Si pivot = 0 alors F IN ( pas de solution )
Sinon
P our i = k + 1 jusqu0 à n

14
P our j = k + 1 jusqu0 à n
ai,k
ai,j ← ai,j − ak,j
pivot
F in P our
ai,k
bi ← bi − bk
pivot
F in P our
F in Si
F in P our
Si an,n 6= 0 alors
Réordonner les inconnues
bn
xn =
an,n
P our i = n − 1 jusqu0 à 1
n
X
bi − ai,j xj
j=i+1
xi =
ai,i
F in P our
Sinon F IN ( matrice pas inversible )
F in Si

2.1.6 Méthode de Gauss-Jordan

Inverser une matrice A carrée inversible d'ordre n, revient à résoudre les n


systèmes Afi = ei pour i allant de 1 à n, où (e1 , e2 , e3 , · · · , en ) est la base
canonique de IRn .
Pour cela, on crée un tableau à n lignes et 2n colonnes en bordant la matrice
A par la matrice identité In .

Ainsi, pour inverser la matrice A d'ordre n, on utilisera la matrice augmentée


suivante :

15
 
a1,1 · · · a1,n 1 ··· 0
.. ... .. .. . . ..
. . . . .
 
(A|In ) = 



an,1 · · · an,n 0 ··· 1

La transformation de Gauss-Jordan consiste à transformer ce système en un


système équivalent dont le bloc gauche est l'identité, c'est à dire qu'il faut
modier la matrice (A|In ) pour qu'elle devienne de la forme (In |A) en uti-
lisant la méthode de Gauss.

Exemple :

Soit la matrice
 
3 2 −1
A =  1 −1 1 


2 −4 5

Calculons A−1 par la méthode de Gauss-Jordan.


Soit la matrice augmentée :

 
3 2 −1 1 0 0 L1

 1 −1 1 0 1 0 
 L2
2 −4 5 0 0 1 L3

2 −1
 
3 1 0 0 L1
 5 4 1  1
 0

− − 1 0  L2 ← L2 −

L1
 3 3 3  3
 16 17 2  2
0 − − 0 1 L3 ← L3 − L1
3 3 3 3

16
2 −1
 
3 1 0 0
 5 4 1  L1
 0 − −  L2
1 0 

 3 3 3  16 −3
 7 2 16 
L3 ← L3 + L2
0 0 − 1 3 5
5 5 5

3 3 6
 
3 0 0  3

5 5 5  L1 ← L1 + 2 L2
5 4 1

  5
 0 − − 1 0 
 L2
3 3 3

7 2 16
 
  L
0 0 − 1 3
5 5 5

3 18 3


3 0 0 −  3
5 4 7 7 7  L1 ← L1 − L3
1

 0 −
  7
3 3 − 1 0 
 L2
3

 7 2 16

 L
0 0 − 1 3
5 5 5

3 18 3


30 0 −  L1
5 7 7 7 
5 85 20 
 L ← L − 20 L

 0 − 0

3 − −  2 2 3
7 21 21  21

 7 2 16  L
0 0 − 1 3
5 5 5

1 6 1 1

 −  L1 ← L1
1 0 0 7 7 7  3
3 17 4  3

 0 1 0 −  L2 ← − L2

0 0 1 7 7 7  5
2 16 5  5
− L3 ← L3
7 7 7 7

L'algorithme de la méthode de Gauss-Jordan


C est la matrice inverse de A : C = A−1 .
P our i = 1 jusqu'à n

17
P our j = 1 jusqu'à n
Si i = j P oser ci,j = 1
Sinon P oser ci,j = 0
F in Si
F in P our
F in P our
P our i = 1 jusqu'à n
Si ai,i = 0 alors
Si P our m = i + 1 jusqu'à n tous les am,i = 0 Fin (matrice pas
inversible)
Sinon
P ermuter am,k et ai,k pour k = i jusqu'à à n
P ermuter entre cm,k et ci,k pour k = 1 jusqu'à à n
F in Si
F in Si
P our j = 1 jusqu'à n
Si i 6= j alors
aj,i
T ←
ai,i
P our k = 1 jusqu'à n
aj,k ← aj,k − T ai,k
cj,k ← cj,k − T ci,k
F in P our
F in Si
F in P our
F in P our
ci,j
ci,j ← P our i = 1 jusqu'à n et j = 1 jusqu'à n (éléments de la matrice
ai,i
inverse)

18
2.1.7 Décomposition L U

Problème de la méthode du pivot de Gauss : nécessite de modier b.


Donc pour résoudre Ax = b et Ax0 = b0 , il faut recommencer la procédure
deux fois.
Il faudrait une méthode qui ne modie pas b.
Supposons que nous sommes capables d'écrire la matrice A sous la forme
d'un produit de deux matrices triangulaires L (inférieure) et U (supérieure).

A = LU

l11 0 0 0 u11 u12 u13 u14


  

 l21 l22 0 0 
 0 u22 u23 u24 

l31 l32 l33 0 0 0 u33 u34
  
  
l41 l42 l43 l44 0 0 0 u44

Alors résoudre Ax = b peut aussi s'écrire


Ax = (L U )x = L(U x) = b.
Que l'on peut décomposer en deux étapes, avec une variable intermédiaire :y
Ax = b ⇐⇒ (L U )x = b ⇐⇒ L(U x) = b ⇐⇒ Ly = b avec y = U x
1. Résoudre Ly = b.
2. Résoudre U x = y .

Intérêt de la méthode : Si on connaît L et U , les étapes (1) et (2) se


résolvent simplement :
- en appliquant pour (1) une substitution avant (L est triangulaire inf.)
- en appliquant pour (2) une susbstitution arrière (U est triangulaire sup.)

Théorème 1 Soit A une matrice de Mn (IR). Pour 1 ≤ p =≤ n, on note


Ap le bloc

19
a1,1 · · · · · · a1,p
 

 2,1 · · · · · · a1,p 
a
 
 .. .. 
. .
 
 
ap,1 · · · · · · ap,p

La matrice A admet une factorisation A = LU où L est triangulaire infé-


rieure avec des 1 sur la diagonale et U est triangulaire supérieure et inver-
sible si et seulement si tous les blocs Ap , 1 ≤ p ≤ n, sont inversibles. De plus,
cette factorisation est unique.

Démonstration Si A admet une factorisation LU avec L et U inversibles,


alors les blocs Ap sont bien inversibles.
On partitionne A, L, U en blocs comme ci dessous :

! ! ! !
Ap A0p Lp 0 Up Up0 Lp Up Lp Up0
A = LU = = =
A00p A000
p L00p L000
p 0 Up000 L00p Up L00p Up0 + L000 000
p Up

=⇒ Ap = Lp Up

L et U sont inversibles , donc Lp et Up le sont aussi, ce qui implique que


Ap est inversible.

Existence : La démonstration se fait par récurrence : la propriété est clai-


rement vraie si n = 1. Supposons la propriété vraie pour p ≤ n − 1, et soit
une matrice A ∈ Mn (IR) dont tous les blocs Ap sont inversibles. L'hypo-
thèse de récurrence implique l'existence d'une factorisation LU pour le bloc
An−1 : An−1 = L0 U 0 . On va chercher une factorisation LU de A sous la forme

! !
L0 0 U0 y
A=
xt 1 0 z

20
où x, y ∈ IRn−1 et z ∈ IR, ou de manière équivalente

L0 y = (a1,n , · · · , an−1,n )t
t
U 0 x = (an,1 , · · · , an,n−1 )t

xt y + z = an,n

D'après l'hypothèse de récurrence, L0 et U 0 sont inversibles, donc x et y


existent, et z aussi. De plus, comme det(A) 6= 0, z est non nul. L'existence
d'une factorisation LU de A où L a des 1 sur la diagonale est démontrée.
Unicité : Soient deux factorisation LU de A : A = LU = L0 U 0 où L et L0
sont triangulaires inférieures avec des 1 sur la diagonale, et U et U 0 sont
triangulaires supérieures et inversibles. On a donc l'identité
−1
L0 L = U 0 U −1

Mais L0 −1 L est triangulaire inférieure avec des 1 sur la diagonale et U 0 U −1


est triangulaire supérieure. On a donc
−1
L0 L = U 0 U −1 = I

ce qui implique L = L0 et U = U 0 .

Théorème 2 Si au cours de l'élimination de Gauss sur la matrice A, les


pivots sont non nuls, alors il existe une matrice triangulaire inférieure L et
une matrice triangulaire supérieure U , telle que : A = L U . Si de plus on
impose à L d'avoir les éléments diagonaux égaux à un alors la factorisation
est unique.

Remarque 2 il existe une innité de décomposition LU si A est inversible.

21
Pour Calculer L et U facilement on se sert de la méthode du pivot de Gauss.
Exemple : Soit A ∈ M3 (IR) :

 
1 2 1
A= 4 3 1 


2 2 3

On garde la trace des diérentes étapes du pivot de Gauss.

 
1 2 1
 4 3 1 
 

2 2 3
première étape :

 
1 2 1 L1
 0 −5 −3  L2 ← L2 − 4L1
 

0 −2 1 L3 ← L3 − 2L1

Idée : Au lieu de garder les 0 dans la nouvelle matrice , on conserve dans


ces cases le coecient par lequel on a multiplié L1 .

 
1 2 1 L1
 4 −5 −3  L2 ← L2 − 4L1
 

2 −2 1 L3 ← L3 − 2L1

deuxième étape :

 
1 2 1 L1
 4 −5 −3  L2 ← L2
 
11  2
 

2 0 L3 ← L3 − L2
5 5

22
Idée : Au lieu de garder le 0 dans la nouvelle matrice , on conserve dans
cette case le coecient par lequel on a multiplié L2 .

 
1 2 1 L1
 4 −5 −3  L2 ← L2
 
2 11  2
 

2 L3 ← L3 − L2
5 5 5

On en déduit L et U

 
1 0 0
L= 4 1 0 
 
 
 2 
2 1
5

 
1 2 1
 0 −5 −3 
 
U =
11 


0 0
5

Vous pourrez vérier que A = L U .


L'algorithme de la Décomposition L U :
P our k = 1, · · · , n − 1
P our i = 1, · · · , k − 1
li,k = 0
F in P our
lk,k = 1
P our i = k + 1, · · · , n
ai,k
li,k =
ak,k
F in P our

23
P our i = k + 1, · · · , n
P our j = 1, · · · , k
ai,j = 0
F in P our
F in P our
P our i = k + 1, · · · , n
P our j = k + 1, · · · , n
aij = ai,j − li,k ak,j
F in P our
F in P our
F in P our
P our i = 1, · · · , n − 1
li,n = 0
F in P our
ln,n = 1
Une fois qu'on possède la décomposition LU , on obtient facilement le déter-
minant de A : det(A) = det(L)det(U ) = det(U )
Avantage de la méthode LU : on calcule L et U une seule fois.

2.1.8 Méthode de Cholesky

Nous allons donner une variante de la méthode de Gauss dans le cas où A est
une matrice symétrique réelle dénie positive. Nous allons bien sûr exploiter
la structure particulière de A. Dans ce cas là la décomposition LU de A
donne : A = LU . Soit D la diagonale de U de sorte que A = LDV où
V = D−1 U et les coecients diagonaux de L et V sont égaux à 1. Comme
A est symétrique A = At = V t DLt . L'unicité de la décomposition LU
implique que V t = L et DLt = U . Finalement , on obtient A = LDLt .

24
Comme A est dénie positive la diagonale de D est strictement positive et
on peut poser D = ∆2 en imposant que la diagonale de ∆ soit strictement
positive. On obtient alors A = BB t avec B = L∆ triangulaire inférieure.
Résumons ceci :

Théorème 3 Si A est symétrique dénie positive, il existe au moins une


matrice triangulaire inférieure L telle que A = LLt . Si on impose de plus
que les coecients diagonaux de L sont strictement positifs alors la factori-
sation est unique.

Nous avons démontré le résultat d'existence. L'unicité est immédiate. Dé-


taillons l'algorithme : on va chercher L sous forme triangulaire inférieure :

 
l1,1 0 · · · · · · · · · 0
 l2,1 l2,2 0 ··· ··· 0 
 
 .. .. ... ... .. ..
 
 . . . .


L= ...
 
 
 l
 k,1 lk,2 · · · lk,k 0 
 . .. .. .. ... ..

 .
 . . . . .



ln,1 ln,2 · · · · · · · · · ln,n

et résoudre le système A = LLt c'est-à-dire


n
X
∀ i, j ai,j = li,k lj,k
k=1

comme li,k = 0 pour k ≥ i + 1


inf (i,j)
X
∀ i, j ai,j = li,k lj,k
k=1

Nous allons construire les colonnes de L successivement. Commençons par


la première : i = 1.

25
La relation précédente donne :
2 √
j = 1 : a1,1 = l1,1 =⇒ l1,1 = a1,1
a1,2
j = 2 : a1,2 = l1,1 l2,1 =⇒ l2,1 =
l1,1
..
.
a1,n
j = n : a1,n = l1,1 ln,1 =⇒ ln,1 =
l1,1

On obtient ainsi la première colonne de L. Supposons avoir construit les i−1


premières colonnes de L et construisons la ième .

i i−1
2 2 2
X X
j=i: ai,i = li,k = li,i + li,k
k=1 k=1
connu
| {z }

d'où v
u
u i−1
X
2
li,i = ta
i,i − li,k
k=1
i−1
X
ai,i+1 − li,k li+1,k
k=1
j =i+1: li+1,i =
li,i
..
.
i−1
X
ai,n − li,k ln,k
k=1
j=n: ln,i =
li,i

L'algorithme de Cholesky

l1,1 = a1,1
P our i = 2, · · · , n
ai,1
li,1 =
l1,1
F in P our
P our k = 2, · · · , n

26
v
u
u k−1
2
X
lk,k = tak,k − lk,j
u
j=1

P our i = k + 1, · · · , n
k−1
X
ai,k − li,j lk,j
j=1
li,k =
lk,k
F in P our
F in P our
Exemple :
La matrice
1 1 1 1
 
 1 5 5 5 
A=
 
1 5 14 14

 
1 5 14 15
est égale au produit de la matrice triangulaire L et de sa transposée Lt :
1 1 1 1 1 0 0 0 1 1 1 1
    
 1 5 5 5   1 2 0 0  0 2 2 2 
A= 
=  
1 5 14 14 1 2 3 0 0 0 3 3
    
    
1 5 14 15 1 2 3 1 0 0 0 1
Avec
1 0 0 0
 
 1 2 0 0 
L=
 
1 2 3 0

 
1 2 3 1

Pour la résolution de système linéaire de la forme : Ax = b , le système


devient
(
t Ly = b (1)
LL x = b ⇐⇒
Lt x = y (2)

On résout le système (1) pour trouver le vecteur y , puis le système (2) pour
trouver le vecteur x. La résolution est facilitée par la forme triangulaire des

27
matrices.
La méthode de Cholesky permet aussi de calculer le déterminant de A, qui
est égale au carré du produit des éléments diagonaux de la matrice L, puisque

det(A) = det(L).det(Lt ) = det(L)2 .

28

Vous aimerez peut-être aussi