methodes directes de resolution des systemes

21
MTH1504 METHODES DIRECTES DE RESOLUTION DES SYSTEMES LINEAIRES Table des mati` eres 1 ´ Elimination de Gauss sans pivotage 2 1.1 Coˆ ut de la m´ ethode d’´ elimination de Gauss...................... 5 1.2 Utilisations de la factorisation LU .......................... 6 1.3 Algorithme ....................................... 7 1.4 Condition n´ ecessaire et suffisante d’existence d’une factorisation LU, unicit´ e... 7 1.5 Cas de matrices bandes ................................ 8 2 ethode de Cholesky 8 2.1 Existence de la factorisation de Cholesky ...................... 9 2.2 Algorithme ....................................... 9 2.3 Complexit´ e de la factorisation de Cholesky ..................... 10 3 Programmes Scilab pour les factorisation LU et de Cholesky 10 3.1 Factorisation LU .................................... 10 3.2 Factorisation de Cholesky ............................... 11 4 ethode de Gauss avec pivot partiel 13 5 Factorisations QR 16 5.1 Les r´ eflexions de Householder ............................. 16 5.2 Factorisations QR ` a l’aide des r´ eflexions de Householder .............. 16 5.3 Algorithme de factorisation QR avec des sym´ etries de Householder ........ 19 6 Probl` emes aux moindres carr´ es 20 1

Upload: vantuong

Post on 05-Jan-2017

229 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

MTH1504

METHODES DIRECTES DE RESOLUTION DES SYSTEMES LINEAIRES

Table des matieres

1 Elimination de Gauss sans pivotage 21.1 Cout de la methode d’elimination de Gauss. . . . . . . . . . . . . . . . . . . . . . 51.2 Utilisations de la factorisation LU . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4 Condition necessaire et suffisante d’existence d’une factorisation LU, unicite . . . 71.5 Cas de matrices bandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Methode de Cholesky 82.1 Existence de la factorisation de Cholesky . . . . . . . . . . . . . . . . . . . . . . 92.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 Complexite de la factorisation de Cholesky . . . . . . . . . . . . . . . . . . . . . 10

3 Programmes Scilab pour les factorisation LU et de Cholesky 103.1 Factorisation LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2 Factorisation de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 Methode de Gauss avec pivot partiel 13

5 Factorisations QR 165.1 Les reflexions de Householder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.2 Factorisations QR a l’aide des reflexions de Householder . . . . . . . . . . . . . . 165.3 Algorithme de factorisation QR avec des symetries de Householder . . . . . . . . 19

6 Problemes aux moindres carres 20

1

Page 2: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

Le but est de resoudre le systeme lineaire dans Cn : trouver x ∈ Cn tel que

Ax = b, A ∈Mn(C),

ou b ∈ Cn. On suppose que A ∈Mn(C) est inversible.

1 Algorithme d’elimination de Gauss sans recherche de pivot,et interpretation matricielle

Le but est de se ramener a un systeme triangulaire

Premiere etape : elimination de l’inconnue x1 des lignes 2 a n. On va chercher unsysteme equivalent (ayant la meme solution x), ou x1 n’apparaıt que dans la ligne 1.Premiere Hypothese :

a11 6= 0→ on appelle premier pivot π(1) = a11.

On peut alors former une combinaison lineaire de la ligne i > 1 avec la ligne 1 pour eliminerl’inconnue x1 dans la ligne i : la ligne i devient

0x1 + (ai2 −ai1

π(1)a12)x2 + · · ·+ (ain −

ai1

π(1)a1n)xn = bi −

ai1

π(1)b1,

ce qu’on peut reecrire

a(2)i2 x2 + · · ·+ a

(2)in xn = b

(2)i , ∀i > 1

en posant

a(2)i2 = ai2 − ai1

π(1)a12,...

a(2)in = ain − ai1

π(1)a1n,

b(2)i = bi − ai1

π(1) b1.

Si on pose aussi, pour 1 ≤ j ≤ n,

a(2)1j = a1j ∀1 ≤ j ≤ n et b

(2)1 = b1,

on a obtenu le nouveau systeme equivalent

A(2)x = b(2),

avec

A(2) =

a(2)11 a

(2)12 . . . a

(2)1n

0 a(2)22 . . . a

(2)2n

......

...

0 a(2)n2 . . . a

(2)nn

On voit que

A(2) = M (1)A et b(2) = M (1)b, ou M (1) =

1 0 . . . . . . 0

−a21a11

1. . .

...... 0

. . .. . .

......

.... . .

. . . 0−an1a11

0 . . . 0 1

2

Page 3: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

kieme etape : elimination de l’inconnue xk des lignes k+ 1 a n On suppose qu’on a puiterer le procede ci-dessus k − 1 fois, c’est a dire que les pivots apparus jusqu’a l’etape k sontnon nuls :

π(i) = a(i)ii 6= 0, pour 1 ≤ i ≤ k − 1.

On obtient alors le systeme equivalent

A(k)x = b(k)

ou A(k) est de la forme

A(k) =

a(k)11 a

(k)12 . . . . . . . . . . . . a

(k)1n

0 a(k)22

. . ....

.... . . a

(k)33

. . ....

.... . .

. . .. . .

...

0 . . . . . . 0 a(k)k−1k−1 . . . . . . a

(k)k−1n

...... 0

......

... A(k)

0 . . . . . . 0 0

et A(k) est une matrice carree d’ordre n− k + 1 :

A(k) =

a(k)kk . . . a

(k)kn

......

a(k)nk . . . a

(k)nn

.

On aA(k) = M (k−1) · · ·M (1)A et b(k) = M (k−1) · · ·M (1)b

On va chercher un systeme equivalent (ayant la meme solution x), ou xk n’apparaıt pas dansles lignes k + 1 a n.k-ieme Hypothese :

a(k)kk 6= 0→ on appelle kieme pivot π(k) = a

(k)kk .

On introduit

M (k) =

1 0 . . . . . . . . . . . . . . . 0

0 1. . .

......

. . .. . .

. . ....

... 0 1. . .

......

... −a(k)k+1 k

π(k)

. . .. . .

......

...... 0

. . .. . .

......

......

.... . .

. . . 0

0 . . . 0 − a(k)nk

π(k) 0 . . . 0 1

3

Page 4: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

Remarquons que l’inverse de M (k) est L(k) :

L(k) =

1 0 . . . . . . . . . . . . . . . 0

0 1. . .

......

. . .. . .

. . ....

... 0 1. . .

......

...a(k)k+1 k

π(k)

. . .. . .

......

...... 0

. . .. . .

......

......

.... . .

. . . 0

0 . . . 0a(k)nk

π(k) 0 . . . 0 1

Soit

A(k+1) = M (k)A(k) et b(k+1) = M (k)b(k),

alorsA(k+1)x = b(k+1),

et

A(k+1) =

a(k+1)11 a

(k+1)12 . . . . . . . . . . . . a

(k+1)1n

0 a(k+1)22

. . ....

.... . . a

(k+1)33

. . ....

.... . .

. . .. . .

...

0 . . . . . . 0 a(k+1)kk . . . . . . a

(k+1)kn

...... 0

......

... A(k+1)

0 . . . . . . 0 0

,

ou A(k+1) est une matrice carree d’ordre n− k :

A(k+1) =

a(k+1)k+1k+1 . . . a

(k+1)k+1n

......

a(k+1)nk+1 . . . a

(k+1)nn

.

On aA(k+1) = M (k) · · ·M (1)A et b(k+1) = M (k) · · ·M (1)b

Apres n− 1 etapes Si on itere n− 1 fois, et si les pivots apparus sont tous non nuls :Hypotheses des n− 1 etapes :

π(i) = a(i)ii 6= 0, pour 1 ≤ i ≤ n− 1.

on arrive au systeme triangulaire equivalent

A(n)x = b(n),

4

Page 5: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

avec

A(n) =

π(1) ∗ . . . ∗0 π(2) ∗ . . . ∗

0 0. . .

0 . . . 0. . . ∗

0 . . . 0 π(n)

qui est inversible si de plusHypothese :

π(n) 6= 0.

Notons U la matrice triangulaire superieure

U = A(n) = M (n−1) · · ·M (1)A,

et L la matrice triangulaire inferieure avec des 1 sur la diagonale

L = L(1) . . . L(n−1)

Alors on aA = LU.

On dit qu’on a effectue une factorisation de Gauss ou factorisation LU de A.

Remarque 1.1 Il est aussi possible avec le meme algorithme d’obtenir la factorisation LU d’unematrice de Mm(C), avec m ≥ n, si les pivots qui apparaissent sont non nuls.

1.1 Cout de la methode d’elimination de Gauss.

On estime le cout de l’elimination de xk. Rappelons qu’a l’etape k− 1, on obtient la matriceA(k)

A(k) =

a(k)11 a

(k)12 . . . . . . . . . . . . a

(k)1n

0 a(k)22

. . ....

.... . . a

(k)33

. . ....

.... . .

. . .. . .

...

0 . . . . . . 0 a(k)k−1k−1 . . . . . . a

(k)k−1n

...... 0

......

... A(k)

0 . . . . . . 0 0

C’est sur le bloc A(k) de A(k) qu’il faut travailler.Construction de M (k) : n− k divisions par le pivot.

5

Page 6: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

M (k) =

1 0 . . . . . . . . . . . . . . . 0

0 1. . .

......

. . .. . .

. . ....

... 0 1. . .

......

... −a(k)k+1 k

π(k)

. . .. . .

......

...... 0

. . .. . .

......

......

.... . .

. . . 0

0 . . . 0 − a(k)nk

π(k) 0 . . . 0 1

Multiplication de A(k) par M (k) : (n− k)2 adds+mults.Total

n∑k=1

(n− k)2 =1

3n(n− 1)(n− 1

2) ∼ n3

3additions+multiplications.

n∑k=1

(n− k) =1

2n(n− 1) divisions.

1.2 Utilisations de la factorisation LU

Calcul de determinant Une utilisation de la factorisation LU est le calcul du determinantde A : en effet, si A admet une factorisation LU , on a

det(A) = det(U) = produit des pivots

car det(L) = 1. La factorisation LU permet donc de calculer le determinant de A avec une

complexite de l’ordre de n3

3 adds + mults, plutot que n! avec la formule du determinant !

Remarque 1.2 Calculer le determinant d’une matrice d’ordre 100 avec la formule du determinantprendrait un temps superieur a l’age de l’univers sur le calculateur le plus puissant disponibleaujourd’hui.

Resolution de systemes lineaires Si on a plusieurs systemes (par exemple p) a resoudre avecla meme matrice A, il est interessant de calculer une fois pour toutes et stocker la factorisationLU de A = LU , puis de resoudre les systemes par descentes-remontees plutot que d’utiliserl’algorithme d’elimination pour chaque systeme. On resout le systeme Ax = b en resolvantd’abord

Ly = b,

soit une descente, puisUx = y,

soit une remontee. Si on a p systemes a resoudre, la complexite est de l’ordre de n3

3 + pn2

adds+mults plutot que pn3

3 .

Remarque 1.3 Comme a la remarque precedente, calculer la solution du systeme lineaire enappliquant les formules de Cramer necessiterait un temps inimaginable des que n vaut quelquesdizaines.

6

Page 7: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

1.3 Algorithme

Voici un algorithme realisant la factorisation LU d’une matrice A et stockant cette facto-risation dans la place memoire occupee par A : (la matrice A est perdue, on dit qu’on ecraseA).

for j=1:n-1

for i=j+1:n

A(i,j)=A(i,j)/A(j,j); //construction de la j eme colonne de L

for i=j+1:n

for k=j+1:n

A(i,k)=A(i,k)-A(i,j)*A(j,k);

//actualisation des n-j-1 derni{\‘e}res lignes de A

Remarque 1.4 La diagonale de L (qui ne contient que des 1) n’est pas stockee.

Le programme pour la descente-remontee pour calculer la solution de Ax = b est alors, enecrasant b :

for i=1:n //descente pour calculer y tq Ly=b

sum=0;

for k=1:i-1

sum= A(i,k)*b(k);

b(i) = b(i) - sum ;

for i=n:-1:1 //remontee pour calculer x tq Ux=y

sum=0;

for k=i+1:n

sum= A(i,k)*b(k);

b(i) = (b(i)-sum)/A(i,i) ;

1.4 Condition necessaire et suffisante d’existence d’une factorisation LU, uni-cite

Theoreme 1.1 Soit A une matrice de Mn(C). Pour 1 ≤ p ≤ n, on note Ap le bloc

Ap =

a1 1 . . . . . . a1 pa2 1 . . . . . . a2 p...

...ap 1 . . . . . . ap p

La matrice A admet une factorisation

A = LU

ou L est triangulaire inferieure avec des 1 sur la diagonale et U est triangulaire superieureet inversible si et seulement si tous les blocs Ap, 1 ≤ p ≤ n, sont inversibles. De plus, cettefactorisation est unique. De plus si A est reelle, alors L et U le sont aussi.

Demonstration. Si A admet une factorisation LU avec L et U inversibles, alors les blocs Apsont bien inversibles.La demonstration de la reciproque se fait par recurrence.

7

Page 8: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

Nous nous contentons ici de demontrer l’unicite : soient deux factorisations LU de A :A = LU = L′U ′ ou L sont triangulaires inferieures avec des 1 sur la diagonale, et U sonttriangulaires superieures et inversibles. On a donc l’identite

L−1L′ = U ′U−1

Mais L−1L′ est triangulaire inferieure avec des 1 sur la diagonale et U ′U−1 est triangulairesuperieure. On a donc

L−1L′ = U ′U−1 = Id⇒∣∣∣∣ L = L′

U = U ′

1.5 Cas de matrices bandes

Definition 1.1 Soit A une matrice de Cn×n. On appelle largeur de bande de A le plus petitentier nb ≤ n tel que pour tout i, 1 ≤ i ≤ n

ai,j = 0 si n ≥ j > i+ nb,aj,i = 0 si 0 < j < i− nb,

Les coefficients non nuls de la matrice A sont contenus dans une bande de largeur 2nb + 1,centree sur la diagonale.

Dans le cas ou la largeur de bande nb de A est tres inferieure a n, on parle de matrice bande. SiA est une matrice bande, sa factorisation LU demande moins d’operations et de place memoire :

Proposition 1.1 Si A, (de largeur de bande nb) admet une factorisation LU, alors les largeursde bandes de L et de U sont inferieures a nb et la complexite necessaire a effectuer la factorisationLU est inferieure a

n∑k=1

(nb)2 = n(nb)

2 additions+multiplications.

n∑k=1

nb = nnb divisions.

Exercice. Ecrire l’algorithme de factorisation LU pour une matrice bande de largeur debande nb.

2 Methode de Cholesky

Dans le cas ou A est hermitienne et definie positive, on peut toujours effectuer la factorisationdecrite ci-dessus. De plus, on peut trouver une factorisation du type A = LL∗ moins gourmandeen place memoire.

8

Page 9: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

2.1 Existence de la factorisation de Cholesky

Theoreme 2.1 Si A est hermitienne et definie positive, alors il existe une unique matrice Ltriangulaire inferieure et inversible, avec des coefficients reels positifs sur la diagonale, telle que

A = LL∗

Cette factorisation porte le nom de factorisation de Cholesky. Si A est reelle symetrique definiepositive, L est reelle.

Demonstration.On part de la factorisation LU de A. Il existe une unique factorisation A = L′U ′ ou la

matrice L′ est triangulaire inferieure avec des 1 sur la diagonale et U ′ est triangulaire superieureinversible. Appelons D la diagonale de U ′. Comme pour tout p, 1 ≤ p ≤ n, det(Dp) = det(Ap) >

0, tous les coefficients de D sont strictement positifs. Notons U = D−12U ′ et L = L′D

12 . On a

A = LU . Montrons que U = L∗. Comme A est hermitienne, U∗L∗ = A∗ = A = LU . On a doncL−1U∗ = U(L∗)−1. Mais L−1U∗ est triangulaire inferieure, avec des 1 sur la diagonale tandis queU(L∗)−1 est triangulaire superieure, avec des 1 sur la diagonale. Donc U = L∗, et on a A = LL∗.Pour l’unicite, on procede comme dans la demonstation de l’unicite pour la factorisation LU.

Remarque 2.1 Il est important de comprendre que les matrices L dans les factorisation LU etde Cholesky sont differentes.

2.2 Algorithme

Considerons la k ieme etape de la methode de Cholesky : A ce point, on suppose que l’on adeja construit la matrice L(k−1) et A(k) telles que

L(k−1) =

√π1 0 . . . 0∗ √

π2 0 . . . 0. . .

∗ . . . ∗ √πk−1 0 . . . 0

∗ . . . ∗ ∗ 1 . . . 0

∗ . . . ∗... 0

. . . 0∗ . . . ∗ ∗ 0 . . . 1

et

A(k) =

∗ ∗ . . . ∗0 ∗ . . . ∗0 0 ∗ . . . ∗

. . .

0 0 . . . 0 a(k)kk . . . a

(k)kn

.... . .

0 0 . . . 0 a(k)nk . . . a

(k)nn

et πk = a

(k)k,k.

Remarque 2.2 Le bloc carre k → n de A(k) est hermitien et defini positif.

9

Page 10: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

Pour effectuer la kieme etape, on construit d’abord L(k) en remplacant la kieme colonne de

L(k−1) par le vecteur lk = (0, . . . , 0,√πk,

a(k)k+1 k√πk

, . . .a(k)nk√πk

)T .

Observation 2.1 D’apres la Remarque 2.2, (0, . . . , 0, a(k)kk , . . . , a

(k)kn ) =

√πkl∗k.

On construit maintenant A(k+1) en effectuant les eliminations de Gauss et d’apres l’Observation2.1, on a

A(k+1) = A(k) − lkl∗k. (1)

On voit en fait que l’on peut ne construire que la partie triangulaire inferieure de la matriceA(k+1), ce qui economise la moitie des operations. On aboutit a l’algorithme suivant dans le casd’une matrice reelle symetrique definie positive :

for k = 1:n

A(k,k)=sqrt(A(k,k));

for i = k+1:n

A(i,k)= A(i,k) / A(k,k);

for i = k + 1:n

for j = k+1:i

A(i,j)=A(i,j) - A(i,k)*A(j,k);

2.3 Complexite de la factorisation de Cholesky

∼ n3

6additions+multiplications.

1

2n(n− 1) divisions.

n evaluations de racines carrees.

Exercice Montrer l’evaluation precedente.

Remarque 2.3 L’interet de la factorisation de Cholesky est qu’elle demande une place memoiredeux fois inferieure a celles de la factorisation LU ci-dessus, car on ne doit stocker que L et quesa complexite arithmetique est deux fois moindre.

3 Programmes Scilab pour les factorisation LU et de Cholesky

3.1 Factorisation LU

Construction de la factorisation LU

//LU factorization

function [A]= LUfact(A)

[m,n]=size(A);

for i=1:n,

if (A(i,i)==0) then

print(%io(2)," zero pivot")

else

A(i+1:m,i)=A(i+1:m,i)/A(i,i);

for j=i+1:n,

A(i+1:m,j)=A(i+1:m,j)-A(i+1:m,i)*A(i,j);

10

Page 11: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

end ;

end ;

end;

Descente-Remontee pour la factorisation LU

// upward sweep : solves an upper triangular system

function [y]=up_sweep_LU(A,x)

[m,n]=size(A);

if (m~=n) then

print(%io(2), "error, not a square matrix");

else

y=x;

y(n)=y(n)/A(n,n);

for i=n-1:-1:1,

y(i)=(y(i)-A(i,i+1:n)*y(i+1:n))/A(i,i);

end;

end;

// downward sweep : solves a lower triangular system with ones on the diagonal

function [y]=down_sweep_LU(A,x)

[m,n]=size(A);

if (m~=n) then

print(%io(2), "error, not a square matrix");

else

y=x;

for i=2:n

y(i)=y(i)-A(i,1:i-1)*y(1:i-1);

end;

end;

//assumes A contains the LU-factorization

function [y]=SolveLU(A,x)

[m,n]=size(A);

if (m~=n) then

print(%io(2), "error, not a square matrix");

else

y=down_sweep_LU(A,x);

y=up_sweep_LU(A,y);

end;

3.2 Factorisation de Cholesky

Construction de la factorisation de Cholesky

//Cholesky factorization

//the matrix is stored in the lower part

function [A]= Cholesky_fact(A)

[m,n]=size(A);

11

Page 12: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

for i=1:n,

if (A(i,i)<=0) then

print(%io(2)," non positive pivot")

else

A(i,i)=sqrt(A(i,i));

A(i+1:m,i)=A(i+1:m,i)/A(i,i);

for j=i+1:n,

A(j:m,j)=A(j:m,j)-A(j:m,i)*A(j,i);

end ;

end ;

end ;

Descente-Remontee pour une factorisation de Cholesky

// up sweep : solves the upper triangular system

function [y]=up_sweep_Cholesky(A,x)

[m,n]=size(A);

if (m~=n) then

print(%io(2), "error, not a square matrix");

else

y=x;

y(n)=y(n)/A(n,n);

for i=n-1:-1:1,

y(i)=(y(i)-(A(i+1:n,i))’*y(i+1:n))/A(i,i);

end;

end;

// down sweep : solves the lower triangular system

function [y]=down_sweep_Cholesky(A,x)

[m,n]=size(A);

if (m~=n) then

print(%io(2), "error, not a square matrix");

else

y=x;

y(1)=y(1)/A(1,1);

for i=2:n

y(i)=y(i)-A(i,1:i-1)*y(1:i-1);

y(i)=y(i)/A(i,i)

end;

end;

function [y]=SolveCholesky(A,x)

[m,n]=size(A);

if (m~=n) then

print(%io(2), "error, not a square matrix");

else

y=down_sweep_Cholesky(A,x);

y=up_sweep_Cholesky(A,y);

end;

12

Page 13: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

4 Methode de Gauss avec pivot partiel

La methode de Gauss sans pivotage peut etre bloquee si on tombe sur un pivot nul. Pourpallier cet inconvenient, on introduit une methode qui permet d’eviter ce blocage en echangeantles lignes du systeme considere. On obtient alors une methode qui fonctionne pour toute matriceinversible : la methode de Gauss avec pivot partiel.

Theoreme 4.1 Soit A ∈Mn(C), inversible. Alors il existe– une matrice de permutation P ,– une matrice triangulaire inferieure L, avec des 1 sur la diagonale,– une matrice triangulaire superieure U , et inversible,

telles quePA = LU

Demonstration. Par recurrence sur les eliminations de Gauss : a la kieme etape, supposonsque l’on ait prouve l’egalite :

Q(k−1)A = L(1) . . . L(k−1)A(k),

ou Q(k−1) est une matrice de permutation et ∀i < k,

L(i) =

1 . . . i n︷ ︸︸ ︷

1 0 . . . . . . . . . . . . . . . 0

0. . .

. . ....

.... . .

. . .. . .

...... 0 1

. . ....

...... ∗ . . .

. . ....

......

... 0. . .

. . ....

......

......

. . .. . . 0

0 . . . 0 ∗ 0 . . . 0 1

et

A(k) =

a(k)11 . . . . . . . . . . . . a

(k)1n

0. . .

......

. . .. . .

......

. . .. . .

...... 0 a

(k)kk . . . a

(k)kn

......

......

0 . . . . . . 0 a(k)nk . . . a

(k)nn

On effectue la kieme elimination de Gauss avec pivotage partiel : avant d’eliminer l’inconnue xk,on echange les lignes k et rk > k. On peut choisir rk ≥ k tel que

|a(k)rk k| = maxk≤j≤n

|a(k)j k |.

13

Page 14: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

L’inversibilite de A assure que a(k)rk k6= 0. On peut donc s’en servir de pivot pour la prochaine

elimination de Gauss.Le pivotage puis l’elimination de Gauss s’ecrivent matriciellement

P (krk)A(k) = L(k)A(k+1),

avec P (krk) matrice de permutation elementaire entre les lignes k et r, L(k) triangulaire inferieureL, avec des 1 sur la diagonale, et

A(k+1) =

a(k+1)11 . . . . . . . . . . . . a

(k+1)1n

0. . .

......

. . .. . .

......

. . .. . .

...... 0 a

(k+1)k+1k+1 . . . a

(k+1)k+1n

......

......

0 . . . . . . 0 a(k+1)nk+1 . . . a

(k+1)nn

.

Comme(P (krk))−1 = P (krk),

A(k) = P (krk)L(k)A(k+1),

ce qui impliqueQ(k−1)A = L(1) . . . L(k−1)P (krk)L(k)A(k+1).

A ce point, on utilise le lemme :

Lemme 4.1 Soit P (krk) la matrice de permutation elementaire entre les lignes k et rk > k,alors ∀i < k, si L(i) s’ecrit

L(i) =

1 0 . . . . . . . . . . . . . . . 0

0. . .

. . ....

.... . .

. . .. . .

...... 0 1

. . ....

......

. . .. . .

......

... Ci 0. . .

. . ....

......

.... . .

. . . 00 . . . 0 0 . . . 0 1

et Ci =

...α...β...

alorsL(i)P (krk) = P (krk)L′

(i),

14

Page 15: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

ou

L′(i)

=

1 0 . . . . . . . . . . . . . . . 0

0. . .

. . ....

.... . .

. . .. . .

...... 0 1

. . ....

......

. . .. . .

......

... C ′i 0. . .

. . ....

......

.... . .

. . . 00 . . . 0 0 . . . 0 1

et C ′i =

...β...α...

.

Donc,

Q(k−1)A = L(1) . . . L(k−2)P (krk)L′(k−1)L(k)A(k+1)

= P (krk)L′(1) . . . L′(k−1)L(k)A(k+1).

Par suite,

P (krk)Q(k−1)A = L′(1). . . L′

(k−1)L(k)A(k+1),

ou– Q(k) = P (krk)Q(k−1) est une matrice de permutation,– L′(1) . . . L′(k−1)L(k) est triangulaire inferieure avec des 1 sur la diagonale.

On a montre que la propriete est vraie pour k + 1.

Remarque 4.1 Dans la methode de Gauss avec pivotage partiel, on ne doit pas stocker lamatrice P mais seulement les rk. Le cout memoire et la complexite sont du meme ordre que ceuxde la factorisation LU . La resolution du systeme lineaire Ax = b connaissant P L et U se faitde la maniere suivante :

y = PbLz = yUx = z

Remarque 4.2 La methode de Gauss avec pivotage partiel ne conserve pas l’aspect bande : siA est une matrice bande dont la largeur de bande est nb, les matrices L et U n’ont pas en generalcete propriete. La complexite et le cout memoire de la methode de Gauss avec pivotage partieldeviennent alors largement superieurs a ceux de la factorisation LU .

Remarque 4.3 La methode du pivot total consiste a echanger non seulement les lignes maisaussi les colonnes de maniere a choisir comme pivot le plus grand coefficient en module du bloccarre restant a factoriser. Cette methode conduit a l’existence de deux matrices de permutationsP et Q telles que PAQ = LU .

Influence du pivotage sur la precision Le pivotage partiel ne sert pas seulement a garantirl’obtention d’une factorisation, il garantit aussi une bien meilleure stabilite que la factorisationLU, pour des matrices A mal conditionnees : prenons le systeme Ax = b ou

A =

(10−9 1

1 1

)et b =

(12

)

15

Page 16: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

dont la solution est x = ( 11−10−9 ,

1−2 10−9

1−10−9 )T ∼ (1, 1)T . Supposons que la machine utilisee pourresoudre ce systeme ne garde que 8 chiffres significatifs : la factorisation LU calculee par lamachine est

U =

(10−9 1

0 −109

)et L =

(1 0

109 1

)En utilisant cette factorisation, la machine retourne x = (0, 1)T !Si on utilise le pivotage partiel, on obtient :

U =

(1 10 1

)et L =

(1 0

10−9 1

)La machine retourne x = (1, 1)T .

5 Factorisations QR

5.1 Les reflexions de Householder

Definition 5.1 Soit v un vecteur non nul de Cn. On appelle reflexion de Householder ou matricede Householder relative au vecteur v la matrice

Hv = I − 2vv∗

v∗v. (2)

Les reflexions de Householder ont les proprietes suivantes :

1. Hv est une matrice hermitienne.

2. Hv est une matrice unitaire.

3. Hv − I est une matrice de rang un.

4. Hλv = Hv, pour tout λ 6= 0.

Proposition 5.1 Soit e un vecteur unitaire de Cn et x un vecteur non nul de Cn. Il existe unvecteur non nul v ∈ Cn tel que Hvx soit colineaire a e.

Demonstration. On cherche v sous la forme v = x+ λe. Dans le cas reel, (x ∈ Rn et e ∈ Rn),les vecteurs v = x± ‖x‖2e ( au moins l’un des deux est non nul) sont les seuls vecteurs de cetteforme ayant la propriete demandee et on a Hvx = ∓‖x‖2e. Dans le cas general, on trouve aussideux vecteurs v sous cette forme, et au moins l’un d’entre eux est non nul.

Remarque 5.1 Si x est presque colineaire a e, on a interet en pratique a choisir le vecteur vpour que v∗v, qui est au denominateur de (2), ne soit pas petit. En effet, en precision finie, ilfaut eviter les divisions par des nombres petits. En particulier si v ∈ Rn, on preferera le vecteurv+ = x+ signe(x∗e)‖x‖2e au vecteur v− = x− signe(x∗e)‖x‖2e, car ‖v−‖2 est petit.

5.2 Factorisations QR a l’aide des reflexions de Householder

Theoreme 5.1 Soit A une matrice de Mm,n(C) avec m ≥ n. Il existe une matrice unitaireQ ∈Mm,m(C)et une matrice triangulaire superieure R ∈Mm,n(C), telles que

A = QR.

16

Page 17: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

Demonstration. On demontre ce resultat par recurrence : supposons qu’a l’aide de deuxreflexions de Householder H1 et H2, on ait obtenu

H2H1A =

∗ ∗ ∗ . . . ∗0 ∗ ∗ . . . ∗0 0 ∗ . . . ∗...

... ∗ . . . ∗0 0 ∗ . . . ∗

On appelle x le vecteur de Cm−2 obtenu en prenant les m−2 derniers coefficients de la troisiemecolonne de H2H1A. Si x est non nul, on sait trouver v3 ∈ Cm−2, tel que

Hv3 x soit colineaire a

10...0

On prend alors H3

H3 =

(I2 00 Hv3

).

Si x = 0 on prend H3 = I. Dans les deux cas H3 est hermitienne et unitaire. On a

H3H2H1A =

∗ ∗ ∗ . . . ∗0 ∗ ∗ . . . ∗0 0 ∗ . . . ∗0 0 0 ∗ . . . ∗...

...... ∗ . . . ∗

0 0 0 ∗ . . . ∗

Comme m ≥ n, on peut iterer ce procede et construire n matrices Hi hermitiennes et unitaires,telles que Hn . . . H1A soit une matrice triangulaire superieure R. On note Q la matrice unitaire(mais pas forcement hermitienne) Q = H1 . . . Hn, on a

A = QR.

Les elements fondamentaux de l’algorithme de la factorisation QR a l’aide de reflexions deHouseholder sont

1. Le choix des vecteurs vi, de maniere a ce que ‖vi‖ ne soit pas petit, cf. Remarque 5.1.

2. Le produit a gauche d’une matrice M par la matrice Hm : HmM , doit etre programmeintelligemment : on ne doit surtout pas stocker la matriceHm. Il suffit de garder en memoirele vecteur vm, et d’operer les reflexions de Householder a chaque colonne de M .

3. On ne calcule donc pas Q en general, mais on garde en memoire les vecteurs v1, . . . , vn.

4. On peut ecraser la matrice A que l’on factorise en stockant les vecteurs vi dans la partietriangulaire inferieure stricte, et la matrice R dans la partie triangulaire superieure acondition de normaliser les vecteurs vi de maniere a ce que leur premier coefficient soit 1 :ainsi on n’a pas besoin de stocker le premier coefficient des vecteurs vi.

17

Page 18: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

5. Si la matrice A est reelle, alors la matrice Q l’est aussi.

La factorisation QR a de nombreuses proprietes interessantes :

1. Resoudre le systeme Qy = b est facile car

Q−1 = Q∗ = Hn . . . H1.

La complexite de la resolution du systeme Qy = b est donc 3∑n

i (m − i) adds+mults. Sim = n, la complexite est de l’ordre de 3

2n2. Si la matrice A est carree d’ordre n inversible,

pour resoudre Ax = b, on resout d’abord Qy = b comme ci-dessus, puis Rx = y par uneremontee. La complexite totale est de l’ordre de 2n2.

2. Si A ∈Mn(C) est inversible, alors

cond2(A) = cond2(R),

car Q est unitaire.

3. la methode de Householder permet de calculer |det(A)|. En effet,

| det(R)| = |produit des coefficients diagonaux de R| = | det(A)|.

4. Si A ∈Mm,n(C), m ≥ n, est factorisee sous la forme A = QR, alors resoudre une systemede la forme A∗Ax = b est facile si rang(A)= n, car A∗A = R∗R et rang(R) = n, et onpeut resoudre A∗Ax = b par une descente(de R∗)-remontee (de R). La factorisation QRd’une matrice se prete donc bien aux problemes de moindres carres (voir §6).

Theoreme 5.2 Soit A ∈ Mm(C). On peut trouver une factorisation QR telle que tous lescoefficients diagonaux de R sont reels positifs. Si A est inversible, cette factorisation est unique.

Demonstration. On part de la factorisation QR de A obtenue par la methode de Householderci dessus : A = Q′R′ ou la matrice Q′ est unitaire et R′ est triangulaire superieure. Appelons Dla matrice diagonale D = diag(d1, . . . dm) ou

di =

{ri i|ri i| si ri i 6= 0,

1 si ri i = 0,

La matrice D est clairement unitaire. Posons Q = Q′D−1 et R = DR′. Ces matrices ont lesproprietes desirees.Supposons que A soit inversible et soient deux factorisation QR de A,

A = Q1R1 = Q2R2

telles que tous les coefficients diagonaux de R1 et R2 sont reels positifs. Ils sont strictement po-sitifs car A est inversible. On a alors Q∗2Q1 = R2R

−11 . Mais Q∗2Q1 est unitaire tandis que R2R

−11

est triangulaire superieure avec des coefficients diagonaux reels positifs strictement. On peutverifier que l’Identite est la seule matrice unitaire et triangulaire superieure avec des coefficientsdiagonaux reels positifs. Donc Q2 = Q1 et R2 = R1.

18

Page 19: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

5.3 Algorithme de factorisation QR avec des symetries de Householder

Recherche du Vecteur pour la Reflexion de Householder

// householder reflexion : find Householder vector

//normalized so that v(1)=1

function [v]= householder_vector(x)

delta=1;

if (x(1)<0) then

delta=-1;

end;

v=x;

beta=v(1)+delta* sqrt(x’*x);

v=v/beta;

v(1)=1;

Reflexion de Householder

// performs Householder reflexion of vector v on a vector x

function [y]= householder_reflexion(v,x)

beta=2*(v’*x)/(v’*v);

y=x-beta*v;

Factorisation QR

//performs QR factorisation of a matrix

//the R part is stored in the upper part of A

//the Q part (normalized so that the upper line is one)

//is stored in the strict lower part of A

function[A]=QRfactorization(A)

[m,n]=size(A);

for i=1:n,

v=householder_vector(A(i:m,i))

delta=2/(v’*v);

A(i,i)=A(i,i)-delta* (v’* A(i:m,i));

for j=i+1:n,

c=v’*A(i:m,j);

A(i:m,j)=A(i:m,j)-c*delta*v;

end ;

if (i<m) then

A(i+1:m,i)=v(2:m-i+1);

end ;

end;

Resolution du systeme

function [y]=up_sweep(A,x) //solves Ry=x

[m,n]=size(A);

if (m~=n) then

print(%io(2), "error, not a square matrix");

19

Page 20: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

else

y=x;

y(n)=y(n)/A(n,n);

for i=n-1:-1:1,

y(i)=(y(i)-A(i,i+1:n)*y(i+1:n))/A(i,i);

end;

end;

//assumes A contains a QR-factorization of A

function [y]=SolveQR(A,x)

[m,n]=size(A);

if (m~=n) then

print(%io(2), "error, not a square matrix");

else

y=x;

for i=1:n-1,

y(i:n)= householder_reflexion( [1;A(i+1:n,i)] , y(i:n));

end ;

y(n)=-y(n);

y=up_sweep(A,y);

// print(%io(2), y);

end;

6 Problemes aux moindres carres

On va travailler avec des systemes reels mais toute la suite serait valable avec des systemesdans Cn, a condition de changer AT en A∗.On considere le probleme de trouver x ∈ Rn tel que Ax = b ou A ∈ Mm,n(R) et ou b ∈ Rm,avec m ≥ n. Il y a plus d’equations que d’inconnues, on dit que le systeme est sur-determine.Un systeme sur-determine n’a generalement pas de solution, sauf si b ∈ Im(A).L’idee est alors de chercher a minimiser ‖Ax− b‖ plutot que de chercher a resoudre exactementle systeme. La solution du probleme si elle existe depend de la norme choisie. La methode desmoindres carres consiste a minimiser ‖Ax − b‖2 ou ‖f‖22 =

∑mi=1 f

2i . On choisit cette norme

car la fonction J(x) = ‖Ax − b‖22 est convexe et differentiable dans Rn, et son gradient estgradJ(x) = 2(ATAx − AT b). On verra que minimiser J revient a resoudre le systeme lineaireATAx = AT b, qui a toujours une solution, et dont la solution est unique si rang(A) = n.

Lemme 6.1 Soit A ∈ Mm,n(R) avec m ≥ n : le probleme de trouver x ∈ Rn minimisant lafonction J : Rn → R, J(y) = ‖Ay − b‖22 a au moins une solution. Le probleme de trouverx ∈ Rn minimisant J est equivalent a trouver x tel que

ATAx−AT b = 0. (3)

L’equation (3) est appelee equation normale.

Demonstration. Le probleme de minimiser J revient a trouver z ∈ Im(A) minimisant ladistance ‖z − b‖2. On sait que Im(A)⊥ = ker(AT ), et donc que Im(A)⊕ ker(AT ) = Rn. Prendrepour z la projection de b sur Im(A) parallelement a ker(AT ) repond donc a la question, et apreson prend x tel que Ax = z (qui existe car z ∈ Im(A) mais qui n’est pas unique si ker(A) 6= {0}).

20

Page 21: METHODES DIRECTES DE RESOLUTION DES SYSTEMES

On a donc trouve x solution du probleme au sens des moindres carres.La fonction J est differentiable sur Rn et son gradient vaut

grad(J)(x) = 2(ATAx−AT b).

En effet, on verifie facilement que

J(x+ y)− J(x) = 2yT (ATAx−AT b) + ‖Ay‖22. (4)

Si x minimise J , on a grad(J)(x) = 0 et x verifie (3). Reciproquement, si x verifie (3), on voitd’apres (4) que J(x+ y)− J(x) = ‖Ay‖22 ≥ 0, ∀y ∈ Rn, ce qui montre qye x minimise J .

Proposition 6.1 Si rang(A) = n, le probleme aux moindres carres a une solution unique x =(ATA)−1AT b. Sinon, les solutions du probleme aux moindres carres forment un espace affineparallele a ker(A).

Demonstration. On a

y ∈ ker(ATA)⇒ ATAy = 0⇒ yTATAy = 0⇔ ‖Ay‖2 = 0⇔ y ∈ ker(A)

et ker(A) ⊂ ker(ATA). Donc ker(A) = ker(ATA).Si rang(A) = n, ker(A) = {0} et l’equation normale (3) a une solution unique x = (ATA)−1AT bet il en va de meme pour le probleme aux moindres carres par le Lemme 6.1. Sinon, les solutionsde (3) forment un espace affine.

On peut trouver une matrice orthogonale Q ∈ Mm(R) et une matrice triangulaire superieureR ∈ Mm,n(R) telles que A = QR. Le systeme ATAx = AT b est equivalent a RTRx = RTQT b,qui est facile a resoudre (une descente et une remontee), si rang(R) = n. De plus cond2(R

TR) =cond2(A

TA).

Remarque 6.1 Il n’est pas recommande d’utiliser une methode des moindres carres pour resoudreun systeme carre car cond2(A

TA) = (cond2(A))2 (exercice, le verifier), et on a vu qu’il fallaiteviter les grands nombres de conditionnement pour des raisons de precision.

Exercice. Trouver la droite du plan la plus proche au sens des moindres carres des points (0, 1)(1, 0) (2, 3).

21