Gauss, LU, pour l’ingénieur Méthodes...

29
ASI 3 Méthodes numériques pour l’ingénieur Résolution de systèmes linéaires par des méthodes directes : Gauss, LU,

Transcript of Gauss, LU, pour l’ingénieur Méthodes...

Page 1: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

ASI 3

Méthodes numériquespour l’ingénieur

Résolution de systèmes linéaires par des méthodes directes :

Gauss, LU,

Page 2: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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

Page 3: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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)

Page 4: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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.

Page 5: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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 !

Page 6: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

Pivot de Gauss : un exemple

=++−=++−=++

−=−+

6 2 8 2 30 3 6242

432

4321

421

321

xxxxxxxxxx

xxx

pivot (1)

Page 7: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

Pivot de Gauss : un exemple

=++−=++−=++

−=−+

6 2 8 2 30 3 6242

432

4321

421

321

xxxxxxxxxx

xxx

(2) = (2)-a21/pivot (1)

Page 8: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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)

Page 9: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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

Page 10: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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)

Page 11: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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)

Page 12: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

Gauss

U,c = descent(A,b)

x = triang(U,c)

Fonction x = Gauss(A,b)

Page 13: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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

Page 14: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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...

Page 15: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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...

Page 16: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

; ; :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...

Page 17: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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

Page 18: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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

���

��

Page 19: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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

���� ����� ��

Page 20: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

LU : motivation

On connaît la matrice A

on ne connaît pas encore b

comment « préparer A » ?

Page 21: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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

Page 22: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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

Page 23: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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

Page 24: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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)

Page 25: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

Exemple

−−

=

21

21

12121

1112

1

111122121

Montrez que :

Page 26: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

LU : l’algorithme

L,U = decompose(A)

y = triang(L,b)

x = triang(U,y)

Fonction x = LU(A,b)

Page 27: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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)

Page 28: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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

Page 29: Gauss, LU, pour l’ingénieur Méthodes numériquesasi.insa-rouen.fr/enseignement/siteUV/ananum/04syslindirect.pdf · ASI 3 Méthodes numériques pour l’ingénieur Résolution

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 !