Vous êtes sur la page 1sur 8

Factorisation LU

par Eric Brunelle


1 Introduction
La factorisation LU dune matrice A
nn
est une astuce trs importante dans
le domaine de lanalyse numrique. Sa base est trs simple, mais ses applica-
tions sont trs nombreuses et trs utiles. Avant de montrer ces applications,
regardons ce quest la factorisation LU et comment lobtenir.
2 Lobtention de la factorisation
2.1 La thorie
La factorisation LU consiste crire une matrice non-singulire A comme le
produit de deux autres matrices L et U. L est une matrice triangulaire in-
frieure ayant des 1 sur la diagonale et U une matrice triangulaire suprieure.
On notera les lments de ces deux matrices de la manire suivante:
L =
_
_
_
_
_
_
_
1 0 0 . . . 0
l
2,1
1 0 . . . 0
l
3,1
l
3,2
1 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
l
n,1
l
n,2
l
n,3
. . . 1
_
_
_
_
_
_
_
U =
_
_
_
_
_
_
_
u
1,1
u
1,2
. . . u
1,n1
u
1,n
0 u
2,2
. . . u
2,n1
u
2,n
0 0 . . . u
3,n1
u
3,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . u
n,n
_
_
_
_
_
_
_
La meilleure faon dobtenir cette factorisation, est dutiliser llimination
de Gauss. Nous savons que nous pouvons crire llimination grce un
produit de matrices lmentaires E
i
. Commenons par liminer la premire
colonne de la matrice A. On peut donc faire les transformations lmentaires
suivantes sur la matrice A
m
i1
L
1
+ L
i
L
i
1
o m
i1
= a
i1
/a
11
et ce pour tous les i = 2..n et L
i
est la i
ime
ligne de la matrice
A. On peut alors crire cette transformations sous une forme matricielle.
EA =
_
_
_
_
_
_
_
1 0 0 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
m
i,1
. . . 1 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . 1
_
_
_
_
_
_
_
_
_
_
_
_
_
_
a
1,1
a
1,2
. . . a
1,n1
a
1,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
i,1
a
i,2
. . . a
i,n1
a
i,n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1
a
n,2
a
n,3
. . . a
n,n
_
_
_
_
_
_
_
Par la suite, on trouve linverse de cette matrice E.
E
1
=
_
_
_
_
_
_
_
1 0 0 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
m
i,1
. . . 1 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 . . . 1
_
_
_
_
_
_
_
On utilise le mme principe pour liminer les lments sous la diagonale de
la matrice A.
m
ij
L
j
+ L
i
L
i
o m
ij
= a
ij
/a
jj
pour les i = j + 1..n. Ainsi, la forme matricielle de cette
limination est:
E
k
E
k1
...E
2
E
1
A = U
Alors,
A = E
1
1
E
1
2
...E
1
k1
E
1
k
U
Puisque tous les E
1
i
sont des matrices triangulaires infrieures, alors le pro-
duit de ces dernires lest aussi et, dans le cas ici, possde des 1 sur la
diagonale. Ainsi, cette matrice rsultant de ce produit est notre matrice L
et, U est ce qui reste aprs lapplication de llimination de Gauss. Nous
pouvons alors mettre sur pied un algorithme pour trouver L et U laide
dun ordinateur. Cela nous permettra dexpliquer certains avantages de la
factorisation LU par la suite.
2
2.2 Algorithme de factorisation LU
u
1,1
= a
1,1
Pour j = 2..n
u
1,j
= a
1,j
l
j,1
= a
j,1
/a
1,1
n
Pour i = 2..n 1
u
i,i
= a
i,i

i1
k=1
l
i,k
u
k,i
Pour j = i + 1..n
u
i,j
= a
i,j

i1
k=1
l
i,k
u
k,j
l
j,i
=
1
u
i,i
_
a
j,i

i1
k=1
l
j,k
u
k,i
_
fin
fin
u
n,n
= a
n,n

n1
k=1
l
n,k
u
k,n
Regardons un exemple an de mettre les ides bien en place.
Exemple 1.
A =
_
_
4 9 2
2 4 4
1 2 2
_
_
Nous avons que m
21
= 2/4 = 0.5 et m
31
= 1/4 = 0.25. Ce nous donne
A
_
_
4 9 2
0 0.5 3
0 0.25 2.5
_
_
Continuons llimination en posant m
32
= 0.25/0.5 = 0.5 et nous obtenons
que L =
_
_
1 0 0
0.5 1 0
0.25 0.5 1
_
_
et U =
_
_
4 9 2
0 0.5 3
0 0 4
_
_
Nous avons donc
obtenu la factorisation LU.
3
3 Utilit
Voyons maintenant en quoi cela peut tre utile. Pour ce faire, nous allons
comparer le nombre doprations ncessaire pour rsoudre un systme linaire
Ax = b avec la mthode dlimination de Gauss et par la mthode de sub-
stitution avant-arrire qui demande de connatre la factorisation LU de A.
Commenons par llimination de Gauss-Jordan.
3.1 limination de Gauss
Llimination de Gauss est la mthode utilise dans les cours dalgbre linaire
lmentaire. On prend la matrice A et on laugmente de b. On fait ensuite
des opration lmentaires sur les lignes et on rduit la partie de gauche en
une matrice identite. Le vecteur droite sera alors la solution x cherche.
Prenons un exemple. Soit
_
_
2 1 2
4 3 3
2 2 1
_
_
_
_
x
y
z
_
_
=
_
_
15
25
4
_
_
(1)
On cre la matrice augmente pour ce systme et on fait llimination de
Gauss.
[A|b] =
_
_
2 1 2 | 15
4 3 3 | 25
2 2 1 | 4
_
_
(2)

_
_
2 1 2 | 15
0 5 7 | 55
0 1 3 | 11
_
_
(3)

_
_
2 1 2 | 15
0 5 7 | 55
0 0 1 | 5
_
_
(4)

_
_
2 1 0 | 5
0 1 0 | 4
0 0 1 | 5
_
_
(5)

_
_
1 0 0 | 1/2
0 1 0 | 4
0 0 1 | 5
_
_
(6)
(7)
4
Nous obtenons ainsi la solution x = 1/2, y = 4 et z = 5. Regardons main-
tenant lalgorithme an de programmer la mthode. Nous compterons par
la suite le nombre doprations ncessaires.
Nommons B la matrice A augmente de b. Ainsi nous avons que B = (b
i,j
)
o 1 i n et 1 i n + 1.
3.2 Algorithme de la mthode de Gauss
Pour i = 1, .., n 1
Pour j = i + 1, .., n
m
j,i
= b
j,i
/b
i,i
Pour k = i, .., n + 1
b
j,k
= b
j,k
m
i,j
b
i,k
n
n
n
Aprs cette tape, la matrice B est triangulaire infrieure. Il reste la sub-
stitution arrire.
x
n
= b
n,n+1
/b
n,n
Pour i = n 1, .., 1
x
i
=
_
b
i,n+1

n
j=i+1
b
i,j
x
j
_
/b
i,i
n
3.3 Nombre doprations
Nous obtenons ainsi le vecteur x. Comme nous lavons mentionn plus tt, ce
qui est important de savoir pour comparer deux algorithme, cest le nombre
de multiplication et de division demand par chacun. Cest ces oprations qui
demandent plus grand temps de calcul lordinateur, laddition et la sous-
traction sont beaucoup plus rapide. Pour cet algorithme, on peut vrier que
la premire tape demande
2n
3
+3n
2
5n
6
multiplication/division. La deuxime
tape (la substitution arrire) en demande
n
2
+n
2
. Ainsi, au total lalgorithme
ncessite
2n
3
+6n
2
2n
6
. Ainsi, on peut dire que le nombre doprations est de
lordre 3.
5
Supposons maintenant que nous connaissons la factorisation LU de la
matrice A. Ainsi, le systme Ax = b peut se rcrire LUx = b. Posons
z = Ux. Nous avons donc que Lz = b. Ce systme est rapide rsoudre,
car la matrice L est triangulaire infrieure. Voici lalgorithme pour trouver
z, dit la substitution avant.
Algorithme de substitution avant
z
1
= b
1
Pour i = 2...n
z
i
= b
i

i1
j=1
L
i,j
z
j
n
Il ne reste plus que rsoudre le systme Ux = z. Il ne faut pas oublier
que U est une matrice triangulaire suprieure. Ceci est la subtitution arrire
qui est la mme que la deuxime partie de lalgorithme de Gauss.
Algorithme de substitution arrire
x
n
= z
n
/U
n,n
Pour i = n 1, .., 1
x
i
=
_
z
i

n
j=i+1
U
i,j
x
j
_
/U
i,i
n
Comptons le nombre dopration de ces deux algorithmes. Pour la sub-
stitution avant, il y a i 1 multiplications ltape i. Ainsi, le nombre total
est

n
i=1
(i 1) =
n
2
n
2
. Pour la susbtitution arrire, on a ni +1M/S pour
ltape i et puisque i = 1...n 1, on au total

n1
i=1
(ni +1) =
n
2
+n
2
. Ainsi,
lalgorithme pour rsoudre le systme lorsque lon connat la factorisation
LU de A demande n
2
multiplications/divisions.
Le comptage des oprations nous permet donc de conclure que si nous
connaissons la factorisation LU et que n est grand, il est plus plus rapide
dutiliser la mthode de factorisation LU, O(n
2
), que la mthode de Gauss,
O(n
3
).
6
4 Simulations numriques
Nous avons eectu une exprimentation an de vrier le thorie ci-haut.
Pour de matrices de tailles 500 jusqu 2000, nous avons calcul le temps
ncessaire pour que lordinateur rsoudre un systme Ax = b avec les deux
algorithmes. Ainsi, les temps de calcul T
G
pour Gauss et T
LU
pour LU de-
vraient respectivement tre des formes T
G
(n) kn
3
et T
LU
(n) cn
2
o k et
c sont des constantes. En traant le graphique log-log de ces deux fonctions,
la pente de chaque droite devrait nous donner lordre, cest--dire 3 pour
Gauss et 2 pour LU. Voici les pentes trouves: 2.6582 pour Gauss et 1.8679
pour la mthode LU. Cela ressemble trs bien aux rsultats thoriques.
6.2 6.4 6.6 6.8 7 7.2 7.4 7.6 7.8 8
5
4
3
2
1
0
1
2
Figure 1: Graphique loglog du temps de calcul en fonction de n. Les x est
la mthode LU et les o est la mthode de Gauss
Jusquici, nous avons supposer que la factorisation LU de la matrice A
tait connue. Cela est rarement le cas et on peut montrer grce lalgorithme
de la factorisation LU que lordre dopration pour trouver L et U est aussi
3. Cela signie donc que si nous avons un systme rsoudre et que lon ne
connat pas L et U, alors les deux mthodes ncessitent le mme ordre de
7
temps de calcul.
Il ne faut toutefois pas douter de lutilit de la mthode de factorisation
LU. Dans plusieurs situations en analyse numrique, notamment dans la
rsolution dEDO, il y a plusieurs sytmes Ax
i
= b
i
rsoudre pour i = 1..M
avec M grand. Puisque A en constant pour tous ces systmes, il est donc
avantageux de calculer une fois L et U et de rsoudre par la mthode de
factorisation LU les M systmes.
5 Exercices
1.
Trouver la factorisation LU de la matrice
_
_
5 1 2
4 3 3
0 2 4
_
_
(8)
2.
Dmontrer que le nombre de multiplication/division de la factorisation LU
est bel et bien de lordre 3. Faites de mme pour lalgorithme dlimination
de Gauss.
Rfrences
[1] Burden, R.L., Faires, J.D. Numerical Analysis, (Brooks/Cole, 2001): 7e
edition.
8

Vous aimerez peut-être aussi