Post on 30-Aug-2020
ASI 3
Méthodes numériquespour l’ingénieur
Résolution de systèmes linéaires par des méthodes directes :
Gauss, LU,
Ax=b : un cas simpleA est une matrice diagonale
[ ]niabx
ii
ii ,1 , ∈=
=
n
i
n
i
nn
ii
b
b
b
x
x
x
a
a
a
�
�
�
�
�
���
���
� 1111
000000000
00000
fait
àjusqu' 1pour
ii
ii a
bxni
←=
Fonction x = diago(A,b)
problème
solution
Algorithme
A est de forme triangulaire
−=
=
∑−
= 1
1
1
1
11
i
jjiji
iii xab
ax
abx
=
n
i
n
i
nnnin
iii
b
b
b
x
x
x
aaa
aa
a
�
�
�
�
��
����
�
����
� 11
1
1
11
000
0000
fait
omme fait
ommeomme 1 àjusqu' 1pour
omme àjusqu' 2pour
11
11
iii
jij
i
asx
xassij
bsni
abx
←
−←−=
←=
←
ommes
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
iiiaA
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 Gauss4 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 30 3 6242
432
4321
421
321
xxxxxxxxxx
xxx
pivot (1)
Pivot de Gauss : un exemple
=++−=++−=++
−=−+
6 2 8 2 30 3 6242
432
4321
421
321
xxxxxxxxxx
xxx
(2) = (2)-a21/pivot (1)
Pivot de Gauss : un exemple
=++−=++−=++
−=−+
6 2 8 2 30 3 6242
432
4321
421
321
xxxxxxxxxx
xxx
=++−=++−=+++
−=−+
6 2 8 2 33 06242
432
4321
432
321
xxxxxxxxxx
xxx
(2) = (2)-a21/pivot (1)
Pivot de Gauss : un exemple
=++−=++−=++
−=−+
6 2 8 2 30 3 6242
432
4321
421
321
xxxxxxxxxx
xxx
=++−=++−=+++
−=−+
6 2 71 2 4 7 03 06242
432
432
432
321
xxxxxxxxx
xxx
(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 problème""sinon fait
fait
àjusqu' 1pour
àjusqu' 1pour
alors 0 si *)pivot de stratégie (*
1àjusqu'1pour
kjik
ijij
kik
ii
kk
apivotaaa
nkj
bpivotabb
nkipivot
apivotnk
−←+=
−←+=
≠←
−=Fonction A,b = descent(A,b)
Gauss : résolution d’un système triangulaire
−=
=
∑+=
1
1
n
ijjiji
iii
n
nn
xaba
x
abx
=
n
i
n
i
nn
inii
ni
b
b
b
x
x
x
a
aa
aaa
�
�
�
�
�
����
�
����
�� 111111
0000
000
fait
omme fait
ommeomme àjusqu' 1pour
omme 1 àjusqu' 1pour
iii
jij
i
nn
nn
asx
xassnij
bsni
abx
←
−←+=
←−=
←
ommes
Fonction x = triang(A,b)
Gauss
U,c = descent(A,b)
x = triang(U,c)
Fonction x = Gauss(A,b)
RemarquesChoix 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
[ ] IAAcbAzcAybAx
====
−1 : doncet ; et
Exemple
=
−
21
11110 4
x
Trouver x en ne gardant que 4 chiffres significatifs après la virgule
−=
− −−
−−
44
44
1021
1010110 ,10: xpivot
edddd 10 .0 :tionreprésenta ±
=⇔
−=
−
−
10
101
100110
44
4xx
Que se passe t’il si on prend le système à l’envers...
Exemple
=
−
21
11110 4
x
Trouver x en ne gardant que 4 chiffres significatifs après la virgule
−=
−
−−
44
44
1021
1010110 ,10: xpivot
edddd 10 .0 :tionreprésenta ±
=⇔
−=
−
−
10
101
100110
44
4xx
Que se passe t’il si on prend le système à l’envers...
; ; :ement matriciell
,...,1pour ,...,1pour
)()()1()()()1(
)()(
)()()1(
)()(
)()()1(
kkkkkk
kkk
kk
kikk
ik
i
kkjk
kk
kikk
ijk
ij
bMbAMA
baabb
nkjaaaaa
nki
==
−←
+=−←+=
++
+
+
Représentation matricielle de l’élimination de Gauss
LcbLUAL
cUxbAx
==
=⇒=
et : que telle matrice la rechercheon
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
kkk
kkk
kk
knkk
nk
n
kkk
kk
kikk
ik
i
kkk
kk
kkkk
kk
k
kk
kk
kk
bMb
baabb
baabb
ba
abb
bb
bb
=
−←
−←
−←
←
←
+
+
+
++
++
+
+
�
�
�
=
−=
+
10000
10000100001
;
,
,1
)(
kn
kk
k
kk
ikik
mm
M
aam
���
��
�
�
M(k) ?
Les cas du second membre b
; :ement matriciell )()()1(
)()(
)()()1(
)()(
)()()1(
)()(
)(,1)(
1)1(
1
)()1(
)(1
)1(1
kkk
kkk
kk
knkk
nk
n
kkk
kk
kikk
ik
i
kkk
kk
kkkk
kk
k
kk
kk
kk
bMb
baabb
baabb
ba
abb
bb
bb
=
−←
−←
−←
←
←
+
+
+
++
++
+
+
�
�
�
=
−=
+
10000
10000100001
;
,
,1
)(
kn
kk
k
kk
ikik
mm
M
aam
���
��
�
�
Factorisation
=−=
==
+
++
10000
10000100001
;
; ; :ement matriciell
,
,1
)(
)()()1()()()1(
kn
kk
k
kk
ikik
kkkkkk
mm
Maam
bMbAMA
���
��
�
�
LUAML
UMAAM
AMMMMAMM
AMAU
M
nn
nnn
nnn
==
=⇔=
====
−
−
−−
−−−
−−
aon 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 : principeIl est si facile le résoudre un système « triangulaire » !
)2( )1(
==
⇔=
=
yUxbLy
bAx
LUA
L
U
A0
0Comment construire Let U ?
idée : reprendre l’étape de triangularisation de la méthode de Gauss
De Gauss à LU
UAAAAMA nkkk ===+ )()1()()()1( et
Représentons une étape de la triangularisation par la multiplication de A par une matrice M(k)
−←
−←
kjkk
ikijij
kkk
ikii
aaaaa
baabb
100
01000
001
,
,1
)(
,,
−−
=
−==
+
kn
kk
k
kikk
ikki
M
maa
��
�����
�
����
��
�
1
1
)1()()1(
donc
......
−
−
−
=
==
==
ML
LUUMA
MAAMMMU kn
gauss
LU : la décompositionLes matrices élémentaires M(k) sont inversibles et leurs inverses sont les matrices L(k) triangulaires inférieurestelles que :
+====
==
,n kilnil
lL
ikik
ii
ijk
1 sauf ,1 1 sauf
0 )(
�
( )IMIL kk −−= )()(
100
01000
001
,
,1
)(
−−
=
+
kn
kk
kM
��
�����
�
����
��
100
01000
001
,
,1
)(
=
+
kn
kk
kL
��
�����
�
����
��
)1()()1( ...... LLLL kn−= C’est la matrice lik
L’algorithme de décomposition
fait problème""sinon fait
fait
àjusqu' 1pour
àjusqu' 1pour
1 alors 0 si
*)pivot de stratégie (* 1àjusqu'1pour
kjikijij
ikik
kk
kk
aaankj
pivota
nki
pivotapivot
nk
�
�
�
−←+=
←+=
←≠
←−=
Fonction L,U = décompose(A)
Exemple
−−
=
21
21
12121
1112
1
111122121
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
ii
n
iiiuUULLUA
11pivot)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 Let une matrice triangulaire supérieure U, telle que :
A = LUsi de plus on impose à L d’avoir les éléments diagonaux égaux à un alors la factorisation est unique
LUUMA
MAAMMMU kn
==
==−
−
1
)1()()1(
......Démonstration : (éléments)
unicité : par l’absurde
Remarque : (déterminent)
A=LUThé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 Let une matrice triangulaire supérieure U, telle que :
A = LUsi de plus on impose à L d’avoir les éléments diagonaux égaux à un alors la factorisation est unique
=1120
AContre 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èrealors il existe une matrice de permutation Ptelle que les pivots de PA sont non nuls. (TL chapitre 4)
)2( )1(
==
⇔=
=
yUxPbLy
bAx
LUPAL,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
kka
Matlab !