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
6
2
8 2
3
0
3
6 2
4 2
4 3
2
4 3
2 1
4 2
1
3 2
1
x x
x
x x
x x
x x
x
x x
x b
Ax
U,c = descent(A,b) x = triang(U,c) Fonction x = Gauss(A,b)
L,U = decompose(A) y = triang(L,b) x = triang(U,y) Fonction x = LU(A,b)
Cas particulier : A est symétrique définie positive
Matrice à diagonale dominante
Définition :
une matrice carrée A est dite à diagonale dominante ssi :
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
1 0
3
0 2
4
3 4
6 , 6
5 0
1 5
3
0 2
7
, , 1
, 1
n
i j
j ij
ii a
a n
i
x 0, Asingulière
m
i i
n
j kj j
m
k ik
n i
m
j ij j
m
j ij j
n i
m
j ij j
x x x x
x
x x
b b
x b x
b x
b
Bx Ax x
Ax x
B B A
Ax x
x B B x
Bx,Bx Bx
Bx y
y
1 1 1
1 1 1
2
1 1
2
2 2
: ion démonstrat
de éléments
0
, , 0
'
avec
' min
) ' ( ' min
min
min
avec
min
Matrice symétrique définie positive
Symétrique : A’=A
Définie positive : x,
Ax, x
0 ( 0 :strictement d.f.)Exemple :
Rappelez vous
des moindres carrés
Exemple
0
2 2
2 2
2
2 -
- 2
-
- 2
2 1 - 0
1 - 2 1 -
0 1 - 2 '
? positive définie
elle est 2 1 - 0
1 - 2 1 -
0 1 - 2 matrice la
32 2
3 2
2 2 2 1
1
32 3
2 2 2 2
2 1 1
3 2
3 2
1
2 1
3 2
1
3 2 1 3
2 1
x x
x x
x x
x x
x x
x x x
x x
x x
x
x x
x x
x
x x x x
x x
Ax x
Exemple
0
2 2
2 2
2
2 -
- 2
-
- 2
2 1 - 0
1 - 2 1 -
0 1 - 2 '
? positive définie
elle est 2 1 - 0
1 - 2 1 -
0 1 - 2 matrice la
32 2
3 2
2 2 2 1
1
32 3
2 2 2 2
2 1 1
3 2
3 2
1
2 1
3 2
1
3 2 1 3
2 1
x x
x x
x x
x x
x x
x x x
x x
x x
x
x x
x x
x
x x x x
x x
Ax x
Propriétés des matrices définies positives
Théorème :
i ii j jk
k
jj ii ij
a a
j i
a a a
max max
, 2
hypothèse l'
avec oire
contradict est
qui
ce ker( ) 0 et donc ' 0
or
) ker(
0
singulière ker( ) 0
Ax x
Ax A
x
A x A
A Si
A est une matrice n x n strictement définie positive Alors :
– A est non singulière – aii > 0 pour i=1,n
Propriétés des matrices définies positives
Théorème :
i ii j jk
k
jj ii ij
a a
j i
a a a
max max
, 2
hypothèse par
0 or
position
0 1 0
pour r
particulie en
, 0 '
,
) ( )
(
) (
i ii i
ème i
a x
A x
i x
Ax x
x
Si
A est une matrice n x n strictement définie positive Alors :
– A est non singulière – aii > 0 pour i=1,n
Propriétés des matrices définies positives
Théorème :
i ii j jk
k a maxa
max
,
i ii k jk
ii j i
kk jj
jk
kk jj
jk
kj jk
kk jk ii
jk
kk jj
jk
kj jk
kk jk jj
jk
jk
a a
a a a a
et
a a
a A
a a
a a
x A x
a a
a A
a a
a a
x A
x i k
j i
j i
j i
x Ax
x x
max max
: donc et
2 max
) 2 ( ) 1 (
2 symétrique
) 2 (
0 et
2 symétrique
) 1 (
0
or -1si
si 1
et si
0 pour
r particulie en
, 0 '
,
, )
( )
(
) ( )
(
) (
Si
A est une matrice n x n symétrique strictement définie positive Alors :
Propriétés des matrices définies positives
aij aiiajj i j 2
kk jj jk
kk jj jk
jk kk
jk jj jk
jk
a a a
a a a
a a
a x
A
x i k
j i
j i
j i
x Ax
x x
2 2
2 )
( )
(
) (
0 4
4
négatif est
t déterminan
sont l'équation quadratique n'adettant pas de racine réelle, 0
2
or si
si 1
et si
0 pour
r particulie en
, 0 '
,
Théorème :
Si
A est une matrice n x n symétrique strictement définie positive Alors :
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
4 ....
det 1 det
2 det
det
0 3 1 2 4
1
1 det 2
det
; 0 2 det
2
1 - 0
1 - 2 1 -
0 1 - 2 A
2 2
2 1
A A
A A A
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
4 ....
det 1 det
2 det
det
0 3 1 2 4
1
1 det 2
det
; 0 2 det
2
1 - 0
1 - 2 1 -
0 1 - 2 A
2 2
2 1
A A
A A A
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’
L
V=DL’
0 A
0
1 0
0
75 . 0 1
0
25 . 0 25 . 0 1
1 0
0
0 4
0
0 0
4
1 75
. 0 25
. 0
0 1
25 . 0
0 0
1
5 , 3 75
, 2 1
75 , 2 25
, 4 1
1 1
4
Exemple :
i
vj=lijdj
aii=di+lijvj aij=dilij+likvk
La factorisation LDL’
fait fait
fait
pour 1 jusqu'à 1 0
pour 1 jusqu'à
fait
pour 1 jusqu'à 1
0
1 jusqu'à pour
i ji
ji
k jk ii
i
j ij j
ij j
d
somme l a
v somme
sommek i sommeja i somme n d
v somme
somme d
v j i
somme n
i
Fonction L,D = décomposeLDL(A)
Choleski : LL’
D L
L
L L A
LDL A
~
~' et ~
'
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
D doit être positif !
Choleski : l’algorithme
Fonction L = Choleski(A)
somme a
l
somme a
somme sommek i sommej ai somme n
somme somme
i sommek n
i
l
a n
j a
nn nn
ii ji
ji
ik jk ii
ii
ik j
j
fait
fait
pour 1 jusqu'à 1 0
pour 1 jusqu'à
fait
1 à
jusqu' 1
pour
0
2 jusqu'à 1 pour
fait
à jusqu' 2
pour
2 11
1 1
11 11
Comparaison : temps de calcul
Gauss Choleski
Additions (n
3-n)/3 n
3/6
Multiplications (n
3-n)/3 n
3/6
division n(n-1)/2 n
3/2
racines
n
Total 2n
3/3 n
3/3
Plus stable !
2
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 »
LAPACK = BLAS (basic linear algebra subprograms) - blaise, octave, matlab (interprétés calcul)
- scilab, maple (interprétés formels) - IMSL, NAG (bibliothèques)
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;