• Aucun résultat trouvé

Algorithme de factorisation de Gauss

=

[L]1,1 0 P[L]2,1 P[L]2,2

[U]1,1 [U]1,2Q 0 [U]2,2Q

. On ´enonce pour finir un r´esultat d’unicit´e.

Proposition 3.8.1 SoitA∈Rn×n une matrice inversible, pour des matrices de permutation P et Q donn´ees, la factorisationP A Q=L U est unique.

Preuve :Cela est ´evident par construction des matricesLetU, leurs coefficients ´etant d´etermin´es de mani`ere unique par les formules de l’algorithme. Mais on peut aussi d´emontrer ce r´esultat par une m´ethode qui sera utile par la suite. Supposons qu’il existe des matrices triangulaires inf´erieures L etL0, et triangulaires sup´erieures U et U0 qui v´erifient P A Q=L U =L0U0. Par voie de cons´equence,

(L0)−1L=U0U−1(=M).

Or, (L0)−1L(resp.U0U−1) est une matrice triangulaire inf´erieure (resp. triangulaire sup´erieure).

Ainsi M est n´ecessairement une matrice diagonale. De plus, L et L0 ´etant `a diagonale unit´e, il en est de mˆeme pour (L0)−1L. Finalement, M =In.

3.9 Les m´ ethodes directes

Dans la suite on appellera m´ethode directe de r´esolution d’un syst`eme lin´eaire Ax = b tout algorithme qui calcule la solutionx en un nombre d’op´erations d´etermin´ea priori. Il s’agit ici de faire la distinction avec les m´ethodes it´eratives, ´etudi´ees au chapitre 4, pour lesquelles le nombre d’op´erations d´epend du nombre d’it´erations de la m´ethode, nombre qu’il est impossible de connaˆıtre `a l’avance car il est li´e au choix de la solution initiale x0 ∈ Rn relativement au second membreb.

Les m´ethodes d’´elimination et de factorisation sont `a ce titre des m´ethodes directes, car il est ´evident que le nombre d’op´erations n´ecessaires au calcul des matrices L et U est fini - ce nombre d’op´erations est calcul´e pr´ecis´ement plus loin - Par ailleurs le coˆut d’une descente et d’une remont´ee est ´egal `a 2n2 op´erations.

Noter que ce nombre d’op´erations d´epend des propri´et´es de la matrice A, car on peut tirer parti d’une ´eventuelle sym´etrie par exemple. On distingue ainsi plusieurs types de factorisation : - La m´ethode de Gauss A = LU, avec L matrice triangulaire inf´erieure `a diagonale unit´e,

etU matrice triangulaire sup´erieure. Adoit ˆetre inversible.

- La m´ethode de CroutA=LDLT, avecLmatrice triangulaire inf´erieure `a diagonale unit´e, etDmatrice diagonale. A doit ˆetre sym´etrique inversible.

- La m´ethode de Cholesky A = LLT, avec L matrice triangulaire inf´erieure. A doit ˆetre sym´etrique d´efinie-positive.

Dans ce qui suit, on reprend l’´etude de la factorisation de la matrice A dans une formulation plus g´en´erale, en supposant uniquement que cette matrice est inversible.

3.10 Algorithme de factorisation de Gauss

Maintenant que l’existence des matrices LetU est ´etablie, on v´erifie que l’on peut calculer leurs coefficients directement par identification, `a partir des relations

∀ i, j 1≤i, j≤n Ai,j =X

k

Li,kUk,j.

On proc`ede en calculant pour un indice k donn´e, tous les coefficients L·,k de la colonne k de la matrice L, puis tous les coefficients Uk,· de la ligne k de la matrice U. Ce processus peut ˆetre repr´esent´e par les sch´emas suivants, dans lesquels les coefficients · sont suppos´es connus, les coefficients x sont inconnus et le coefficient • est en cours de calcul `a l’aide des coefficients connus◦.

Calcul d’un coefficient deL.

Calcul d’un coefficient deU.

En r´esum´e, pour une matriceA donn´ee, les coefficients des matrices L etU sont calcul´es (`a une permutation de lignes et de colonnes pr`es) par les formules

Exercice 3.10.1 Les formules pr´ec´edentes calculent les coefficients de la matrice L colonne par colonne, et ceux de la matrice U ligne par ligne. Montrer que l’algorithme suivant d´efinit les

mˆemes matrices, bien que les coefficients de la matrice L0 soient calcul´es ligne par ligne et ceux de la matrice U0 colonne par colonne.

On ´etudie pour finir le coˆut calculassoci´e `a la r´esolution d’un syst`eme lin´eaire, `a l’aide de la m´ethode de Gauss.

Proposition 3.10.1 Soit A ∈Rn×n une matrice inversible, et b ∈Rn un vecteur. Le nombre d’op´erations ´el´ementaires (+,−,∗, /) n´ecessaires au calcul de la solution du syst`eme lin´eaire Ax=b par la m´ethode de Gauss est de l’ordre de 2n3/3.

Preuve : Traitons d’abord le coˆut de la factorisation de Gauss par les formules pr´ec´edentes.

On peut choisir de calculer les n colonnes de L, d’apr`es l’algorithme pr´ec´edent. Soit donc k variant de 1 `a n. Pour d´eterminer la colonne k de L, il faut calculer un coefficient diagonal et n−k coefficients non-diagonaux. Or, Lk,k = 1, et chaque coefficient (Li,k)i>k requiert 2k−1 op´erations ´el´ementaires (+,−,∗, /). Le nombre total d’op´erations est donc ´egal `a

k=n soit un nombre total d’op´erations d’environ n3/3 pour d´eterminer L. Bien sˆur, une ´etude de l’algorithme de calcul des lignes de U fournit un nombre total d’op´erations lui aussi ´egal `a

1

3n3+O(n2).

Maintenant que les matrices L et U sont calcul´ees, la r´esolution du syst´eme lin´eaire peut s’ef-fectuer par une descente-remont´ee, dont le coˆut est ´egal `a 2n2 op´erations.

Le coˆut total de la r´esolution du syst`eme lin´eaire Ax = b est donc de l’ordre de 2n3/3 op´erations ´el´ementaires (+,−,∗, /).

Pour n= 20, on doit donc effectuer environ 5.400 op´erations.

A noter que la partie la plus coˆuteuse de l’algorithme est la factorisation A = LU. En cons´equence lorsque l’on a plusieurs (par exemple 10) syst`emes lin´eaires `a r´esoudre avec la mˆeme matrice A, on ne calcule les matrices L et U qu’une seule fois (voir par exemple le paragraphe 5.3) et le coˆut total de la r´esolution de ces 10 syst`emes lin´eaires reste de l’ordre de 2n3/3 op´erations.