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
na i x b
ii
i i , 1,
n i
n i
nn ii
b b b
x x x
a a
a
1 1
11
0
0 0
0 0
0 0
0 0
0 0
0 0
0
fait
à jusqu' 1
pour
ii i i
a x b
n i
Fonction x = diago(A,b) problème
solution
Algorithme
A est de forme triangulaire
1
1 1 1
1 1
i
j ij j i
ii
i b a x
x a
a x b
n i
n i
nn ni
n
ii i
b b b
x x x
a a
a
a a
a
1 1
1 1 11
0
0 0
0
0 0
0
fait omme
fait
omme omme
pour 1 jusqu'à 1
omme
à jusqu' 2
pour
11 1 1
ii i
j ij i
a x s
x a s
sj i
b s
n i
a x b
omme s
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 :
n
i aii
A
1
) det(
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
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
pivot (1)
Pivot de Gauss : un exemple
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
(2) = (2)-a21/pivot (1)
Pivot de Gauss : un exemple
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
6
2
8 2
3
3
0
6 2
4 2
4 3
2
4 3
2 1
4 3
2
3 2
1
x x
x
x x
x x
x x
x
x x
x (2) = (2)-a21/pivot (1)
Pivot de Gauss : un exemple
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
6
2
7 1 2
4 7
0
3
0
6 2
4 2
4 3
2
4 3
2
4 3
2
3 2
1
x x
x
x x
x
x x
x
x x
x (3) = (3)-a31/pivot (1)
Le première variable à été éliminée de toutes les équations sauf une
1. Triangularisation
2. Résolution du système triangulaire
L’algorithme du pivot de Gauss
A x = b
fait sinon fait"problème"fait
à jusqu' 1
pour
à jusqu' 1
pour
alors 0
si
*) pivot de
stratégie (*
1 à
jusqu' 1
pour
ik kj ij
ij
ik k i
i kk
pivot a a a
a
n k
j
pivot b b a
b
n k
i pivot
a pivot
n k
Fonction A,b = descent(A,b)
Gauss : résolution d’un système triangulaire
1
1 n
i
j ij j
i ii i
n n n
x a a b
x
a x b
n i
n i
nn in ii
n i
b b b
x x x
a a a
a a
a
1 1 1 1
11
0
0 0
0 0
0 0
fait omme
fait
omme omme
pour 1 jusqu'à
omme
1 à jusqu' 1
pour
ii i
j ij i
nn n n
a x s
x a s
sj i n
b s
n i
a x b
omme s
Fonction x = triang(A,b)
Gauss
U,c = descent(A,b) x = triang(U,c) Fonction x = Gauss(A,b)
Remarques
Choix du pivot
: minimiser les erreurs d’arrondis si un pivot est nul, on permute deux lignessi 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
b c AA IAz
c Ay
b
Ax
1
: donc et
;
et
Exemple
2 1 1
1
1 10 4
x
Trouver x en ne gardant que 4 chiffres significatifs après la virgule
4 4 4 4
10 2
1 10
1 0
1 10
, 10
: x
pivot
dddd10e
. 0 : tion
représenta
1 0 10
1 10
0
1 10
4 4 4
x x
Que se passe t’il si on prend le système à l’envers...
Exemple
2 1 1
1
1 10 4
x
Trouver x en ne gardant que 4 chiffres significatifs après la virgule
4 4 4 4
10 2
1 10
1 0
1 10
, 10
: x
pivot
dddd10e
. 0 : tion
représenta
1 0 10
1 10
0
1 10
4 4 4
x x
Que se passe t’il si on prend le système à l’envers...
;
; :
ement matriciell
,..., 1 pour
,..., 1 pour
) ( ) ( )
1 ( )
( ) ( )
1 (
) ( ) (
) ) (
( )
1 (
) ( ) (
) ) (
( )
1 (
k k
k k
k k
kk kkk ikk i k
i k
kjk kkk
ikk ijk
ijk
b M
b A
M A
a b b a
b
n k
j a a
a a a
n k
i
Représentation matricielle de l’élimination de Gauss
Lc b
LU A
c L Ux
b Ax
et
: que telle
matrice la
recherche on
A chaque étape de l’algorithme...
Les cas du second membre b
;
: ement
matriciell ( 1) ( ) ( )
) ( ) (
) ) (
( )
1 (
) ( ) (
) ) (
( )
1 (
) ( ) (
) ( 1, )
( 1 )
1 ( 1
) ( )
1 (
) 1( )
1 1(
k k
k kk kkk nkk nk
nk
kk kkk ikk i k
i k
kk kkk
k k k k
k k k
kk kk
k k
b M
b a b
b a b
a b b a
b
a b b a
b
b b
b b
1 0
0 0
0 1
0 0
0 0
1 0
0 0
0 1
;
, , 1 )
(
k n
k k k
kk ik ik
m m M
a m a
M (k) ?
Les cas du second membre b
;
: ement
matriciell ( 1) ( ) ( )
) ( ) (
) ) (
( )
1 (
) ( ) (
) ) (
( )
1 (
) ( ) (
) ( 1, )
( 1 )
1 ( 1
) ( )
1 (
) 1( )
1 1(
k k
k kk kkk nkk nk
nk
kk kkk ikk i k
i k
kk kkk
k k k k
k k k
kk kk
k k
b M
b a b
b a b
a b b a
b
a b b a
b
b b
b b
1 0
0 0
0 1
0 0
0 0
1 0
0 0
0 1
;
, , 1 )
(
k n
k k k
kk ik ik
m m M
a m a
Factorisation
1 0
0 0
0 1
0 0
0 0
1 0
0 0
0 1
;
;
; :
ement matriciell
, , 1 )
(
) ( ) ( )
1 ( )
( ) ( )
1 (
k n
k k k
kk ik ik
k k
k k
k k
m m a M
m a
b M
b A
M A
LU A
M L
U M
A A
M
A M
M M
M
A M
M
A M
A U
M n n
n n
n
n n
n
a on posant
en
...
1
1 )
1 ( ) 2 ( )
2 ( ) 1 (
) 2 ( ) 2 ( ) 1 (
) 1 ( ) 1 ( )
(
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 » !
) 2 (
) 1 (
y Ux
b b Ly
Ax
LU A
L
U
0 A
0 Comment construire Let U ?
idée :
reprendre l’étape de triangularisation de la méthode de Gauss
De Gauss à LU
U A
A A
A M
A(k1) (k) (k) (1) et (n) Représentons une étape de la triangularisation par la multiplication de A par une matrice M(k)
kj kk ij ik
ij
k kk i ik
i
a a a a
a
a b b a
b
1 0
0
0 1
0 0
0
0 0
1
, , 1 )
(
, ,
k n
k k k
k i kk
k ik i
M
a m a
1
1 )
1 ( )
( )
1 (
donc
...
...
M L
LU U
M A
MA A
M M
M
U n 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 :
,n k
i l
n i
l l L
ik ik
ii ij k
1
sauf
,
1
1
sauf
0
) (
M I
I
L(k) (k)
1 0
0
0 1
0 0
0
0 0
1
, , 1 )
(
k n
k k
M k
1 0
0
0 1
0 0
0
0 0
1
, , 1 )
(
k n
k k
L k
) 1 ( )
( )
1
( ...L ...L L
L n k C’est la matrice lik
L’algorithme de décomposition
fait sinon fait"problème"fait
pour 1 jusqu'à
à jusqu' 1
pour
1
alors 0
si
*) pivot de
stratégie (*
1 à
jusqu' 1
pour
kj ik ij
ij ik ik kk
kk
a a
a j k n
pivot
a n
k i
pivot a pivot
n k
Fonction L,U = décompose(A)
Exemple
2 1 2
1
1 2
1 2
1 1 1
1 2 1 1
1 1
1 2 2
1 2 1
Montrez que :
LU : l’algorithme
L,U = decompose(A) y = triang(L,b) x = triang(U,y) Fonction x = LU(A,b)
A=LU
n
i i
n i uii
U U
L LU
A
1 1
pivot )
det(
) det(
) det(
) det(
) det(
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
LU U
M A
MA A
M M
M
U n k
1 )
1 ( )
( )
1 (
...
Démonstration : (éléments) ...
unicité : par l’absurde
Remarque : (déterminent)
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
1 1
2 A 0
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)
) 2 (
) 1 (
y Ux
Pb b Ly
Ax
LU PA
L,U,P = decompose(A) y = triang(L,P*b) x = triang(U,y) Fonction x = LU(A,b)
Si est égal à zéro,
on échange (permute) deux lignes akk
Matlab !
PA=LU : étape k
U A
A A
A P
M A
A
n k
k k
k
k
1) ( ) ( ) ( ) (1) ( )
(
) (
et
avec
matrice la
permute on
étape chaque
Avant
Théorème : Si la matrice P (k), est la matrice de permutation des colonnes p et q
alors
1 0
0 0
0
0 1
0 0
1 1
0
0 0
0 0
0 1
~
1 0
0 0
0 1
1 0
0
0 0
1 ou encore ~ avec
~ ~
;
) ( )
(
) ( ) ( )
( ) (
) ( ) ( ) ( )
(
a L b
b L a
L P
P L
P L P
L k
i
i i
i k k
i
k i
k i
q p
k
PA=LU
U L PA
U L P A
P P
L P
P L
U L
L L
P P
P
U L
P L
P L
P A
A P
M P
M P
M A
U
A P
M A
A
k k
k
n k
n k
n n
k k
k k
n n
n
k k
k k
k
et ~
~ : ou d'
posant ~ en
~
~ ~
: algorithme l'
pour tout soit
matrice la
permute on
étape chaque
Avant
) 1 ( )
( ) ( ) ( )
1 (
) 1 ( )
( )
1 ( ) 1 ( )
( )
1 (
) 1 ( ) 1 ( )
( ) ( )
1 ( ) 1 (
) 1 ( ) 1 ( )
( ) ( )
1 ( ) 1 ( )
(
) ( ) ( ) ( )
1 (
) (
A expliquer !
• Si on a pas besoin de permutation :
– 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
Choix du pivot
~ alors
~
~
~
;
\\ ;
r r
x A b
r
e x x
r A
ex A b r b Ax