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 ReportTranscript 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)