ASI 3 Méthodes numériques pour l’ingénieur Résolution de systèmes linéaires par des méthodes directes : LDL’ et Choleski.
Download
Report
Transcript ASI 3 Méthodes numériques pour l’ingénieur Résolution de systèmes linéaires par des méthodes directes : LDL’ et Choleski.
ASI 3
Méthodes numériques
pour l’ingénieur
Résolution de systèmes linéaires
par des méthodes directes :
LDL’ et Choleski
Résoudre un système linéaire
2 x1 4 x2
x 3x
1
2
Ax b
3 x1 x2
x2
Fonction x = Gauss(A,b)
2 x3
x4
6
0
x3
2 x4
8
2 x3
x4
6
Fonction x = LU(A,b)
L,U = decompose(A)
U,c = descent(A,b)
y = triang(L,b)
x = triang(U,c)
x = triang(U,y)
Cas particulier : A est symétrique définie positive
Matrice à diagonale dominante
Définition :
une matrice carrée A est dite à diagonale dominante ssi :
n
i 1, n, aii aij
j 1, j i
4 3
7 2 0
6
3 5 1 , 4 2 0
0 5 6
3 0
1
Théorème : Si A est a diagonale strictement dominante,
Alors est elle alors non singulière,
De plus Gauss est stable
et peut fonctionner sans changement de colonne
Éléments de démonstration : Ax=0, par l’absurde x 0, A singulière
Matrice symétrique définie positive
Symétrique : A’=A
Définie positive : x, Ax, x 0
( 0 : strictement d.f.)
Exemple :
2
2
min y avec y Bx min Bx min Bx,Bx
x
x
x
min x' ( B' B) x
x
min x' Ax
avec A B' B
x, Ax , x Bx 0
2
Ax 0
éléments de démonstrat ion :
2
n m
nm
m
bij x j bij x j bij x j
i 1 j 1
i 1 j 1
j 1
m n m
bik bkj x j xi
i 1 j 1k 1
x
Rappelez vous
des moindres carrés
Exemple
2 -1 0
la matrice - 1 2 - 1 est elle définie positive ?
0 - 1 2
2 - 1 0 x1
x' Ax x1 x2 x3 - 1 2 - 1 x2
0 - 1 2 x3
x1
x2
2 x1 - x2
x3 - x1 2 x2
- x2
- x3
2 x3
2 x12 2 x1 x2 2 x22 2 x2 x3 2 x32
x12 x1 x2 2 x2 x3 2 x32 0
Exemple
2 -1 0
la matrice - 1 2 - 1 est elle définie positive ?
0 - 1 2
2 - 1 0 x1
x' Ax x1 x2 x3 - 1 2 - 1 x2
0 - 1 2 x3
x1
x2
2 x1 - x2
x3 - x1 2 x2
- x2
- x3
2 x3
2 x12 2 x1 x2 2 x22 2 x2 x3 2 x32
x12 x1 x2 2 x2 x3 2 x32 0
Propriétés des matrices définies positives
Théorème :
Si
A est une matrice n x n strictement définie positive
Alors :
– A est non singulière
– aii > 0 pour i=1,n
aij 2 aii a jj
i j
max a jk max aii
k, j
i
A singulière ker( A) 0
x 0 ker( A)
or x ker( A) Ax 0 et donc x' Ax 0
ce qui est contradict oire avec l' hypothèse
Propriétés des matrices définies positives
Théorème :
Si
A est une matrice n x n strictement définie positive
Alors :
– A est non singulière
– aii > 0 pour i=1,n
aij 2 aii a jj
i j
max a jk max aii
k, j
i
(i )
x, x' Ax 0, en particulier pour x
or x (i ) Ax (i ) aii 0 par hypothèse
0
1 i ème position
0
Propriétés des matrices définies positives
Théorème :
Si
A est une matrice n x n symétrique strictement définie positive
Alors :
max a max a
jk
k, j
i
ii
0 si i j et i j
( jk )
x, x' Ax 0, en particulier pour x
1 si i j
- 1 si i k
( jk ) ( jk )
or x Ax
a jj akk a jk akj 0
(1) A symétrique 2a jk a jj akk
( jk ) ( jk )
et x
Ax
aii akk a jk akj 0
(2) A symétrique 2a jk a jj akk
(1)et (2) a jk
a jj akk
2
max aii
i
et donc : max a jk max aii
j ,k
i
Propriétés des matrices définies positives
Théorème :
Si
A est une matrice n x n symétrique strictement définie positive
Alors :
a 2 a a
i j
ij
ii
jj
0 si i j et i j
x, x' Ax 0, en particulier pour x ( jk ) 1 si i j
si i k
( jk ) ( jk )
or x Ax
a jj 2 akk 2a jk 0
l' équation quadratiqu e n' adettant pas de racine réelle,
sont déterminan t est négatif
4a 2jk 4a jj akk 0 a 2jk a jj akk
Autres propriétés
Définition : une sous matrice principale d’une matrice A
est une matrice carrée de la forme A(1:i,1:i) quelque soit i
Théorème : Une matrice symétrique est définie positive
ssi chacune de ses sous matrice principales à un déterminant positif
2 -1 0
A - 1 2 - 1
0 - 1 2
det A1 2 0;
2 1
det A2 det
4 1 3 0
1 2
det A2 det A 2 det A2 1 det .... 4
Autres propriétés
Définition : une sous matrice principale d’une matrice A
est une matrice carrée de la forme A(1:i,1:i) quelque soit i
Théorème : Une matrice symétrique est définie positive
ssi chacune de ses sous matrice principales à un déterminant positif
2 -1 0
A - 1 2 - 1
0 - 1 2
det A1 2 0;
2 1
det A2 det
4 1 3 0
1 2
det A2 det A 2 det A2 1 det .... 4
Autres propriétés
Théorème :
Une matrice est symétrique définie positive si la méthode de Gauss
être appliquée sans permutations n’admet que des pivots positifs
De plus, le résultat est stable par rapport aux erreurs d’arrondi
Corollaire
si A est une matrice symétrique non singulière,
Alors il existe une matrice diagonale D
et une matrice triangulaire avec des 1 sur la diagonale L
telles que :
A = LDL’
éléments de démonstration : A non singulière => A=LU =LDV
et A’=V’DL’ que l’on identifie car A est symétrique
Factorisation LDL’
V=DL’
0
0
i
A
vj=S lijdj
aii=di+S lijvj
aij=dilij+S likvk
L
Exemple :
1
1 1
0
0 4 0 0 1 0.25 0.25
4
0 0 4 0 0
1
0.75
1 4,25 2,75 0.25 1
1 2,75 3,5 0.25 0.75 1 0 0 1 0
0
1
La factorisation LDL’
Fonction L,D = décomposeLDL(A)
pour i 1 jusqu' à n
somme 0
pour j 1 jusqu' à i 1
v j ij d j
somme somme ij v j
fait
d i aii somme
pour j i 1 jusqu' à n
somme 0
pour k 1 jusqu' à i 1
somme somme jk vk
fait
a ji somme
l ji
di
fait
fait
Choleski : LL’
A LDL'
et
~~
A LL'
~
LL D
D doit être positif !
Théorème :
toute matrice A symétrique définie positive
admet une décomposition unique sous la forme
A=LL’
ou L est une matrice triangulaire inférieure dont tous les éléments
diagonaux sont positifs
Choleski :
l’algorithme
Fonction L = Choleski(A)
11 a11
pour j 2 jusqu' à n
a j1
j1
l11
fait
pour i 2 jusqu' à n 1
somme 0
pour k 1 jusqu' à i 1
somme somme ik 2
fait
ii aii somme
pour j i 1 jusqu' à n
somme 0
pour k 1 jusqu' à i 1
somme somme jk ik
fait a somme
ji
ji
lii
fait
nn ann somme
Comparaison : temps de calcul
Gauss
Choleski
Additions
(n3-n)/3 n3/6
Multiplications
(n3-n)/3 n3/6
division
n(n-1)/2 n /2
32
n
racines
Total
2n3/3
n3/3
Plus stable !
Logiciels
– Cas général : PA=LU
– Matrice symétrique définie positive : A=LL’ (Choleski)
– Matrice symétrique : A=LDL’
– Matrice tridiagonale (heisenberg) : LU par bande (cf TD)
– Matrice triangulaire : « remontée en n2 »
Matlab : x =A\b ;
si A triangulaire : x=trisup(A,b)
sinon si A symétrique définie positive ; L=chol(A)
sinon : (* cas général*)
[L,U,P]=lu(A); z=L\(P*b); x=U\z;
LAPACK = BLAS (basic linear algebra subprograms)
- blaise, octave, matlab (interprétés calcul)
- scilab, maple (interprétés formels)
- IMSL, NAG (bibliothèques)