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

Méthodes de Doolittle et Crout

  • Upload
    vodieu

  • View
    240

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Méthodes de Doolittle et Crout

Calcul formel et numérique INFO-F-205

G. Bontempi

Département d'Informatique Boulevard du Triomphe - CP212

http://www.ulb.ac.be/di

Page 2: Méthodes de Doolittle et Crout

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( ===

Page 3: Méthodes de Doolittle et Crout

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.

Page 4: Méthodes de Doolittle et Crout

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

Page 5: Méthodes de Doolittle et 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 −=

Page 6: Méthodes de Doolittle et Crout

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.

Page 7: Méthodes de Doolittle et Crout

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

Page 8: Méthodes de Doolittle et Crout

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

−=→=+

−=→=+

=→

=→=

=→=

Page 9: Méthodes de Doolittle et Crout

9

Formules de Choleski

endend

:1for

:1for

1

1

1

1

2

ii

i

kkikjijij

i

kkiiiii

hhhah

nij

hah

ni

−=

+=

−=

=

=

=

=

=⇔=⇔=

yHxbyH

bHxHbAxT

T

Page 10: Méthodes de Doolittle et Crout

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

Page 11: Méthodes de Doolittle et Crout

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.

Page 12: Méthodes de Doolittle et Crout

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.

Page 13: Méthodes de Doolittle et Crout

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