Calcul formel et numérique INFO-F-205
G. Bontempi
Département d'Informatique Boulevard du Triomphe - CP212
http://www.ulb.ac.be/di
2
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
• 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.
nuuUULA …1)det()det()det()det( ===
3
Factorisation et Matlab • L’opérateur Matlab \ (backslash ou left division)
calcule la solution x, en utilisant la factorisation LU si la matrice A est une matrice générique carrée et non triangulaire.
» x=A\b
• L’opérateur Matlab » d=det(A)
utilise aussi la factorisation LU.
4
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
rrjirij ula
1
• Il est nécessaire de fixer n valeurs arbitraires – termes diagonaux de L → Doolittle – termes diagonaux de U → Crout
5
1
l21
...
...
1
ln1
l32
...
ln2
...
0
0
0
0
...
...
ln n-1
...
...
1
...
...
...
0 0 u11
0
...
...
u22
0
0
...
0
...
...
u1n-1
u2n-1
..
un-1, n-1
...
0
...
...
unn
...
...
...
u12 u1n a11
a21
...
...
a22
an1
...
...
an2
...
...
a1,n-1
a2,n-1
..
an-1, n-1
...
an,n-1
...
...
ann
...
...
...
a12 a1n
=
1111 ua =
1212 ua =
nn ua 11
...=
11
2121112121 u
alula =→=
11
111111
...
...
ualula n
nnn =→=
…
13212323
12212222
ulauulau
−
−=
=
( )
…
…
12313222
321 ulaul −=
6
Méthode de Doolittle
endend
1
:)1(forend
,
:for:1for
1
1
1
1
−=
+=
−=
=
=
∑
∑
−
=
−
=
k
rrkirik
kkik
k
rrjkrkjkj
ulau
l
nki
ulau
nkjnk
Si au lieu des termes diagonaux de L, les termes diagonaux de U sont choisis égaux à 1, la méthode est dite de Crout.
D’abord la k-ième ligne de U, puis la k-ième colonne de L.
7
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
8
h11
h12
h13
...
h22
h1n
h23
...
...
...
0
0
0
0
...
...
...
...
...
hnn
h33
...
...
0 0 h11
0
...
...
h22
0
0
...
0
h13
h23
...
...
..
...
...
0
...
...
hnn
h33
...
...
h12 h1n a11
a12
...
...
a22
a1n
...
...
a2n
...
...
a1,n-1
a2,n-1
..
an-1, n-1
...
an,n-1
...
...
ann
...
...
...
a12 a1n
=
22121322232322231213
212222222
222
212
11
11
11
1212121112
111111211
)(
....
....
hhhahahhhhhahahh
hah
hahahh
ahah
nn
−=→=+
−=→=+
=→
=→=
=→=
9
Formules de Choleski
endend
:1for
:1for
1
1
1
1
2
ii
i
kkikjijij
i
kkiiiii
hhhah
nij
hah
ni
−=
+=
−=
=
∑
∑
−
=
−
=
=
=⇔=⇔=
yHxbyH
bHxHbAxT
T
10
Exemple
HHA T=
=
=
100120112
111021002
332352224
TP
» chol([ 4 2 2; 2 5 3 ; 2 3 3])
ans =
2 1 1
0 2 1
0 0 1
11
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.
12
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.
13
Algorithme Complexité (flops)
Diagonale n
Substitution (triangulaire) n2
Méthode de Gauss 2/3 n3
Méthode de Gauss (avec pivoting partiel)
2/3 n3+ n2 comparaisons
Méthode de Gauss (avec pivoting total)
2/3 n3+ n3 comparaisons
Factorisation LU (avec pivoting partiel)
2/3 n3+ n2 comparaisons
Choleski (si matrice définie positive)
1/3 n3
Top Related