Vous êtes sur la page 1sur 13

Calcul formel et numérique

INFO-F-205
G. Bontempi
Département d'Informatique
Boulevard du Triomphe - CP212
http://www.ulb.ac.be/di
Factorisation et déterminant
•  Etant donnée la factorisation A(n×n)=LU, où L est triangulaire
inférieure avec lii=1, et U est triangulaire supérieure

det(A)=det(L)det(U)=det(U)=u1…un
•  Notons aussi que
–  la factorisation A=LU peut être écrite de la manière
A=LDU1

où D contient les éléments diagonaux de U et U1 n a que des 1


sur la diagonale.
–  si A est symétrique alors L=U1T
–  si A est symétrique définie positive les éléments de D sont tous
positifs.
2
Factorisation et Matlab
•  L’opérateur Matlab \ (backslash ou left division)

» x=A\b

calcule la solution x, en utilisant la factorisation LU


si la matrice A est une matrice générique carrée et
non triangulaire.
•  L’opérateur Matlab
» d=det(A)

utilise aussi la factorisation LU.


3
Méthodes directes pour la factorisation
•  Ils sont avantageux pour la résolution de plusieurs
systèmes avec la même matrice A.
•  Ils nécessitent moins de résultats intermédiaires que la
méthode de Gauss.
•  Factorisation est formellement équivalent à résoudre le
produit matriciel A=LU, c.a.d. le système linéaire de n2
équations et 2(n2+n)/2 =n2+n inconnues
n
aij =∑lirurj
r =1

•  Il est nécessaire de fixer n valeurs arbitraires


–  termes diagonaux de L → Doolittle
–  termes diagonaux de U → Crout 4
1 0 ... 0 0 u11 u12 ... u1n-1 u1n a11 a12 ... a1,n-1 a1n

l21 1 0 0 ... 0 u22 ... u2n-1 ... a21 a22 ... a2,n-1 ...

... l32 ... 0 ... ... 0 ... .. ... = ... ... ... .. ...

... ... ... ... ... ... ... ... un-1, ... ... ... ... an-1, ...
n-1 n-1

ln1 ln2 ... ln n-1 1 0 0 ... 0 unn an1 an2 ... an,n-1 ann

a21 u =a −l u 1 (a −l u )
a11 = u11 a21 = l21u11 → l21 = 22 22 21 12 l32 =
u11 u22
32 31 12

u23=a23−l21u13
a12 = u12 …
... …

...
...
a n1
a1n = u1n an1 = ln1u11 → ln1 =
u11 5
Méthode de Doolittle
for k =1 : n
for j = k : n
k −1
u kj = a kj − ∑ l kr u rj ,
r =1
D’abord la k-ième ligne de U, puis
end la k-ième colonne de L.
for i = (k + 1) : n
k −1
1  
l ik =  aik − ∑ l ir u rk 
u kk  r =1 
end
end
Si au lieu des termes diagonaux de L, les termes diagonaux
de U sont choisis égaux à 1, la méthode est dite de Crout.
6
Factorisation de Choleski
La nécessité de résoudre d un système linéaire où A
est une matrice symétrique définie positive est
souvent rencontrée dans la statistique et la simulation
–  Résolution moindres carrés
–  Décomposition matrice covariance
Théorème. Soit A(n×n) une matrice symétrique définie
positive. Alors il existe une unique matrice
triangulaire supérieure H dont les termes diagonaux
sont >0 telle que
A=HTH
7
h11 0 ... 0 0 h11 h12 h13 ... h1n a11 a12 ... a1,n-1 a1n

h12 h22 0 0 ... 0 h22 h23 ... ... a12 a22 ... a2,n-1 ...

h13 h23 h33 0 ... ... 0 h33 .. ... = ... ... ... .. ...

... ... ... ... ... ... ... ... ... ... ... ... ... an-1, ...
n-1

h1n ... ... ... hnn 0 0 ... 0 hnn a1n a2n ... an,n-1 ann

h112 = a11 → h11 = a11


a12
h12 h11 = a12 → h12 =
h11
....
a1n
.... → h1n =
h11
h122 + h22
2
= a 22 → h22 = a 22 − h122
8
h13 h12 + h23 h22 = a 23 → h23 = (a 22 − h13 h12 ) h22
Formules de Choleski
for i=1: n
i −1
 2
hii =  aii −∑hki 
 k =1 
for j=i+1:n
i −1
hij = aij −∑hkj hki  hii
 k =1 
end
end
T
T H y=b
Ax=b ⇔ H Hx=b ⇔ 
 Hx= y
9
TP
Exemple

4 2 2 2 0 02 1 1
    
A=2 5 3=1 2 00 2 1=H H  T

2 3 3 1 1 10 0 1

» chol([ 4 2 2; 2 5 3 ; 2 3 3])
ans =
2 1 1
0 2 1
0 0 1
10
Propriétés Choleski
•  Etant la matrice définie positive, les termes sous la racine sont
toujours positifs.
•  Coût algorithmique : O(n3/6) multiplications, O(n3/6) additions,
O(n2/ 2) divisions et n racines carrées. Au total, n3/3 par rapport au
2n3/3 de la méthode de Gauss.
•  Algorithme stable.
•  Stockage de H: n(n+1)/2 cases mémoire au lieu de n2 (L et U).
•  A et H dans la même location mémoire de A. H dans la partie
triangulaire inférieure et A (symétrique) dans la partie triangulaire
supérieure.

11
Calculer l'inverse
•  En notant X l'inverse d'une matrice carrée non singulière A
de taille n , les vecteurs colonnes x[i] de X sont les
solutions de n systèmes linéaires
Ax[i] = e[i] , i=1,...,n

où e[i]= [0,0,...,0,1,0,....0]T

i-ème position

•  Coût en utilisant la factorisation: O(n3)+nO(n2)


•  Invertir une matrice est une opération coûteuse et peu
stable. 12
Algorithme Complexité (flops)
Diagonale n
Substitution (triangulaire) n2
Méthode de Gauss 2/3 n3
Méthode de Gauss (avec 2/3 n3+ n2 comparaisons
pivoting partiel)
Méthode de Gauss (avec 2/3 n3+ n3 comparaisons
pivoting total)
Factorisation LU (avec 2/3 n3+ n2 comparaisons
pivoting partiel)
Choleski (si matrice définie 1/3 n3
13
positive)