1 methodes iteratives de resolution de systemes lineaires: jacobi, gauss-seidel, s.o.r

Post on 03-Apr-2015

150 Views

Category:

Documents

7 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

METHODES ITERATIVES DE RESOLUTION DE SYSTEMES LINEAIRES: JACOBI, GAUSS-SEIDEL, S.O.R.

2

Carl Gustav Jacob JACOBI

1804-1851

Johann Carl Friedrich GAUSS

1777-1855

Philipp Ludwig von SEIDEL 1821-1896

3

Pierre-Louis LIONS

1956-

SMAI: Société de mathématiques appliquées et industrielles

Médaille Fields en 1994

4

Les méthodes de Jacobi, Gauss-Seidel et S.O.R. (Successive Over Relaxation) sont des méthodes itératives de résolution de systèmes linéaires.

Pour résoudre un système Ax=b où A est une matrice (n,n) et b , elles construisent des suites

qui vérifient la relation:

nIR

(p) n

p INx dans IR

(p+1) (p)x = Mx + cM matrice (n,n) et c étant définis à partir de A et b.nIR

Dans la suite, A est supposée réelle et régulière.

5

I Description des méthodes, programmation et écriture vectorielle.

I-1 Méthode de Jacobia) par pointsA partir d ’un vecteur x(0) quelconque pris dans , on

construit la suite de vecteurs x(p) dans suivant les formules:

nIRnIR

n(p+1) (p)

i iji jii j 1

j i

n(p+1) (p) (p)

i iji i jii j 1

1(1) i 1.....n x (b a x )

a

1(2) i 1.....n x x (b a x )

a

Remarque:(1) (2)

6

Sur le système à résoudre, elles s’écrivent:

11 1 12 2 1n n 1

i1 1 ii 1 i 1 ii i ii 1 i 1 in n i

n1 1

a x a x ............................................ a x b

a x .........a x a x a x ............ a x b

a x ...................................

(p) (p)

(p) (p) (p) (p)

(p)

(p+1)

(p+1)

nn 1 n 1 nn n n........ a x a x b

(p) (p+1)

est tiré de l’équation n° i, en laissant les autres composantes à leur valeur dans l’itération p.

ix(p+1)

Remarque: La méthode ne peut être mise en œuvre que si

iia 0, pour i=1 à n

7

Exemple:a 1

1 aA a 0

1

1 a

Jacobi:

1 1 2

i i i 1 i 1

n n n 1

1x (b x )

a1

x (b x x ) i=2 à n-1a1

x (b x )a

(p)

(p) (p)

(p)

(p+1)

(p+1)

(p+1)

8

La programmation de méthode de Jacobi est simple:

i

ij j

i iii

i i

Pour i=1 à n faire

S b

Pour j=1 à n

Algorithme simulant une itération

suivant la formule (

S S-a x

S y x

a

Pour i=1 à n

x

2)

y

2 tableaux unicolonnes X et Y suffisent pour simuler l’itération

Dans le tableau Y, on stocke l’itéré (p+1) qui est calculé à partir du tableau X contenant l’itéré p.

On écrase ensuite les valeurs du tableau X par celle de Y

9

Exemple: Problème (P1, h) avec ]a,b[=]0,1[ et numérotation des nœuds dans l’ordre naturel.

Initialisation à partir des données du problème

1 itération de Jacobi

2i

0

n 1

i i i 1 i 1

i i

1h

n 1Pour i=1 à n

b h f (ih)

X

X

Pour i=1 à n

1 Y (b X X )

2Pour i 1 à n

X Y

Le tableau X est de dimension n+2 au lieu de n pour prendre en compte les conditions aux limites

toutes les équations sont traitées dans une seule boucle

Astuce de programmation!

10

Remarque: Sur ce problème la méthode de Jacobi est beaucoup plus coûteuse que la méthode de Gauss. Il n’est donc pas conseillé de l’utiliser.

En effet le coût de Gauss est en O(n) car la matrice est tridiagonale. On verra dans le paragraphe II que celui de Jacobi est en O(n3).

11

b) par blocs

Le système Ax=b est écrit sous la forme par blocs suivante

11 12 1j 1r 1 1

21 22 2 j 2r 2 2

i ii1 i2 ij ir

r rr1 r2 rj rr

A A A A X BA A A A X B

X BA A A A

X BA A A A

Pour i=1 à r ,Aii sont des matrices carrées (mi,mi) supposées inversibles. On a donc

i im mi iX IR et B IR .

12

La formule par points (1) s’étend en une formule par blocs de la façon suivante

r1

ii i iji jj 1j i

(3) i=1,.....,r X A (B A X )

(p)(p+1)

Si mi=1, pour i=1 à r, les matrices Aii se réduisent à des scalaires et la méthode par blocs coïncide avec la méthode par points.

13

Exemple: 2 2h hA U F (chapitre I)

1 1

2 2

n n

U BH I

U BI H I

U BI H

Jacobi par blocs:

11 2

ii i 1 i 1

n n n 1

U (B U )

i 2,....,n 1 U (B U U )

U (B U )

(p)

(p) (p)

-1

-1

-1 (p)

(p+1)

(p+1)

(p+1)

H

H

HAttention!Le calcul X=H-1Y se programme comme une résolution du système HX=Y. On ne calcule pas H-1 (trop coûteux).On factorise H.

14

I-2 Méthode de Gauss-Seidel

a) par pointsAu lieu d’attendre une itération entière comme il est fait dans la méthode de Jacobi, on corrige au fur et à mesure.

11 1 12 2 1n n 1

i1 1 ii 1 i 1 ii i ii 1 i 1 in n i

n1 1

.....

.......................

..........................

.......

a x a x a x b

a x a x a x a x

...................

. a........

....

x b

a x .

(p) (p)

(p) (p)

(p+1)

(p+1) (p+1) (p+1)

(p+1)

nn 1 n 1 nn n na x a x. b

(p+1) (p+1)

On tire de l’équation n° i, les valeurs des autres composantes étant fixées à pour j<i et pour j>i.

ix(p+1)

jx(p+1)jx(p)

15

Comme pour Jacobi, la méthode ne peut être mise en œuvre que si

iia 0, pour i=1 à n

Remarques:(4) (5)

On obtient alors les formules:i 1 n

i ij iji j jii j 1 j i 1

i 1 n

i ij iji i j jii j 1 j i

1(4) i 1.....n x (b a x a x )

a

1(5) i 1.....n x x (b a x a x )

a

(p+1) (p+ (1)

(p+1)

p)

(p) (p)(p+1)

16

Exemple:a 1

1 aA a 0

1

1 a

Gauss-Seidel:

1 1 2

i i i 1 i 1

n n n 1

1x (b x )

a1

x (b x x ) i=2 à n-1a1

x (b x )a

(p)

(p)

(p+1)

(p+1) (p+1)

(p+1) (p+1)

17

Dans la méthode de Jacobi, le calcul des composantes de x(p+1) peut se faire dans un ordre quelconque.

Ce n’est pas possible pour Gauss-Seidel. Il faut avoir calculé pour calculer 1 2 i 1x ,x ,.....,x

(p+1) (p+1) (p+1)ix(p+1)

La programmation de méthode de Gauss-Seidel est cependant plus simple que celle de Jacobi

18

i

ij j

i iii

Pour i=1 à n faire

Algorithme simulant une itér

S b

Pour j=1 à n

ation

sui

S S-a

vant la formule

x

S x x

( )

a

5

1 seul tableau unicolonne X suffit pour simuler l’itération

Dés qu’elle calculée,la « nouvelle » valeur de la composante écrase « l’ancienne » valeur

La programmation est ainsi simplifiée.

19

b) par blocs

On reprend la décomposition par blocs introduite pour la méthode de Jacobi.

La formule par points (4) s’étend en une formule par blocs de la façon suivante

i 1 r1

ii i ij iji j jj 1 j i 1

(6) i=1,.....,r X A (B A X ) A X )

(p)(p+1) (p+1)

20

Exemple: 2 2h hA U F (chapitre I)

1 1

2 2

n n

U BH I

U BI H I

U BI H

-111 2

-1ii i 1 i 1

-1n n n 1

U H (B U )

i 2,....,n 1 U H (B U U )

U H (B U )

(p)

(p)

(p+1)

(p+1) (p+1)

(p+1)(p+1)

Gauss-Seidel par blocs

21

I-3 méthode S.O.R. par pointsEn vue d’accélérer la convergence de la méthode de

Gauss-Seidel, on introduit un paramètre réel i 1 n

i ij iji i j jii j 1 j i 1

i 1 n

i ij iji i j jii j 1 j i

(7) i 1...n x (1 )x (b a x a x )a

(8) i 1...n x x (b a x a x )a

(p) (p)

(p) (p)

(p+1) (p+1)

(p+1) (p+1)

(8) s’écrit ii ix x d (p 1 p)( + )id = "déplacement "

i id i déplacement de Gauss-Seidel apparaît comme une pondération

Si =1 "S.O.R.=Gauss-Seidel"

22

Remarques:

a) la méthode ne peut être mise en œuvre que si

iia 0, pour i=1 à n

b) On peut aussi définir une méthode S.O.R. par blocs.

c) En pratique, doit être pris dans . C’est une condition nécessaire de convergence (ce sera vu dans la suite).

0,2

23

I-4 Test d ’arrêtLa méthode de Gauss est une méthode directe au sens où elle fournit la solution du système en un nombre fini d’opérations élémentaires.Par contre, Jacobi,Gauss-Seidel et S.O.R. sont des méthodes itératives . Pour déterminer quand on arrête l’itération, il faut introduire un test d’arrêt basé sur un critère permettant d’estimer si on est  « proche » de la solution.

Par exemple, le plus simple est un test sur le résidu.

(p)Ax - b ε

est une norme sur et un réel positif « petit » à choisir en fonction du problème

nIR

24

Pour en prendre en compte les cas où la méthode itérative ne converge pas ou trop lentement, on introduit un nombre d’itérations maximum à ne pas dépasser.

(0)

(0) (0)

(p+1)

(p+1)

affectation d 'une valeur à x

r Ax b

p 0

tant que faire

calcul de x

calcul de r

p p 1

(p)maxr ε et p < p

algorithme général

initialisation

25

b) la précision attendue doit tenir compte du problème qui est à l’origine du système.

Remarque: comment choisir ?

a) On montre que résidu erreur

est un réel strictement positif qui dépend de A et qui peut être grand!

A A = c où c

Exemple: matrice et norme du max , cA= O(h-

2)

h1A

Exemple: problème

(P1)discrétisation h 1

1 hA U F

On a vu que l’erreur de discrétisation est bornée par un O(h2).

Pour h "petit" est donc adaptée. 2h

26On suppose donc D inversible. iia 0 i = 1 à n

I-5 Ecriture sous forme vectorielleNous allons montrer que les 3 méthodes s’écrivent sous la

forme (p+1) n(p) avec M matrice (n,n) et x = Mx + c c IR

a) Méthodes par pointsA=D-E-F

=

ij

1

22 i

1

j

nn

0

0E

-a

0

0-a0

Fa

0

a

D

a

diagonaletriangulaire inférieure stricte

triangulaire supérieure stricte

27

(p 1) (p)x x b

avec (

)

-1

--1 1ED

J D(9)

J = AF I - D

(p+1) (p) -1x = x + ( ) b

avec

-1

D

D

- E(10)

= ( - )E F

1

1

L

L

(p+1) (p) -1x = x + (D - E) b

avec [(1- + ]

-1ED D

(11)= ( - ) F

L

L )

28

Jacobi

(p 1) (p) (p)i i j j

j i j i

formule x b x x i=1 à n

ii ii jj a1) a a(

(p 1) (p) (p) x b x x F D E(12)

(p 1) (p) (p)x (b x x ) -1 FED

(p 1) (p)x ( )x b -1 -1E DFD(p 1) (p)x x b

a

vec ( )

-1

-1 -1-1D

J D(9)

J = D (D - A) = I - D AFE

J : matrice d ’itération de Jacobi

29

Gauss-Seidel

(p 1) (p 1) (p)i j i j

j i j i

formule x x b x i=1 à n

ij ii ji a+a a(4)

( )x b x (p+1) (p)(13) FE D -

(p)x ( ) x ( b (p+1) -1 -1E E-F )D-D

(p+1) (p) -1x = x + (D - E) b

( )

-1F= - EDavec

1

1

L

L

L1 : matrice d ’itération de Gauss-Seidel

D-E est triangulaire inférieure inversible car D est inversible

30

S.O.R.(p 1) (p 1)i j

j i

(p) (p)i i j

j i

formule x x

(1 ) x b x i=1 à n

i ii

i

j

i ija

+ aa

a

(7)

(p 1) (p) (p) ( )x (1 ) x b x D F E D(14) -

(p 1) (p)x [(1 ) ]x b -1 -1( - ) +E E-D( )D D F

(p+1) (p) -1x = x + (D - E) b

[(1- + ]

-1D F= ( - )E Davec )

L

L

D - E est triangulaire inférieure inversible car D est inversible

: matrice d ’itération de S.O.R.L

31

b) Méthodes par blocs

On pose A = D - E - F

=

ij

1

22 i

1

j

nn

0

0E

-A

0

0

-A0F

A

0

A

D

A

On suppose les matrices Aii inversibles donc D inversible.

Les méthodes par blocs conduisent alors à des écritures formellement identiques .

Exemple: La matrice d’itération de Jacobi par blocs est donné par I-D-1A .

32

I-6 Splitting de matricesNous allons voir que les méthodes de Jacobi,Gauss-Seidel et S.O.R. si peuvent se mettre sous la forme0

(p 1) (p)x x b

et régulière

1

1

2

12

(15)A

AA

A A A

(p 1) (p)x x c

( )

-1 -11 1 1

M

M A I AA A A

Les méthodes définies par (15) pour résoudre Ax=b sont appelées « méthodes de splitting ».

33

Méthodes de résolution matrice matrice

Jacobi

Gauss-Seidel -

1 1S.O.R. avec 0 ( 1)

1 2

D FE

E

E

D

D

F

A

D

A

F

(p 1) (p) (p) x b x x FD( E12) (p 1) (p) ( x b x (13 E) F-D)

(p 1) (p) (p) ( )x (1 ) x b x D F- D( E14)

34

Supposons que la suite {x(p)}définies par (15) converge vers une limite notée x*.

Il vient: A1x*=A2x*+b

(A1-A2)x*=b

Ax*=b

Quand il y a convergence, c’est donc vers la solution du système.

Conditions de convergence ?

35

II-Etude de la convergenceII-1 Etude de la convergence

d ’une itération linéairea)Rappels et compléments

sur les matrices et normes de matricesSoit A une matrice carrée (n,n) à valeurs complexes ou réelles.

La matrice adjointe A* de A est définie par *ij jia = a i, j = 1 à n

Si A=A* A est dite hermitienne (ou autoadjointe)

On notera Sp(A) le spectre de A qui est l’ensemble de ses valeurs propres.

Sp(A)

si est hermit Sp(Aienne )A IR

36

Norme de matrice:

Max 0

nAxA ;x

x(16)

A partir d’une norme de vecteurs sur notée une norme notée peut être définie sur l’espace des matrices carrées (n,n) à valeurs complexes ou réelles:

n

est dite norme de matrice induite par la norme de vecteurs

37

Une norme de matrice n’est pas forcément une norme de matrice induite .

exemple : définit une norme de matricen 2

iji,j=1

N(A) = a

mais N(Id)= n

(16)dI = 1 Id=matrice identité

38

(16)n Ax A x( ) x17

Si A et B sont 2 matrices (n,n)

(16)+(17) AB(18) A B

Une norme de matrice qui vérifie (18) est dite norme matricielle

2 inégalités qui seront utilisées dans la suite:

39

Définition1 On appelle rayon spectral de A le nombre réel noté défini par

ρ(A) ρ(A) = max λ ;λ Sp(A)

Remarque: 2 2det(A I) det(A I)det(A I)

2 2Sp(A ) / ou - Sp A

2 2ρ(A ) = ρ(A)

40

n

ijj=1

A = max a ;i = 1 à n

*

2A = ρ(A A)

nCes normes sur induisent des normes de matrice qui vérifient respectivement les égalités

n

ij1i=1

A = max a ;j = 1 à n

Proposition 1 Pour , on note nx

= max n

2

i2i=1

ii

i

n

1=1

x = x x ;i = 1x nx = x à

admise

41

Conséquences de la proposition 1:

a) *

1A = A

b) Pour 2

2A hermitienne A = ρ(A ) = ρ(A)

Exemple:

1 1 1h h h

1

2 1

1 2A A A 4

1

1 2

42

Théorème 1 (Householder) Soit A une matrice carrée à valeurs réelles ou complexes . Alors ρ(A) = inf A ; norme induite

Conséquences: ρ(A)) A pour une norme induite quelconque

En particulier sont des majorants facilement calculables en pratique.

1A et A

) norme induite (dépendante de A et ) telle que (A) A (A)

En particulier

ρ(A) < 1 norme induite telle que A < 1

43

b) conditions nécessaires et suffisantes de convergenceSoit M une matrice carrée (n,n) réelle et c un vecteur de nIRDéfinition 2 L’itération linéaire définie par

(0) n (p+1) (p)x IR x = Mx + c p = 0,1,( 219) , ....

est dite convergente si quel que soit le vecteur de départ , la suite converge vers la même limite.

(0)x (p)x

Remarque:

Si M est la matrice identité et c le vecteur nul, l’itération linéaire (19) construit une suite stationnaire donc convergente mais dont la limite dépend du point de départ. Elle ne vérifie donc pas la définition 2.

44

Théorème 2 L’itération linéaire définie par (19) est convergente si et seulement si ρ(M) < 1

Lemme Les propositions suivantes sont équivalentes

p

n p

) M 0 quand p +

) u IR M u 0 quand p +

) (M) 1

De plus, si elles sont vérifiées I-M est régulière

45

Démonstration du théorème:Supposons la convergence de l ’itération linéaire.Soit x la limite de la suite (p)x

(p) (p 1) x Mx c p=1,2...

x Mx c

(p) (p 1) x x M(x x)

(p) p (0)(20 x - x = M (x) - x)

P n

plim M u 0 u IR

(20)

lemme (M) 1

x(0) est quelconque dans et x ne dépend pas de x(0) par hypothèse

nIR

46

Supposons (M) 1

lemme I-M est régulière

Soit x la solution du système (I-M)x = c

(p) (p 1)

x Mx c

x Mx c p=1,2...

(p) p (0) x - x = M (x - x)

P (0)lemme M (x x) 0 quand p +

donc la suite converge vers x qui ne dépend pas de x(0)

47

Le rayon spectral de la matrice d’itération mesure donc la vitesse asymptotique de convergence

(p) p (0)x - x M x x (20)

1/ p(p)

(0)

x x

x x

Si l’itération est convergente, le taux de décroissance moyen pour les p premiers pas peut être estimé par

1/ p(p)

1/pp

(0)

x xM

x x

On montre que

1/p

p

p +lim M = (M)

De 2 itérations linéaires, on choisira celle qui a le plus petit (M)

48

c)Estimation du nombre d’itérations à partir du rayon spectral de la matrice d ’itération

On veut estimer le nombre d’itérations p, suffisant pour que avec 0,1 (p) (0)x - x ε x - x

On suppose M 1

(p)

p p

(0)

x x Puisque M , il suffit que M

x x

1/ pp

ln( ) soit p pour p"grand"

ln M

ln(ε)

ln ρ(M)

Attention cette estimation a surtout un intérêt théorique . On ne doit pas l’utiliser pour un test d’arrêt dans un code car elle est trop coûteuse à calculer!

49

1 1 1h h

1 J I D A I A

2 matrice de Jacobi :

1h

kSp(J) 1 / Sp(A ) cos( ) / k 1 à N

2 N 1

converπ

ρ(J) = cos gence de ( ) < 1N +1

Jacobi

quand N + (J) 1 (la convergence se ralentit)

Exemple d’application1 1h hA U F

1h

2 1

1 2A

1

1 2

N

50

ln( ) p qd N +

ln[ (J)]

2O(N )

2

2 3

1ln[ (J)] ln[cos( )] o( ) qd N +

N 1 2(N 1) N

(p+1) 1 (p) (p)i h i i-1 i+1

1U = [(F ) + U + U ]

2

Coût d’une itération ?

estimation asymptotique: O(N3)

Rappel :coût de Gauss sur matrice tridiagonale (N,N) : O(N)

Estimations du nombre d’itérations et du coût:

3 opérations par composante coût en O(N)

Coût total de Jacobi:

Conclusion: Il ne faut pas résoudre ce système par la méthode de Jacobi !

51

II-2 Application aux méthodes de Jacobi, Gauss-Seidel et S.O.R.

Définition 3 Soit A une matrice(n,n) à valeurs réelles ou complexes. On dit que A est à diagonale strictement dominante si

n

ii ijj=1j i

a > a i = 1 à n

Lemme de Hadamard:A à diagonale strictement dominante A régulière

52

Théorème 4 (Kahan) La matrice d’itération de S.O.R. par points ou par blocs vérifie La méthode S.O.R. n ’est donc pas convergente si .

( ) 1 . L 0,2

Théorème 3 Les méthodes de Jacobi et Gauss-Seidel par points pour résoudre un système de matrice à diagonale strictement dominante sont des itérations linéaires convergentes.

Démonstration en TD

53

Démonstration (par points)1(D E) [(1 )D F]

L

sont triangulaires respectivement de diagonales D et

D E et (1 )D F (1 )D

nn(1 ) det(D)

det( ) (1 )det(D)

L

nn

i ii 1

(1 ) Sp( )

L

nn n

ii 1

|1 | | | ( )

L

|1 | ( ) L

54

Corollaire La méthode S.O.R. par points ou par blocs pour résoudre un système de matrice réelle symétrique définie positive est une une itération linéaire convergente si et seulement si .En particulier la méthode de Gauss-Seidel est convergente.

0,2

Théorème 5 (Ostrowski) Soit A et A1 2 matrices réelles (n,n). Si les matrices A et sont symétriques définies positives, l’itération linéaire définie à partir du splitting A=A1-(A-A1) est convergente.

t1 1A A A

Admis

55

2 20,2 1 0 ( 1)D s.d.p.

Le splitting de S.O.R. est donné par 11

A D E

t1 1

2A A A 1 D

A s.d.p. D s.d.p.

Démonstration

Théorème 4 0,2 est une condition nécessaire

d’après Théorème 5S.O.R. converge

56

Théorème 6 Sur un système de matrice tridiagonale par blocs, les itérations de Jacobi et Gauss-Seidel par blocs convergent ou divergent simultanément avec . 2

1( ) (J) LAdmis

2h

H I

I H IA

I H

tridiagionale par blocs

Application:

2 2h hA U F

2hA est symétrique définie positive

Corollaire du th 5 la méthode de Gauss-Seidel par blocs

converge.

théorème 6 Jacobi par blocs converge mais moins vite que Gauss-Seidel par blocs

top related