• Aucun résultat trouvé

ASI 3 Méthodes numériques pour l’ingénieur

N/A
N/A
Protected

Academic year: 2021

Partager "ASI 3 Méthodes numériques pour l’ingénieur"

Copied!
32
0
0

Texte intégral

(1)

ASI 3

Méthodes numériques pour l’ingénieur

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

Gauss, LU,

(2)

Ax=b : un cas simple

A est une matrice diagonale

 

n

a i x b

ii

ii ,  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

(3)

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)

(4)

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.

(5)

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 !

(6)

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)

(7)

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)

(8)

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)

(9)

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

(10)

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)

(11)

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)

(12)

Gauss

U,c = descent(A,b) x = triang(U,c) Fonction x = Gauss(A,b)

(13)

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

 

b c AA I

Az

c Ay

b

Ax    

1

: donc et

;

et

(14)

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

(15)

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

(16)

;

; :

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

(17)

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

(18)

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

(19)

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

(

 

 

(20)

LU : motivation

On connaît la matrice A on ne connaît pas encore b comment « préparer A » ?

(21)

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

(22)

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

(23)

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

Ln k C’est la matrice lik

(24)

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)

(25)

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 :

(26)

LU : l’algorithme

L,U = decompose(A) y = triang(L,b) x = triang(U,y) Fonction x = LU(A,b)

(27)

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)

(28)

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

(29)

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 !

(30)

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

(31)

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 !

(32)

• 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

  

Références

Documents relatifs

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

• voir les méthodes semi directes pour les problèmes de grande taille (cf les méthodes «

alors T et A sont équivalentes (elles ont les même valeurs propres) et T est une matrice triangulaire. Comment construire

Résolution de systèmes d’équation non linéaires. f ( x )=0.. Gauss-Siedel pour les

f(x)=0.. Gauss-Siedel pour les systèmes linéaires). –

– on prend des polynômes de degré faible (3) pour éviter les

le minimum est sur la frontière minimisation sous

Le rang est exactement 3 si les 3 équations sont indépendantes, ce que l’on va vérifier en obtenant un système échelonné équivalent à (S) par la méthode du pivot.. Sur cette