ASI 3 Méthodes numériques pour l’ingénieur Résolution de systèmes linéaires par des méthodes directes : Gauss, LU,
Ax=b : un cas simple A est une matrice diagonale problème solution Algorithme Fonction x = diago(A,b)
A est de forme triangulaire Fonction x = triang(A,b)
Commentaires sur le programme « diago » Complexité ? Déterminant : que se passe t’il si A est triangulaire supérieure ? Exercice : A =[ 3 0 0 0 1 -2 0 0 -3 -3 1 0 3 -1 -1 3] » A*x' b = 27 3 -9 Quels sont les âges d’Alice, de Louis, Sacha et Gaspar ? Sachant que trois fois la somme des âges des garçons est égale à la somme des âges des filles, que l’âge d’Alice moins trois fois la somme des âges de Louis et de Sacha est égal à moins neuf, que trois fois l’âge de Louis est égal à vingt sept, et que l’âge de Louis moins deux fois l’âge de Sacha est égal à 3.
Pivot de Gauss 4 principes fondamentaux On ne change pas la solution lorsque l’on : 1. permute 2 lignes 2. permute 2 colonnes 3. divise par un même terme non nul les éléments d’une ligne 4. ajoute ou retranche à une ligne un certain nombre de fois une autre ligne Stratégie : Transformer le système linéaire en un système équivalent … facile à résoudre Triangulaire !
Pivot de Gauss : un exemple
Pivot de Gauss : un exemple (2) = (2)-a21/pivot (1)
Pivot de Gauss : un exemple (2) = (2)-a21/pivot (1)
Pivot de Gauss : un exemple (3) = (3)-a31/pivot (1) Le première variable à été éliminée de toutes les équations sauf une
L’algorithme du pivot de Gauss 1. Triangularisation 2. Résolution du système triangulaire Fonction A,b = descent(A,b) A x = b
Gauss : résolution d’un système triangulaire Fonction x = triang(A,b)
Gauss Fonction x = Gauss(A,b) U,c = descent(A,b) x = triang(U,c)
Remarques Choix du pivot : minimiser les erreurs d’arrondis si un pivot est nul, on permute deux lignes si tous les pivots restant sont nuls la matrice est singulière (i.e. le système d’équations n’admet pas de solution unique) pour minimiser les erreurs d’arrondis : on choisi le plus grand pivot possible (en valeur absolue) et donc on permute les lignes (voir les colonnes associées) c’est la stratégie du pivot maximal (partiel (lignes) ou total) Comment inverser une matrice ? Avec l’algorithme de gauss on peu résoudre directement déterminant d’une matrice = produit des pivots
Exemple Que se passe t’il si on prend le système à l’envers... Trouver x en ne gardant que 4 chiffres significatifs après la virgule Que se passe t’il si on prend le système à l’envers...
Exemple Que se passe t’il si on prend le système à l’envers... Trouver x en ne gardant que 4 chiffres significatifs après la virgule Que se passe t’il si on prend le système à l’envers...
Représentation matricielle de l’élimination de Gauss A chaque étape de l’algorithme...
Les cas du second membre b M (k) ?
Les cas du second membre b
Factorisation
LU : motivation On connaît la matrice A on ne connaît pas encore b comment « préparer A » ?
LU : principe Il est si facile le résoudre un système « triangulaire » ! U Comment construire Let U ? idée : reprendre l’étape de triangularisation de la méthode de Gauss L A
De Gauss à LU Représentons une étape de la triangularisation par la multiplication de A par une matrice M(k) gauss
LU : la décomposition Les matrices élémentaires M(k) sont inversibles et leurs inverses sont les matrices L(k) triangulaires inférieures telles que : C’est la matrice lik
L’algorithme de décomposition Fonction L,U = décompose(A)
Exemple Montrez que : L=[1 0 0;2 1 0; 1 .5 1] L*U A = [1 2 1;2 2 1;1 1 1] [l u]=lu(A) l = 0.5000 1.0000 0 1.0000 0 0 0.5000 0 1.0000 u = 2.0000 2.0000 1.0000 0 1.0000 0.5000 0 0 0.5000
LU : l’algorithme Fonction x = LU(A,b) L,U = decompose(A) y = triang(L,b) x = triang(U,y)
A=LU Théorème : Si au cours de l’élimination de Gauss sur la matrice A, les pivots sont non nuls, alors il existe une matrice triangulaire inférieure L et une matrice triangulaire supérieure U, telle que : A = LU si de plus on impose à L d’avoir les éléments diagonaux égaux à un alors la factorisation est unique Démonstration : (éléments) unicité : par l’absurde Remarque : (déterminent)
A=LU Réorganisation du système linéaire : Théorème : Si au cours de l’élimination de Gauss sur la matrice A, les pivots sont non nuls, alors il existe une matrice triangulaire inférieure L et une matrice triangulaire supérieure U, telle que : A = LU si de plus on impose à L d’avoir les éléments diagonaux égaux à un alors la factorisation est unique Contre exemple trivial : Réorganisation du système linéaire : permutation des lignes et des colonnes RECHERCHE DU MEILLEUR PIVOT
La factorisation PA=LU Définition : Si la matrice A, est non singulière alors il existe une matrice de permutation P telle que les pivots de PA sont non nuls. (TL chapitre 4) Si est égal à zéro, on échange (permute) deux lignes Fonction x = LU(A,b) Exercice : quelle est la forme de P des un sur la diagonale, des zero ailleurs, sauf sur les lignes et collone des termes à échanger L,U,P = decompose(A) y = triang(L,P*b) x = triang(U,y) Matlab !
PA=LU : étape k Théorème : Si la matrice P (k), est la matrice de permutation des colonnes p et q alors Theodore et Lascaux Tome 1 pp 183 4.3.1 lemme 2 p q
PA=LU A expliquer !
Choix du pivot Si on a pas besoin de permutation : sinon on peut faire plus « efficace » sinon pivot partiel : permutation de colonnes pivot total : permutation de ligne et de colonnes (plus cher) préconditionnement ou Equilibrage d’un système linéaire Modifier le système d’équations pour diminuer les risques d’erreurs Amélioration itérative