Sie sind auf Seite 1von 28

cole Nationale Suprieure de Techniques Avances

Rsolution
des
systmes linaires

aot 2007

MA261 Introduction au calcul scientifique

@Eric Lunville

Objectifs
Rsoudre des systmes linaires de faon efficace

AX = B

A matrice carree dordre n


B vecteur de dimension n

hyp : A est inversible


si A nest pas carree ou nest pas inversible et si B Im A
il existe un pseudo-inverse (methode des moindres carres)

Mthode de rsolution rapide et prcise ?


grand systme (n de lordre du million pour les pbs de mcanique)
problme de stockage (matrice symtrique, creuse, )
problme de temps calcul (algorithme efficace)
contrle de la qualit de la solution (stabilit et convergence)
1

Stabilit de la rsolution dun systme linaire


Soit A une perturbation de la matrice A , B une perturbation du vecteur B.
 1 
1) si A 1/ A  alors A+A est inversible
2) Soit X la solution de AX = B et Y = X + X la solution de
(A+A) Y = B + B alors
|X|
(A)

|X|
1 (A) A / A

|B| A
+
|B|
A

 1 
avec (A) = A A  conditionnement de A ((A) 1 et (I) =1)
A=

A=

2.23
1.3

2.23
1.3

1.2
0.7

1.2
0.7

B=

|B| = 10

B=

2.06
1.2

2.061
1.201

(A) 10

= X =

= X =

|X|
0.5
|X|

2
2

1.5
1

(50% derreur)
2

Principales mthodes de rsolution


Mthode du dterminant (Cramer)
calcul de linverse dune matrice dordre n :
calcul de n cofacteurs (determinant dordre n)
et du determinant de la matrice
Op(detn ) = nombre doperations pour calculer un determinant dordre n
Op(detn )= nOp(detn1 )=Op(detn )= O(n!)
Op(A1 ) =O(n + 1!)
pour n = 50 on obtient Op(A1 ) 1066 (temps de calcul > lage de lunivers!)

INUTILISABLE !!!
3

Mthodes directes (nb fini doprations)


combinaison linaire des quations du systme permettant de se ramener
un systme triangulaire :

UX = C

u11

avec U =

u12
u22

...
...
..
.

u1n
u2n
..
.
unn

se resout en calculant xn , puis xn1 , ...


Mthode dlimination de Gauss, lie la factorisation LU
Nombre doperations de ces methodes n3

Mthodes itratives (nb infini doprations)


suite de vecteurs (X0 donne) :
Xk+1 = f (Xk ) k 0

avec f (X) = X (X solution de AX = B)

fournit une approximation de la solution test darret |AXk B|


exemple : methode du gradient `
a pas constant (A symetrique)
Xk+1 = Xk (AXk B)
converge si (I A) <1 ((M) = max |i (M)| rayon spectral)
i=1,n

Il faut que le pas ne soit pas trop grand.


Nombreuses autres mthodes : Gauss-Seidel, SSOR, grad. conjugu, GMRES,
convergence pas toujours garantie

prconditionnement possible
peuvent tre trs performantes
5

Structure et stockage des matrices


Tirer partie de la structure creuse (nombreux termes nuls) de la matrice :
gain de place mmoire (stockages adapts)
gain de temps de calcul (algorithmes adapts)
Matrice symtrique ou antisymtrique : stockage de la moiti

Types de stockage
stockage bande
rangement diagonal
a21 a32 a43 ... an,n1 a11 a22 ... ann a12 a23 ... an1,n
rangement ligne
a11 a12 a21 a22 a23 a32 a33 a34 ... an,n1 ann

stockage profil (skyline)


profil superieur :
profil inferieur :

p+
i = max{j/aij
p
i = min{j/aij

= 0}

= 0}

+
aij = 0 si j < p
ou
j
>
p
i
i

p
4

=3

rangement ligne

p+
4

=5

a11 a12 a13 a14 a21 a22 a23 a31 a32 a33 ...

variante ligne/colonne
variante pour matrice non symtrique profil symtrique
existe des algorithmes doptimisation de profil (Cutill-MacKee)
compatible avec tous les algorithmes de rsolution
7

stockage morse
Seuls les termes non nuls sont stocks
pour chaque ligne i on stocke
les coefficients non nuls
les indices des colonnes des coefficients
ligne 1
ligne 2

a11 a12 a14


a21 a23

124
13

x
x

x
x
x
x

x
x

x
x

double la taille du stockage


peut tre moins intressant que le stockage profil
stockage des matrices creuse (sparse) dans MATLAB
nest pas compatible avec les algorithmes de factorisation
trs adapt aux mthodes itratives
8

Mthodes directes
Rsolution des systmes triangulaires
L matrice triangulaire inferieure : Lij = 0 si j > i

U matrice triangulaire superieure : Uij = 0 si j < i

On a det L =


i

Lii

det U =

Uii

et L (resp. U) est inversible ssi Lii = 0 i (resp. Uii = 0 i)

Algorithmes de rsolution
Resolution de LX = B

Resolution de UX = B
pour i = n, 1
Xi = Bi
pour j = i + 1, n

pour i = 1, n
Xi = Bi
pour j = 1, i 1

Xi = Xi Lij Xj

Xi = Xi /Lii

Xi = Xi Uij Xj

Xi = Xi /Uii

Nb operations n2

Resolution de LX = B
variante colonne

X=B
pour j = 1, n
Xj = Xj /Ljj
pour i = j + 1, n
Xi = Xi Lij Xj
10

en stockage profil
Resolution de LX = B

Resolution de UX = B

pour i = 1, n
Xi = Bi
pour j = p
i ,i1

pour i = n, 1
Xi = Bi
pour j = i + 1, p+
i

Xi = Xi Lij Xj

Xi = Xi /Lii

Xi = Xi Uij Xj

Xi = Xi /Uii

11

Elimination de Gauss
Se ramener un systme triangulaire suprieur par combinaison linaire de lignes

B1
A1
A11 A12 A23
B2

A
A2
A
A

21
22
23

A3 A31 A32 A33


B3
..
..
..
..
..
..
.
.
.
.
.
.
itration 1 si A11 = 0
A21
A1
A11
A31
= A3
A1
A11

A12 = A2
A13

A21
B1
A11
A21
B31 = B3
B1
A11
B21 = B2

plus generalement :
A1i = Ai

Ai1
A1
A11

Bi1 = Bi

Ai1
B1
A11

i = 2, n
12

matrice A1 `
a lissue de la premi`ere iterations

A1 =

A11
0
0
0

A12
A122
A132
..
.

A23
A123
A133
..
.

..
.

B1
B21
B31
..
.

premire ligne non modifie

itration 2
On recommence le processus
1
A22 A123
A132 A133

..
..
.
.

sur la sous matrice dordre n 1


1

B2
B31


..
..
.
.

et ainsi de suite on realise n 1 iterations


13

Algorithme dlimination de Gauss

pour k = 1, n 1

algorithme auto-crasant

si |Akk | stop pivot trop petit


pour i = k + 1, n
p = Aik /Akk

pour j = k + 1, n
Aij = Aij p Akj

Aik = 0

Bi = Bi p Bk

Nb operations 23 n3

14

Stratgie de permutation
Pivot trs petit ou nul litration k

A11 A12 A13 A1n


0
A23
0

0
Akk Akn
0

..

..
..
..
.

.
.
.

..
..
Ank Ann
.
.

recherche de i0 > k tel que


|Ai0 k | |Aik | i > k
si |Ai0 k | alors
matrice non inversible

permutation des lignes k et i0

A11
0
0
..
.
..
.
..
.

A12
0
0
..
.
..
.
..
.

A13
A23
Akk
..
.
Ai0 k
..
.

A1n

Akn

Ai0 n

15

Algorithme avec permutation


On ne ralise pas rellement les permutations, on utilise un vecteur q contenant
les indices permuts
pour i = 1, n q(i) = i (initialisation du vecteur de permutation)
pour k = 1, n 1
si |Akk |

trouver i0 > k tel que |Ai0 k | |Aik | i > k


si |Ai0 k | alors matrice non inversible
t = q(k) q(k) = q(i0 ) q(i0 ) = t (permutation des indices)

pour i = k + 1, n
p = Aq(i)k /Aq(k)k
pour j = k + 1, n
Aq(i)j = Aq(i)j p Aq(k)j

Aq(i)k = 0

Bq(i) = Bq(i) p Bq(k)


16

Elimination avec un stockage profil

pour k = 1, n 1

mme algorithme

si |Akk | stop pivot trop petit


pour i = k + 1, n
p = Aik /Akk

+
pour j = max(k + 1, p
),
p
i
i
Aij = Aij p Akj

boucle seulement
sur les coefficients non nuls

Aik = 0

Bi = Bi p Bk

Lalgorithme avec permutation nest pas compatible avec le stockage profil


car le profil se modifie
17

Factorisation LU
Llimination de Gauss est une mthode de factorisation
A = LU

Iteration k
A(k) = L(k) A(k1)

L(k)

U = A(n1) = L(n1) ...L(1) A

L triangulaire inf.
U triangulaire sup.

1
..

.
1
..
.

..

(k1)

Ai,k

(k1)
Ak,k

..

..
.

(k) 1
L
= 2I L(k)
triangulaire inferieure

det L(k) = 1 L(k) inversible


(1) 1 (n1) 1
L= L
... L
triangulaire inferieure
finalement

A = LU avec Lii = 1 i = 1, n
18

Algorithme de factorisation
pour k = 1, n 1
Lkk = Akk

Lkj Ujk

j<k

pour i = k
+ 1, n
Lik =

Aik

Lkk = 1
pour i = k + 1, n

Uki =

Aki

j<k

j<k

Lij Ujk

Lkj Uji

/Ukk

si Ukk = 0

Nb operations
2n3 /3

formules obtenues `
a partir de A = LU Aik =

Lij Ujk

calcul de L colonne par colonne et U ligne par ligne


variante L ligne par ligne et U colonne par colonne (cf poly)
19

Permutation de ligne
si Ukk = 0 (|Ukk | ) echec de lalgorithme strategie de permutation
matrice de permutation

..

Pik ,k =
..

..
.

des lignes ik et k (ik > k) `


a literation k

..
.

1
k

..

ik
0

..
. 1

A(k) = L(k) Pik ,k A(k1)

On montre alors (voir poly p45) que


(n2) L
(1) Pi ,n1 Pi ,1 A
U = L(n1) L
n1
1
(k) = Pin1 ,n1 Pi ,k+1 L(k) Pi ,k+1 Pin1 ,n1 (triang. inf.)
avec L
k+1
k+1
si A est inversible, il existe une matrice de permutation P telle que
PA = LU
L mat. triang. inf.`
a diag. unite, U mat. triang. sup
20

Factorisation LU des matrices creuses


P (resp P + ) le profil inferieur (resp. superieur) de A
Aik = 0 pour k < Pi ou k > Pi+
formules de lelimination de Gauss



Lik = Aik
Lij Ujk /Ukk
Uki =

j<k

Aki

j<k

Lkj Uji

si Lij = 0 j < k et j < Pi alors Lik = 0 pour k < Pi ou k > Pi+


idem pour Uki avec P +
Par recurrence on montre que L a P pour profil inferieur
et U a P + pour profil superieur :
la factorisation LU sans permutation conserve les profils
21

Algorithme de factorisation, stockage profil

pour k = 1, n 1
Lkk = Akk

Lkj Ujk

Pk j<k

pour i = k + 1, n

si k Pi alors

Lik

= Aik

Pk j<k

Lkk = 1

pour i = k + 1, Pk+

Uki

= Aki

Lij Ujk /Ukk

Pk j<k

si Ukk = 0

Lkj Uji
22

Variante Gauss-Jordan
A partir de la factorisation A = LU on obtient facilement la factorisation :

A = LDU

(unique)

a diagonale unite
avec D matrice diagonale Dii = Uii et L et U `

relation simple entre U et U

 ik = Uik /Ukk = Uik /Dkk


U

i = 1, k

23

Cas des matrices symtriques


Si A est une matrice symetrique factorisable LU
alors A admet la factorisation
A = LDLt
avec D matrice diagonale et L matrice triang. inferieure `
a diag. unite
dms

A = At et A = LDU = LDU = Ut DLt


unicite de la factorisation LDU = Ut = L et U = Lt

algorithme
pour k = 1, n
Lkk = 1
Dkk = Akk

j<k

pour i = k+ 1, n
Lik =

Nb operations
n3 /3

L2kj

Aik

j<k

Lij Ljk

/Dkk

si Dkk = 0
24

Cas des matrices symtriques dfinies positives


definie positive :

(AX, X) > 0 X = 0

Si A est une matrice symetrique definie positive et factorisable LU


alors A admet la factorisation
A = LDLt
dms

avec Dii > 0 i = 1, n

0 < (AX, X) = (LDLt X, X) = (DLt X, Lt X)


1

Lt inversible (diag. unite), Y = 0 on prend X = (Lt )

Y = 0

= (DY, Y ) > 0 Y = 0 = Dii > 0 i = 1, n (D matrice diagonale)

On peut introduire D matrice diagonale de coefficient Dii


poser L = L D pour obtenir
la factorisation dite de Choleski

L
t
A =L

25

Algorithme de factorisation de Choleski


pour k = 1,
n
Lkk =

forme colonne

Akk

forme ligne

Aik

pour k = 1, n
pour i = 1,k 1
Lki =

Lkk =

Aki

Akk

L2kj

j<k

pour i = k
+ 1, n
Lik =

Nb operations
n3 /3

 12

Lkj Lij

j<i

j<k

/Lkk

/Lii

Lij Ljk

j<k

L2kj

 12

Sadapte au stockage profil


26

Conclusions
Mthode du dterminant proscrire
Rsolution facile des systmes triangulaires
Mthodes de type factorisation
peuvent tre efficaces (stockage profil)
cas particuliers (symtriques, def pos.)
Mthodes itratives adaptes au stockage morse ( optimal )

27
17

Das könnte Ihnen auch gefallen