Vous êtes sur la page 1sur 8

Universit de Rouen

L2 Math - L2 Info
Anne 2007-2008
Analyse Numrique
Gauss et Cholesky
:. Pivo1 ui G:Uss
.. Un exemple. Soit rsoudre le systme linaire Ax = b avec
A =

2 3 I 3
4 6 0 2
I 2 0 3
I 4 3 2

, b =

II
6
2I
3

Procdons llimination de Gauss ; la Ire tape est

2 3 I 3
4 6 0 2
I 2 0 3
I 4 3 2

2
+

I2
+

I2
+
qui donne

2 3 I 3
0 0 2 4
0 I]2 I]2 I3]2
0 II]2 9]2 7]2

La 2me tape est

2 3 I 3
0 0 2 4
0 I]2 I]2 I3]2
0 II]2 9]2 7]2

II
+
qui donne

2 3 I 3
0 I]2 I]2 I3]2
0 0 2 4
0 0 I 73

Enn la dernire tape consiste en

2 3 I 3
0 I]2 I]2 I3]2
0 0 2 4
0 0 I 73


I2
+
qui donne

2 3 I 3
0 I]2 I]2 I3]2
0 0 2 4
0 0 0 73

Les mmes transformations appliques au vecteur b,

II
6
2I
3

2
+

I2
+

I2
+

II
+

I2
+
nous donne

II
33]2
I6
292

.
Par remonte du systme on trouve
x =

I
I
0
4

.
En termes matriciels, la Ire tape consiste ta-
blir A
(2)
= E
I
A avec
A
(2)
=

2 3 I 3
0 0 2 4
0 I]2 I]2 I3]2
0 II]2 9]2 7]2

et E
I
=

I 0 0 0
2 I 0 0
I]2 0 I 0
I]2 0 0 I

.
Puis A
(3)
= E
2
P
2
A
(2)
avec
A
(3)
=

2 3 I 3
0 I]2 I]2 I3]2
0 0 2 4
0 0 I 73

Deviner ce que veulent dire les ches et nombres placs droite des matrices !
. Gauss et Cholesky
P
2
=

I 0 0 0
0 0 I 0
0 I 0 0
0 0 0 I

et E
2
=

I 0 0 0
0 I 0 0
0 0 I 0
0 II 0 I

Enn, on obtient A
(4)
= E
3
A
(3)
avec
A
(4)
=

2 3 I 3
0 I]2 I]2 I3]2
0 0 2 4
0 0 0 73

et E
3
=

I 0 0 0
0 I 0 0
0 0 I 0
0 0 I]2 I

La matrice A
(4)
est triangulaire suprieure et est
donne par A
(4)
= E
3
E
2
P
2
E
I
A. Simultanment
on calcule E
3
E
2
P
2
E
I
b pour rsoudre A
(4)
x =
E
3
E
2
P
2
E
I
b.
.. Cas gnral.
Dmonstration. Soit A = (a
i, j
)
Ii, jn
une matrice carre de taille n inversible.
tape 1 : posons A
(I)
= (a
(I)
i, j
)
Ii, jn
= A. Comme A
(I)
est inversible, il existe au moins un coecient de
la Ire colonne de A
(I)
qui est non nul. Quitte permuter la Ire ligne avec une ligne i on a

A
(I)
= P
I
A
(I)
avec a
(I)
I,I
0 (la matrice P
I
tant ventuellement la matrice identit). Pour liminer les coecients de la
Ire colonne des lignes i pour i 2, on multiplie

A
(I)
( gauche) par E
I
avec
E
I
=

I 0 0
a
(I)
2,I
]a
(I)
I,I
I 0 0
a
(I)
3,I
]a
(I)
I,I
0 I 0 0

a
(I)
nI,I
]a
(I)
I,I
I 0
a
(I)
n,I
]a
(I)
I,I
0 0 I

et on obtient A
(2)
= E
I

A
(I)
A
(2)
=

a
(I)
I,I
a
(I)
I,2
a
(I)
I,n
0

(a
(2)
i, j
)
2i, jn

tape 2 : les matrices E


I
et

A
(I)
tant inversibles, il existe au moins un coecient i
0
tel que i
0
2 et
a
(2)
i

,2
0 (sinon les deux premires colonnes de A
(2)
seraient lies). Quitte permuter la ligne 2 et la ligne
i
0
, on a donc

A
(2)
= P
2
A
(2)
(o P
2
est la matrice identit ou une matrice de permutation de lignes) avec

A
(2)
=

a
(I)
I,I
a
(I)
I,2
a
(I)
I,n
0

(a
(2)
i, j
)
2i, jn

et a
(2)
2,2
0.
Gauss et Cholesky .
Pour liminer les termes a
(2)
i,2
pour i 3, il sut de multiplier ( gauche)

A
(2)
par E
2
E
2
=

I 0 0
0 I 0 0
0 a
(2)
3,2
]a
(2)
2,2
I 0 0
a
(2)
4,2
]a
(2)
2,2
0 I
0
0 a
(2)
n,2
]a
(2)
2,2
0 0 I

pour obtenir A
(3)
= E
2

A
(2)
A
(3)
=

a
(I)
I,I
a
(I)
I,2
a
(I)
I,3
a
(I)
I,n
0 a
(2)
2,2
a
(2)
2,3
a
(2)
2,n

0
0

(a
(3)
i, j
)
3i, jn

Comme A
(3)
est inversible (E
2
et

A
(2)
le sont), P
3
dsignant une matrice permutant deux lignes oula matrice
identit on a

A
(3)
= P
3
A
(3)

A
(3)
=

a
(I)
I,I
a
(I)
I,2
a
(I)
I,3
a
(I)
I,n
0 a
(2)
2,2
a
(2)
2,3
a
(2)
2,n

0
0

(a
(3)
i, j
)
3i, jn

et a
(3)
3,3
0
. . . tape k : on suppose que lon a obtenu la matrice A
(k)
dont les k I premires colonnes sont remplies
de zros sous la diagonale et A
(k)
inversible, de la forme
A
(k)
=

a
(I)
I,I
a
(I)
I,2

0 a
(2)
2,2

0
a
(kI)
kI,kI
a
(I)
I,n
a
(2)
2,n

0


0 0

(a
(k)
i, j
)
ki, jn

.
. Gauss et Cholesky
La matrice A
(k)
tant inversible, quitte permuter la ligne k avec une ligne i
0
(avec i
0
k + I), on a

A
(k)
= P
k
A
(k)
telle que
A
(k)
=

a
(I)
I,I
a
(I)
I,2

0 a
(2)
2,2

0
a
(kI)
kI,kI
a
(I)
I,n
a
(2)
2,n

0


0 0

(a
(k)
i, j
)
ki, jn

et a
(k)
k,k
0.
On peut alors procder llimination par la multiplication ( gauche) de

A
(k)
par E
k
, A
(k+I)
= E
k

A
(k)
avec
E
k
=

I 0 0
0 I 0
0 0 I

I
0 0

0 0

I 0
a
(k)
k+I,k
]a
(k)
k,k
I 0
a
(k)
k+2,k
]a
(k)
k,k
0 I

a
(k)
n,k
]a
(k)
k,k
I

Gauss et Cholesky .
et A
(k+I)
de la forme
A
(k+I)
=

a
(I)
I,I
a
(I)
I,2

0 a
(2)
2,2

0
a
(kI)
kI,kI

a
(k)
k,k
a
(I)
I,n
a
(2)
2,n

a
(kI)
kI,n
a
(k)
k,n
0


0 0

(a
(k+I)
i, j
)
k+Ii, jn

.
Aprs n I tapes on obtient A
(n)
= {E
nI
P
nI
E
I
P
I
) triangulaire suprieure. La matrice M dnie par
M = E
nI
P
nI
E
I
P
I
vrie le rsultat demand. Comme E
i
et P
i
sont inversibles pour tout I i n I, M
est inversible. Rsoudre A
(n)
x = Mb est donc quivalent rsoudre Ax = b.
Voici une procdure Maple lmentaire qui excute la mthode du pivot de Gauss, sans permutation de
ligne.
r e s t a r t ; wi t h ( l i n a l g ) : c ha r ge l e paquet l i n a l g qui a j o u t e des
f o nc t i o ns Mapl e c onc e r na nt l a l g b r e l i n a i r e
ga us s : = proc (A, b )
l o c a l AA, bb , i , j , k , p , n , s o l x ;
n: = col di m (A) ;
AA: = ma t r i x ( n , n ) ; AA ma t r i c e c a r r e v i de de t a i l l e de n
AA: = copy (A) ; s i on f a i t AA: =A a l o r s t o ut e mo di f i c a t i o n f a i t e s ur
bb : = copy ( b ) ; AA l e s t a u s s i s ur A, on u t i l i s e donc copy , idem pour b
s o l x : = v e c t o r ( n ) ; s o l x v e c t e ur de t a i l l e n
l i mi na t i o n
f or k t o n do
f or i from k+ t o n do
i f (AA[ k , k ] =) t hen e r r or ( pi v o t nul ) f i ;
p : =AA[ i , k ] / AA[ k , k ] ;
f or j from k+ t o n do
AA[ i , j ] : =AA[ i , j ] AA[ k , j ] * p ;
od ;
bb [ i ] : = bb [ i ] bb [ k ] * p ;
AA[ i , k ] : = ;
od ;
od ;
remont e
s o l x [ n ] : = bb [ n ] / AA[ n , n ] ;
i : =n ;
. Gauss et Cholesky
f or i from n t o by do
s o l x [ i ] : = ( bb [ i ] add (AA[ i , j ] * s o l x [ j ] , j = i + . . n ) ) / AA[ i , i ] ;
od ;
eval m ( s o l x ) ;
end proc ;
Exercice :. Recompter le nombre de multiplications eectues en fonction de n dans le programme prc-
dent. Faire une version gauss1 qui permute les lignes si ncessaire et utilise les fonctions Maple addrow,
swaprow et une version gauss2 qui utilise la stratgie du pivot partiel.
.. Pivots non nuls. On dmontre par rcurrence quil nest pas ncessaire de permuter les lignes (i.e.
pour tout I k n a
(k)
k,k
0) si et seulement si toutes les sous-matrices principales de A sont inversibles.
Clairement
I
est inversible si et seulement si det
I
= a
I,I
0 ; llimination est possible avec la ligne I de
A
(I)
= A. Supposons que pour tout i I, . . . , k I on ait a
(i)
i,i
0. Dans le processus dlimination jusqu
ltape k I, aucune permutation de ligne na t ncessaire, ainsi A
(k)
= E
kI
E
k2
E
I
A
(I)
et

A
(i)
= A
(i)
i I, . . . , k I. Rappelons que le dterminant dune matrice est inchang quand on ajoute une ligne
une combinaison linaire des autres lignes. Chaque tape i I, . . . , k I consiste ajouter aux lignes
j i + I un facteur de la ligne i, ce qui entrane det A = det A
(k)
. Si on restreint les oprations eectues
la sous-matrice principale dordre k de A, on obtient par le mme argument que
det
k
=

a
(I)
I,I
a
(I)
I,2

0 a
(2)
2,2


0 0 a
(k)
k,k

= a
(I)
I,I
a
(I)
I,2
a
(k)
k,k
.
Une autre faon est de montrer que la structure triangulaire infrieure des matrices E
i
(I i kI) entrane
que (A
(k)
)
k
= (E
kI
)
k
(E
k2
)
k
(E
I
)
k

k
, o ()
k
dsigne la sous matrice principale dordre k (utiliser les
matrices blocs).
Finalement det
k
0 quivaut a
(I)
I,I
a
(I)
I,2
a
(k)
k,k
0, soit a
(i)
i,i
0 pour tout i I, . . . , k. Le
rsultat est dmontr par rcurrence.
:. Dicomvosi1io ui Cuoiisxv
.. Rappel et thorme.
Dhnition i. Une matrice A M
n
(R) est dite symtrique dnie positive si
() A
t
= A (A symtrique)
() x
t
Ax 0, x R
n
(A positive)
() x
t
Ax = 0 si et seulement si x = 0 (A dnie)
Exercice . Si A M
n
(R) est symtrique-dnie-positive alors det A > 0 et A admet n valeurs propres
relles strictement positives. [chercher dans vos cours dalgbre, exercices, livres. . .]
Proposition {. Soit A M
n
(R) une matrice symtrique dnie positive. Alors toutes ses sous-matrices prin-
cipales sont symtriques dnies positives.
Dmonstration. Notons
k
la sous-matrice principale de A dordre k, qui est clairement symtrique. Si
k = n cest vident. Soient k I, . . . , n I et z R
k
et dmontrons les points () et () de la dnition.
Gauss et Cholesky .
Lide est de complter le vecteur z en un vecteur de R
n
par
y =

z
I

z
k
0

R
n
.
Clairement on a y
t
Ay = z
t

k
z 0, ce qui entrane
k
positive. De plus y
t
Ay = z
t

k
z = 0 quivaut y = 0
(dans R
n
), soit z = 0 (dans R
k
). La matrice
k
est donc symtrique dnie positive.
Torme (Dcomposition de Cholesky). Soit A M
n
(R) une matrice symtrique dnie positive. Alors
il existe une unique matrice T triangulaire infrieure dont les termes de la diagonale sont positifs telle que
A = TT
t
. Une telle dcomposition est appele dcomposition de Cholesky.
Dmonstration. Daprs la proposition?? (et lexercice) nous savons que toutes les sous-matrices principales
de A sont de dterminant non nul. La matrice A admet donc une dcomposition LU, la diagonale de L
ntant compose que de I. De plus det
k
=
k
i=I
u
i,i
> 0 pour tout k > 0 ce qui entrane u
i,i
> 0 pour tout
i I, . . . , n. Posons D = diag(

u
I,I
, . . . ,

u
n,n
) matrice diagonale dont les coecients de la diagonale
sont respectivement

u
I,I
, . . . ,

u
n,n
. Alors A = LDD
I
U = (LD)(D
I
U).
Montrons que T = LD convient, ce qui revient dmontrer que D
I
U = (LD)
t
. Comme A est sym-
trique lgalit A
t
= A nous donne U
t
L
t
= A, soit (U
t
D
I
D
I
)(DDL
t
) = A. Daprs la dnition de D,
la matrice U
t
D
I
D
I
est une matrice triangulaire infrieure avec des I sur la diagonale et il est vident
que DDL
t
est une matrice triangulaire suprieure. Ainsi lunicit de la dcomposition LU entrane que
L = U
t
D
I
D
I
, do T
t
= (LD)
t
= (U
t
D
I
)
t
= D
I
U [depuis le dbut on utilise le fait que la transpose
dune matrice diagonale est elle-mme].
Montrons lunicit dune telle dcomposition. Soit A = MM
t
une autre dcomposition de Cholesky.
Lgalit MM
t
= TT
t
nous donne T
I
M = T
t
(M
t
)
I
, avec T
I
M triangulaire infrieure et T
t
(M
t
)
I
triangulaire suprieure. Donc T
I
M est une matrice diagonale, note D

. Ajoutons que comme T


I
et M
sont des matrices triangulaires infrieures dont les coecients de la diagonale sont positifs, il en est de
mme pour D

. Lgalit TT
t
= A = MM
t
= TD

(TD

)
t
= TD

T
t
implique que D

= I. Du fait que
les coecients de D

soient positifs nous en dduisons que D

= I, soit M = T.
.. Algorithme et nombre doprations lmentaires. La mthode pour trouver la dcomposition de
Cholesky est dcrire A = TT
t
et didentier les coecients de faon progressive. Commencer avant de
lire la suite par faire un dessin pour TT
t
. . . puis crire lalgorithme correspondant (voir plus loin le dit-
algorithme).
Pour les oprations lmentaires il faut distinguer ici les additions-soustractions, les multiplications-
divisions et les extractions de racines (bien plus compliques).
les

: ligne , n 2 lignes et ligne ce qui fait n extractions de racine
les : ligne : n I, lignes et :
nI

k=2
|(k I) +
n

i=k+I
k], ligne : n I. Do un total
n I +
(n 2)(n I)
2
+ |
nI

k=2
k(n k)] + n I =
n
3
6
+
n
2
2
+
2n
3

n
3
6
les + : on trouve
n
3
n
6

n
3
6
Le temps de calcul des n extractions de racine est ngligeable devant les n
3
]3 oprations lmentaires.
Finalement la dcomposition de Cholesky ncessite de lordre de n
3
]3 oprations lmentaires, ce qui est
moins comparativement la dcomposition LU.
. Gauss et Cholesky
Algorithme : Dcomposition de Cholesky
: t
I,I

a
I,I
: for i = 2 to n do
: t
i,I

a
I,i
t
I,I
: end for
: for k = 2 to n I do
: t
k,k
(a
k,k

kI

i=I
t
2
k,i
)
I2
: for i = k + I to n do
: t
i,k
{a
i,k

kI

j=I
t
i, j
t
j,k
)]t
k,k
: end for
: end for
: t
n,n
{a
n,n

nI

i=I
t
2
n, j
)
I2
Remarque o. Si on sait que la matrice Aest symtrique dnie positive il donc plus intressant de chercher
sa dcomposition de Cholesky plutt que sa dcomposition LU. Pour des raisons non dveloppes dans ce
cours, les matrices symtriques dnies positives interviennent naturellement en analyse numrique car
issues dun produit scalaire.
.. Un exemple. Soit la matrice A

4 6 8 2
6 I0 I3 3
8 I3 26 I
2 3 I 62

Faisons le dessin

t
I,I
t
2,I
t
3,I
t
4,I
0 t
2,2
t
3,2
t
4,2
0 0 t
3,3
t
4,3
0 0 0 t
4,4

t
I,I
0 0 0
t
2,I
t
2,2
0 0
t
3,I
t
3,2
t
3,3
0
t
4,I
t
4,2
t
4,3
t
4,4

4 6 8 2
6 I0 I3 3
8 I3 26 I
2 3 I 62

() t
2
I,I
= 4 t
I,I
= 2
() 2t
2,I
= 6 t
2,I
= 3
() 2t
3,I
= 8 t
3,I
= 4
() 2t
4,I
= 2 t
4,I
= I
() (3)
2
+ t
2
2,2
= I0 t
2,2
= I
() (3) 4 + t
3,2
= I3 t
3,2
= 3
() 3 + t
4,2
= 3 t
4,2
= 0
() 4
2
+ (3)
2
+ t
2
3,3
= 26 t
3,3
= I
() 4 I + t
4,3
= I t
4,3
= 3
() I
2
+ 0
2
+ (3)
2
+ t
2
4,4
= 62 t
4,4
= 6

Vous aimerez peut-être aussi